Aasyaco / pycdcA

Repository from Github https://github.comAasyaco/pycdcARepository from Github https://github.comAasyaco/pycdcA

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

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
./pycdc -c -v 3.13 dumped_code.marshalled

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

License:GNU General Public License v3.0


Languages

Language:C++ 84.4%Language:Python 15.0%Language:CMake 0.5%Language:C 0.1%