# Decompyle++ (pycdc)

> C++ disassembler and decompiler for compiled Python bytecode that aims to support bytecode from any Python version. pycdas prints the disassembly of a .pyc file, and pycdc prints reconstructed Python source to stdout with errors on stderr; both also accept raw marshalled code objects when the Python version is given on the command line. The source carries opcode tables for Python 1.0 through 3.13.

- Type: Tool
- Targets: App · Binary
- Category: Native analysis tools
- Relationship: Foundation tool
- Sources reviewed: 2026-10-19
- Added to the catalog: 2026-10-19
- Original resource: <https://github.com/zrax/pycdc>
- Primary source: <https://github.com/zrax/pycdc/blob/b4289760970dbc399684f1e155ec6d1ea1cc787e/README.markdown>
- Catalog page: <https://awesomerea.org/resources/pycdc/>
- Record JSON: <https://awesomerea.org/resources/pycdc/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/pycdc/index.md)

## Requirements & limits

- The project publishes no releases or tags, so it is built from source; the reviewed master commit dates from 2026-04-07. The README makes no per-version completeness claim. The .pyc loader recognizes bytecode up to Python 3.13 but not 3.14, and the regression suite’s compiled samples stop at 3.12: 20 of its 191 samples are for 3.10–3.12, and 39 more are kept as expected failures.
- CMakeLists.txt requires CMake 3.12+ and a C++11 compiler, and GCC and Clang builds treat warnings as errors. make check runs the tests on Unix-like systems or MSYS; CI builds and tests on Ubuntu and as 32-bit Visual Studio 2022 builds on Windows, where the executables are kept only as workflow artifacts.
- Input .pyc files or marshalled code objects come from the user; recovering them from packaged applications is outside the tool. The README describes no verification of decompiled output, so uncertain regions should be compared with the pycdas disassembly.
- GPL-3.0. Recovered source remains subject to the rights of the original program’s owner.

## Primary sources

1. <https://github.com/zrax/pycdc/blob/b4289760970dbc399684f1e155ec6d1ea1cc787e/README.markdown>
2. <https://github.com/zrax/pycdc/blob/b4289760970dbc399684f1e155ec6d1ea1cc787e/CMakeLists.txt>
3. <https://github.com/zrax/pycdc/blob/b4289760970dbc399684f1e155ec6d1ea1cc787e/pyc_module.h>
4. <https://github.com/zrax/pycdc/tree/b4289760970dbc399684f1e155ec6d1ea1cc787e/bytes>
5. <https://github.com/zrax/pycdc/tree/b4289760970dbc399684f1e155ec6d1ea1cc787e/tests/compiled>
6. <https://github.com/zrax/pycdc/tree/b4289760970dbc399684f1e155ec6d1ea1cc787e/tests/xfail>
7. <https://github.com/zrax/pycdc/blob/b4289760970dbc399684f1e155ec6d1ea1cc787e/.github/workflows/linux-ci.yml>
8. <https://github.com/zrax/pycdc/blob/b4289760970dbc399684f1e155ec6d1ea1cc787e/.github/workflows/msvc-ci.yml>
9. <https://github.com/zrax/pycdc/blob/b4289760970dbc399684f1e155ec6d1ea1cc787e/LICENSE>

## More in Native binaries

- [cwe_checker](https://awesomerea.org/resources/cwe-checker/index.md) · Tool
- [FLARE-VM](https://awesomerea.org/resources/flare-vm/index.md) · Tool
- [B2R2](https://awesomerea.org/resources/b2r2/index.md) · Tool
- [rz-ghidra](https://awesomerea.org/resources/rz-ghidra/index.md) · Tool
- [dewolf](https://awesomerea.org/resources/dewolf/index.md) · Tool
- [decomp2dbg](https://awesomerea.org/resources/decomp2dbg/index.md) · Tool

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
