Tool
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.
Requirements and limitations
- 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. Nothing was built or decompiled.
About this entry
- Type
- Tool
- Category
- Native analysis tools
- Relationship
- Foundation tool
- Targets
- App · Binary
Sources reviewed
The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.
Primary sources
- README.markdown GitHub · zrax/pycdc · Revision b428976
- CMakeLists.txt GitHub · zrax/pycdc · Revision b428976
- pyc_module.h GitHub · zrax/pycdc · Revision b428976
- bytes GitHub · zrax/pycdc · Revision b428976
- tests/compiled GitHub · zrax/pycdc · Revision b428976
- tests/xfail GitHub · zrax/pycdc · Revision b428976
- .github/workflows/linux-ci.yml GitHub · zrax/pycdc · Revision b428976
- .github/workflows/msvc-ci.yml GitHub · zrax/pycdc · Revision b428976
- LICENSE GitHub · zrax/pycdc · Revision b428976