工具
Decompyle++(pycdc)Python 字节码反编译器
用 C++ 编写的 Python 字节码反汇编器与反编译器,目标是支持任意 Python 版本的字节码。pycdas 输出 .pyc 文件的反汇编结果,pycdc 则把重建出的 Python 源码输出到标准输出,错误信息输出到标准错误;在命令行中指定 Python 版本后,两者也能处理原始的 marshal 代码对象。源码中包含 Python 1.0 至 3.13 的操作码表。
使用条件与局限
- 该项目不发布任何版本或标签,需从源码构建;所审阅的 master 提交日期为 2026-04-07。README 未说明各 Python 版本的支持完整程度。.pyc 加载器可识别到 Python 3.13 的字节码,但不识别 3.14;回归测试中的编译样本只到 3.12:191 个样本中有 20 个针对 3.10–3.12,另有 39 个作为预期失败用例保留。
- CMakeLists.txt 要求 CMake 3.12+ 和 C++11 编译器,GCC 和 Clang 构建会把警告视为错误。make check 可在类 Unix 系统或 MSYS 上运行测试;CI 在 Ubuntu 上构建并测试,在 Windows 上则以 32 位 Visual Studio 2022 构建并测试,生成的可执行文件仅作为工作流产物保留。
- 输入的 .pyc 文件或 marshal 代码对象由使用者提供;从打包应用中取得这些文件不在本工具范围内。README 未说明对反编译结果的任何验证,存疑之处应与 pycdas 的反汇编输出对照。
- 采用 GPL-3.0 许可。恢复出的源码仍受原程序权利人的权利约束。本次未构建或反编译任何内容。
关于此条目
- 类型
- 工具
- 类别
- 原生分析工具
- 关联
- 基础工具
- 目标
- 应用 · 二进制
来源复核于
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.markdown GitHub · zrax/pycdc · 修订 b428976
- CMakeLists.txt GitHub · zrax/pycdc · 修订 b428976
- pyc_module.h GitHub · zrax/pycdc · 修订 b428976
- bytes GitHub · zrax/pycdc · 修订 b428976
- tests/compiled GitHub · zrax/pycdc · 修订 b428976
- tests/xfail GitHub · zrax/pycdc · 修订 b428976
- .github/workflows/linux-ci.yml GitHub · zrax/pycdc · 修订 b428976
- .github/workflows/msvc-ci.yml GitHub · zrax/pycdc · 修订 b428976
- LICENSE GitHub · zrax/pycdc · 修订 b428976