工具

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 许可。恢复出的源码仍受原程序权利人的权利约束。本次未构建或反编译任何内容。

关于此条目

类型
工具
类别
原生分析工具
关联
基础工具
目标
应用 · 二进制

来源复核于

说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。

一手来源

  1. README.markdown GitHub · zrax/pycdc · 修订 b428976
  2. CMakeLists.txt GitHub · zrax/pycdc · 修订 b428976
  3. pyc_module.h GitHub · zrax/pycdc · 修订 b428976
  4. bytes GitHub · zrax/pycdc · 修订 b428976
  5. tests/compiled GitHub · zrax/pycdc · 修订 b428976
  6. tests/xfail GitHub · zrax/pycdc · 修订 b428976
  7. .github/workflows/linux-ci.yml GitHub · zrax/pycdc · 修订 b428976
  8. .github/workflows/msvc-ci.yml GitHub · zrax/pycdc · 修订 b428976
  9. LICENSE GitHub · zrax/pycdc · 修订 b428976