A blazing-fast Python bytecode decompiler & disassembler for Python 2.7–3.13
Decompyle++ is a fast, cross-version Python bytecode decompiler and disassembler written in C++. This fork by zrsx extends the original pycdc to support:
- Python 2.7 through 3.13
- Newer opcode formats and edge cases
- Marshalled code objects and
.pycfiles - High-speed native C++ processing
- Decompiles
.pycfiles to readable Python source - Disassembles bytecode into opcode instructions
- Works with marshalled code objects (e.g.,
.marshalled) - Supports Python versions 2.7 – 3.13
- Fast, minimal, and standalone (no Python runtime needed)
Install the required packages:
sudo apt update
sudo apt install build-essential cmake git python3-dev| Package | Description |
|---|---|
build-essential |
Compilers and build tools |
cmake |
Build system generator |
git |
Repository cloning |
python3-dev |
Python headers (for opcode support) |
git clone https://github.com/zrsx/pycdc.git
cd pycdc
cmake .
makeOptional: Run the test suite
make check./pycdc path/to/file.pyc./pycdas path/to/file.pyc./pycdc -c -v 3.13 path/to/file.marshalled| Flag | Description |
|---|---|
-c |
Treat input as marshalled code |
-v |
Specify Python version (e.g., 3.11, 3.13) |
./pycdas __pycache__/example.cpython-312.pyc
./pycdc -c -v 3.13 dumped_code.marshalledHelp us improve! If you find:
- Crashes
- Incorrect output
- Unsupported opcodes (e.g.,
UNSUPPORTED_OPCODE 218)
Please open an issue at: https://github.com/zrsx/pycdc/issues
Include:
- Python version used to generate the
.pyc - The
.pycor.marshalledfile (if possible) - Full output/error logs
- Minimal source snippet (if relevant)
Distributed under the terms of the GNU General Public License v3.0 View License
- Fork Maintainer: zrsx
- Original Authors: Michael Hansen, Darryl Pogue
- Notable Contributors: charlietang98 • Kunal Parmar • Olivier Iffrig • Zlodiy • George
We welcome:
- Opcode/bytecode updates
- Bug reports and feature requests
- Pull requests for enhancements or fixes
Star the repo to support continued development.