zrax/pycdc

GitHub: zrax/pycdc

一个 C++ 实现的 Python 字节码反汇编与反编译器,支持所有版本并还原为可读源码。

Stars: 4400 | Forks: 829

# Decompyle++ ***一个 Python 字节码反汇编器/反编译器*** Decompyle++ 旨在将编译后的 Python 字节码反向翻译为 合法且可读的 Python 源代码。虽然其他项目也实现了这一目标,但 Decompyle++ 的独特之处在于 它支持任何版本的 Python 字节码。 Decompyle++ 包含字节码反汇编器(pycdas)和 反编译器(pycdc)。 顾名思义,Decompyle++ 使用 C++ 编写。 如果你希望贡献代码,请在 github 上 fork 我们: https://github.com/zrax/pycdc ## 构建 Decompyle++ * 使用 [CMake](http://www.cmake.org) 生成项目或 makefile(详见 CMake 文档) * 可通过以下选项控制调试功能: | 选项 | 描述 | | --- | --- | | `-DCMAKE_BUILD_TYPE=Debug` | 生成调试符号 | | `-DENABLE_BLOCK_DEBUG=ON` | 启用块调试输出 | | `-DENABLE_STACK_DEBUG=ON` | 启用堆栈调试输出 | * 构建生成的项目或 makefile * 对于项目(如 MSVC),打开生成的项目文件并编译 * 对于 makefile,直接运行 `make` * 要运行测试(在 \*nix 或 MSYS 上),执行 `make check JOBS=4`(可选 `FILTER=xxxx` 仅运行特定测试) ## 用法 **运行 pycdas**,即 PYC 反汇编器: `./pycdas [PYC 文件路径]` 字节码反汇编结果将输出到标准输出。 **运行 pycdc**,即 PYC 反编译器: `./pycdc [PYC 文件路径]` 反编译后的 Python 源代码将输出到标准输出。 所有错误信息输出到标准错误。 **封装的代码对象**: 两者均支持 Python 封装的代码对象(由 `marshal.dumps(compile(...))` 输出)。 要使用此功能,请在命令行中指定 `-c -v <版本>` —— 版本必须明确指定,因为对象本身不包含版本元数据。 ## 作者、许可与致谢 Decompyle++ 由 Michael Hansen 和 Darryl Pogue 开发。 其他贡献者包括: * charlietang98 * Kunal Parmar * Olivier Iffrig * Zlodiy 本软件根据 GNU 通用公共许可证第 3 版发布; 详见 LICENSE 文件。
标签:Bash脚本, C++, CMake, Decompyle++, pycdas, pycdas工具, pycdc, pycdc工具, Python, Python反编译, Python字节码, URL提取, 二进制分析, 二进制发布, 云安全监控, 云安全运维, 云资产清单, 代码恢复, 反编译, 反编译Python, 反编译工具, 反编译引擎, 反编译框架, 可执行文件, 字节码反汇编, 字节码解析, 开源工具, 数据擦除, 无后门, 源码还原, 跨版本支持, 软件逆向, 逆向工具, 逆向工程, 静态分析