C++ python bytecode disassembler and decompiler
  • C++ 84.5%
  • Python 14.9%
  • CMake 0.5%
Find a file
2012-06-27 18:03:55 -07:00
bin Added basic while loop support and a test system. 2010-12-31 02:42:58 -08:00
bytes Preview of Python 3.3 support 2012-05-26 14:09:52 -07:00
out Code so far 2009-07-24 08:35:21 +00:00
tests Merge pull request #21 from kunalparmar/decorators 2012-06-11 18:07:33 -07:00
.gitignore Save the output of 'make test' for later inspection 2012-06-11 18:10:47 -07:00
ASTNode.cpp Support for with statement. 2012-06-06 22:02:33 -07:00
ASTNode.h Support for with statement. 2012-06-06 22:02:33 -07:00
ASTree.cpp Merge pull request #21 from kunalparmar/decorators 2012-06-11 18:07:33 -07:00
ASTree.h Fixed imports, and restructured ifs to be "code blocks" 2010-09-07 21:32:34 -07:00
bytecode.cpp Preview of Python 3.3 support 2012-05-26 14:09:52 -07:00
bytecode.h Preview of Python 3.3 support 2012-05-26 14:09:52 -07:00
data.cpp Allow for output file override 2011-10-23 19:04:06 -07:00
data.h Allow for output file override 2011-10-23 19:04:06 -07:00
FastStack.h Slightly more consistent formatting 2011-09-18 23:55:27 -07:00
LICENSE Added GPL v3 license file 2009-07-25 00:43:46 +00:00
Makefile Update magic number for Python 3.3 beta 2012-06-27 18:03:55 -07:00
pyc_code.cpp Make version comparisons human readable 2012-05-26 14:10:12 -07:00
pyc_code.h Use less conflicting filenames 2011-10-23 17:48:10 -07:00
pyc_module.cpp Preview of Python 3.3 support 2012-05-26 14:09:52 -07:00
pyc_module.h Update magic number for Python 3.3 beta 2012-06-27 18:03:55 -07:00
pyc_numeric.cpp Use less conflicting filenames 2011-10-23 17:48:10 -07:00
pyc_numeric.h Use less conflicting filenames 2011-10-23 17:48:10 -07:00
pyc_object.cpp Preview of Python 3.3 support 2012-05-26 14:09:52 -07:00
pyc_object.h Use less conflicting filenames 2011-10-23 17:48:10 -07:00
pyc_sequence.cpp Use less conflicting filenames 2011-10-23 17:48:10 -07:00
pyc_sequence.h Use less conflicting filenames 2011-10-23 17:48:10 -07:00
pyc_string.cpp Fix a couple of string output issues 2011-10-23 19:37:06 -07:00
pyc_string.h Fix a couple of string output issues 2011-10-23 19:37:06 -07:00
pycdas.cpp Allow for output file override 2011-10-23 19:04:06 -07:00
pycdas.vcproj Add Python33 files to VS solution 2012-05-26 21:37:53 -07:00
pycdc.cpp Fix a couple of string output issues 2011-10-23 19:37:06 -07:00
pycdc.sln Added windows/VS stuff 2010-04-12 12:59:44 -07:00
pycdc.vcproj Add Python33 files to VS solution 2012-05-26 21:37:53 -07:00
PythonBytecode.txt Update magic number for Python 3.3 beta 2012-06-27 18:03:55 -07:00
README.markdown Added README file. 2011-09-22 20:53:45 -07:00

Decompyle++

A Python Byte-code Disassembler/Decompiler

Decompyle++ aims to translate compiled Python byte-code back into valid and human-readable Python source code. While other projects have achieved this with varied success, Decompyle++ is unique in that it seeks to support byte-code from any version of Python.

Decompyle++ includes both a byte-code disassembler (pycdas) and a decompiler (pycdc).

As the name implies, Decompyle++ is written in C++. If you wish to contribute, please fork us on github at https://github.com/zrax/pycdc

Usage

To compile Decompyle++, just run make.

To run pycdas, the PYC Disassembler: ./bin/pycdas [PATH TO PYC FILE] The byte-code disassembly is printed to stdout.

To run pycdc, the PYC Decompiler: ./bin/pycdc [PATH TO PYC FILE] The decompiled Python source is printed to stdout. Any errors are printed to stderr.

Authors, Licence, Credits

Decompyle++ is the work of Michael Hansen and Darryl Pogue. It is released under the terms of the GNU General Public License, version 3.