
(Plus some whitespace cleanup) commit ca302777438a6ac0ff00b9dbc87d2cf9e816b807 Author: TheHellTower <dontbeshybuddy@gmail.com> Date: Thu Jun 1 14:55:26 2023 -0400 Test commit 1764514e1dc4018abf050e2e2c3378b6ebaca2a2 Author: TheHellTower <dontbeshybuddy@gmail.com> Date: Thu Jun 1 14:46:49 2023 -0400 Semi-Support commit 104fa62355a18a071dae2d09db00af3b2fd22b6c Author: TheHellTower <dontbeshybuddy@gmail.com> Date: Thu Jun 1 14:46:30 2023 -0400 Semi-Support commit 0809a71c725e3a92ece9348265f26f72fdb6664d Author: TheHellTower <dontbeshybuddy@gmail.com> Date: Thu Jun 1 14:46:11 2023 -0400 Semi-Support commit bdf1695a57d2ad9eb1505a92ff4fa46c6f5ea90f Author: TheHellTower <dontbeshybuddy@gmail.com> Date: Thu Jun 1 00:06:34 2023 -0400 Updated Test commit ea69a0b3be10568b70d02d744174e3bfc1d3546a Author: TheHellTower <dontbeshybuddy@gmail.com> Date: Thu Jun 1 00:06:23 2023 -0400 Updated Test commit ecde2146208ea7a533267ace7293a49ce7a132bb Author: TheHellTower <dontbeshybuddy@gmail.com> Date: Thu Jun 1 00:06:12 2023 -0400 Updated Test commit d5bbbe6224fc0aa8c5c3bc39b4f8845c8f941c7f Author: TheHellTower <thehelltower@tuta.io> Date: Wed May 31 23:59:46 2023 -0400 Feat: @zrax Co-authored-by: Michael Hansen <zrax0111@gmail.com> commit f8d2299d14a3a0f69b40486006d629ccc5c719df Author: TheHellTower <thehelltower@tuta.io> Date: Wed May 31 23:59:03 2023 -0400 Feat: @zrax Co-authored-by: Michael Hansen <zrax0111@gmail.com> commit 3fa8691f4c379dd10026227778ac60587fd07e68 Author: TheHellTower <thehelltower@tuta.io> Date: Wed May 31 23:58:53 2023 -0400 Feat: @zrax Co-authored-by: Michael Hansen <zrax0111@gmail.com> commit 6af17f0cffee31bc03ed8151e82b1720119d6a8d Author: TheHellTower <thehelltower@tuta.io> Date: Wed May 31 23:58:45 2023 -0400 Feat: @zrax Co-authored-by: Michael Hansen <zrax0111@gmail.com> commit c7c76097fce1f45da0308b9f5e9cfffb5a323fd9 Author: TheHellTower <thehelltower@tuta.io> Date: Wed May 31 16:55:20 2023 -0400 Remove `iostream` commit 2edaec022f8cbcb36bffd7ec86b5f71b391fb372 Author: TheHellTower <thehelltower@tuta.io> Date: Wed May 31 16:54:48 2023 -0400 Mistake commit a36d4c5e62afe24691701f6d0b7c758b4113db91 Author: TheHellTower <thehelltower@tuta.io> Date: Wed May 31 16:52:12 2023 -0400 Remove `iostream` commit 1c3a5b02c95352a8e90247757df17d1563698fb6 Author: TheHellTower <dontbeshybuddy@gmail.com> Date: Wed May 31 16:43:30 2023 -0400 Should be a bit better commit 11603f1bb244c4d60ec34b675e1cd9c10945abf5 Author: TheHellTower <dontbeshybuddy@gmail.com> Date: Wed May 31 04:07:47 2023 -0400 Update commit 689b544fc1023ec60e4df257f3448064fdf84c2b Author: TheHellTower <dontbeshybuddy@gmail.com> Date: Wed May 31 04:07:38 2023 -0400 Update commit 20bc5b820fb2ef6fd9199546e11ac02d78e5b6da Author: TheHellTower <dontbeshybuddy@gmail.com> Date: Wed May 31 04:07:24 2023 -0400 Update commit c01e8251fac1577d25ab440ade4bfe2b42eb1860 Author: TheHellTower <dontbeshybuddy@gmail.com> Date: Wed May 31 04:05:28 2023 -0400 Format problem ? commit f35c494dd0d943323ec899cd8b2a236d11de67fc Author: TheHellTower <dontbeshybuddy@gmail.com> Date: Wed May 31 04:02:03 2023 -0400 Fix commit 7f3265e4192e2b6eec81dc30a630691cead59694 Author: TheHellTower <dontbeshybuddy@gmail.com> Date: Mon May 29 00:57:01 2023 -0400 BINARY_OP | Simplified commit 045a6041f7a5abb7b5cdeaa4882b2620462e1927 Author: TheHellTower <dontbeshybuddy@gmail.com> Date: Mon May 29 00:56:53 2023 -0400 BINARY_OP | Simplified commit 0bfb76280e466e15c32ef42851d9981b9df57059 Author: TheHellTower <dontbeshybuddy@gmail.com> Date: Mon May 29 00:56:41 2023 -0400 BINARY_OP | Simplified commit 31159d69e8f802d7955244b258795563018c3eda Author: TheHellTower <dontbeshybuddy@gmail.com> Date: Mon May 29 00:50:19 2023 -0400 Fix Matching... commit e4a978aeadebe9c574856c30928ec58da9e32639 Author: TheHellTower <dontbeshybuddy@gmail.com> Date: Mon May 29 00:50:06 2023 -0400 Fix Matching... commit d7a1b25b8f85886fcdc0a7c10c885e7e9e011281 Author: TheHellTower <thehelltower@tuta.io> Date: Mon May 29 00:41:43 2023 -0400 Add `BINARY_OP` support commit 6527299a67f043eb2b63e13ae43c4e9f060456e2 Author: TheHellTower <dontbeshybuddy@gmail.com> Date: Mon May 29 00:40:32 2023 -0400 Add `BINARY_OP` test tokenized commit c053cab7895f49a085a0797a98e28e87f4874d39 Author: TheHellTower <dontbeshybuddy@gmail.com> Date: Mon May 29 00:40:11 2023 -0400 Add `BINARY_OP` test commit e32f006f90a4e450099edd7d2f0bdbb0f1bbc612 Author: TheHellTower <dontbeshybuddy@gmail.com> Date: Mon May 29 00:39:53 2023 -0400 Add `BINARY_OP` test compiled Closes #333 Closes #348 Co-authored-by: TheHellTower <dontbeshybuddy@gmail.com>
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
Building Decompyle++
-
Generate a project or makefile with CMake (See CMake's documentation for details)
- The following options can be passed to CMake to control debug features:
Option Description -DCMAKE_BUILD_TYPE=Debug
Produce debugging symbols -DENABLE_BLOCK_DEBUG=ON
Enable block debugging output -DENABLE_STACK_DEBUG=ON
Enable stack debugging output
- The following options can be passed to CMake to control debug features:
-
Build the generated project or makefile
- For projects (e.g. MSVC), open the generated project file and build it
- For makefiles, just run
make
- To run tests (on *nix or MSYS), run
make check
Usage
To run pycdas, the PYC Disassembler:
./pycdas [PATH TO PYC FILE]
The byte-code disassembly is printed to stdout.
To run pycdc, the PYC Decompiler:
./pycdc [PATH TO PYC FILE]
The decompiled Python source is printed to stdout.
Any errors are printed to stderr.
Marshalled code objects:
Both tools support Python marshalled code objects, as output from marshal.dumps(compile(...))
.
To use this feature, specify -c -v <version>
on the command line - the version must be specified as the objects themselves do not contain version metadata.
Authors, Licence, Credits
Decompyle++ is the work of Michael Hansen and Darryl Pogue.
Additional contributions from:
- charlietang98
- Kunal Parmar
- Olivier Iffrig
- Zlodiy
It is released under the terms of the GNU General Public License, version 3; See LICENSE file for details.