Decompyle++ is a Python bytecode disassembler and decompiler written in C++.
The tool addresses the problem of reverse-engineering compiled Python bytecode back into readable source code. It works by parsing Python's compiled format and reconstructing the original logic, offering both a disassembler component (pycdas) that shows the raw bytecode instructions and a decompiler component (pycdc) that attempts to produce valid Python source. A distinguishing feature is its stated aim to support bytecode from any version of Python, rather than targeting only specific versions.
Developers should choose this tool when they need to recover or analyze Python source from compiled bytecode files, particularly when dealing with bytecode from multiple Python versions. It suits reverse-engineering tasks, security analysis, or recovering lost source code. The tool accepts both standard compiled Python files and marshalled code objects produced by Python's marshal module, with version specification available for the latter. The project positions itself against other decompilation efforts by emphasizing broad version compatibility.
The project maintains an active test suite that can be run with configurable parallelism and filtering. Build configuration offers optional debugging output for block and stack analysis, suggesting ongoing refinement of the decompilation logic. The codebase accepts external contributions and has incorporated patches from multiple contributors beyond the original authors.