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

  1. README.markdown GitHub · zrax/pycdc · Revision b428976
  2. CMakeLists.txt GitHub · zrax/pycdc · Revision b428976
  3. pyc_module.h GitHub · zrax/pycdc · Revision b428976
  4. bytes GitHub · zrax/pycdc · Revision b428976
  5. tests/compiled GitHub · zrax/pycdc · Revision b428976
  6. tests/xfail GitHub · zrax/pycdc · Revision b428976
  7. .github/workflows/linux-ci.yml GitHub · zrax/pycdc · Revision b428976
  8. .github/workflows/msvc-ci.yml GitHub · zrax/pycdc · Revision b428976
  9. LICENSE GitHub · zrax/pycdc · Revision b428976