Skip to content

zrsx/pycdc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Decompyle++ (pycdc) — zrsx Fork

A blazing-fast Python bytecode decompiler & disassembler for Python 2.7–3.13

Build Status License Python Versions GitHub Stars GitHub Forks MSVC-CI Linux-CI Build Status CircleCI Build

Issues: Open Issues Closed Issues

Pull Requests: Open PRs Closed PRs


Overview

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 .pyc files
  • High-speed native C++ processing

Features

  • Decompiles .pyc files 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)

Installation

Dependencies

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)

Build

git clone https://github.com/zrsx/pycdc.git
cd pycdc
cmake .
make

Optional: Run the test suite

make check

Usage

Decompile .pyc File

./pycdc path/to/file.pyc

Disassemble .pyc File

./pycdas path/to/file.pyc

Decompile Marshalled Code

./pycdc -c -v 3.13 path/to/file.marshalled

Flags

Flag Description
-c Treat input as marshalled code
-v Specify Python version (e.g., 3.11, 3.13)

Examples

./pycdas __pycache__/example.cpython-312.pyc

Prebuilt Executables

Looking for a ready-to-use binary?

Prebuilt .zip files for Windows, Linux, and macOS are automatically generated on every successful CI run.

📦 Download from GitHub Actions Artifacts:

Platform Executable Zip Notes
🪟 Windows Download Built via MSVC
🐧 Linux Download Built via GCC
🍎 macOS Download Built via Clang

🔧 Visit the relevant workflow, click on the latest successful run, and scroll down to the Artifacts section to download.

Reporting Issues

Help 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 .pyc or .marshalled file (if possible)
  • Full output/error logs
  • Minimal source snippet (if relevant)

License

Distributed under the terms of the GNU General Public License v3.0 View License


Credits

  • Fork Maintainer: zrsx
  • Original Authors: Michael Hansen, Darryl Pogue
  • Notable Contributors: charlietang98 • Kunal Parmar • Olivier Iffrig • Zlodiy • George

Contributing

We welcome:

  • Opcode/bytecode updates
  • Bug reports and feature requests
  • Pull requests for enhancements or fixes

Star the repo to support continued development.

About

C++ python bytecode disassembler and decompiler

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 33

Languages