# decompyle3 Python 3.7–3.8 字节码反编译器

> uncompyle6 作者对该项目的重构版本，可把 Python 3.7 和 3.8 的字节码（包括部分 PyPy 3.7 和 3.8 字节码）还原为等价的 Python 源码；更早版本的字节码仍由 uncompyle6 处理。它借助配套的 xdis 库反汇编代码对象，再用重构后的语法对指令流进行词法处理和解析，生成语法树并据此输出源码；它还能只反编译给定起止偏移之间的代码，或通过 decompyle3-code 只反编译文件中的 lambda、生成器和各类推导式。README 指出，仅靠语法重写并不能解决 uncompyle6 在控制流上的根本问题，作者正在另一个未公开的项目中用基于支配关系的分析来解决。

- 类型：工具
- 目标：应用 · 二进制
- 类别：原生分析工具
- 关联：基础工具
- 来源复核于：2026-10-20
- 收录于：2026-11-02
- 原始资源：<https://github.com/rocky/python-decompile3>
- 一手来源：<https://github.com/rocky/python-decompile3/blob/0b97289634ffed8b785be5463ebab7cdf1743a15/README.rst>
- 目录页面：<https://awesomerea.org/zh/resources/decompyle3/>
- 记录 JSON：<https://awesomerea.org/resources/decompyle3/record.json>
- 英文版：[English](https://awesomerea.org/resources/decompyle3/index.md)

## 使用条件与局限

- 审阅时最新版本为 3.9.3，于 2025-10-01 在 GitHub 和 PyPI 发布；所审阅的 master 提交日期为 2026-07-21，比该版本晚 18 个提交，版本号为 3.9.4.dev0。README 称代码可在 Python 3.7 或 3.8 上运行，而 pyproject.toml 要求 Python 3.7+，分类信息列到 3.13；master 分支的 CI 在 Python 3.13 下测试，另有独立的 python-3.7-to-3.10 分支在 3.8 下测试；3.9.3 版本还另行提供面向 3.7、3.8 和 3.9 的 wheel 与 egg 包。依赖高于 6.2 的 xdis、1.8.9 及以上但低于 1.9.2 的 spark-parser，以及 click；在 xdis 发布下一个版本之前，master 分支的 CI 从其 git 仓库安装 xdis。
- README 称已用 Python 3.7 和 3.8 的字节码测试过，回归测试保留了 3.7 和 3.8 的编译样本以及少量 PyPy 样本；发布说明指出，高于 3.8 的字节码不会被反编译。作者提醒反编译仍有大量缺陷，并表示在项目获得更多资助之前不打算认真投入 3.8 或 3.9 的支持。候选发布版本的魔数、PJOrion 或其他混淆代码以及 Cython 和 MicroPython 均不受支持，处理超长的表达式或语句列表也很慢。
- 输入的 .pyc 或 .pyo 文件由使用者提供；它不能直接反编译 Py2EXE 生成的可执行文件，这类打包程序中的字节码需先行提取。README 所述的 --syntax-verify 选项在所审阅的命令行中为 --verify syntax，另有 --verify run；只有当检查用的解释器与字节码版本一致时，语法检查才有意义，因此 README 建议用 unpyc37 等其他反编译器交叉核对，并借助能自我测试的程序（包括 Python 标准库的测试）进行检验。恢复出的源码仍受原程序权利人的权利约束。
- pyproject.toml 声明采用 GPL-3.0-or-later，COPYING 收录 GPL-3.0 全文。

## 一手来源

1. <https://github.com/rocky/python-decompile3/blob/0b97289634ffed8b785be5463ebab7cdf1743a15/README.rst>
2. <https://github.com/rocky/python-decompile3/blob/0b97289634ffed8b785be5463ebab7cdf1743a15/NEWS.md>
3. <https://github.com/rocky/python-decompile3/blob/0b97289634ffed8b785be5463ebab7cdf1743a15/pyproject.toml>
4. <https://github.com/rocky/python-decompile3/blob/0b97289634ffed8b785be5463ebab7cdf1743a15/decompyle3/version.py>
5. <https://github.com/rocky/python-decompile3/blob/0b97289634ffed8b785be5463ebab7cdf1743a15/decompyle3/bin/decompile.py>
6. <https://github.com/rocky/python-decompile3/blob/0b97289634ffed8b785be5463ebab7cdf1743a15/decompyle3/bin/decompile_code_type.py>
7. <https://github.com/rocky/python-decompile3/blob/0b97289634ffed8b785be5463ebab7cdf1743a15/.github/workflows/ubuntu.yml>
8. <https://github.com/rocky/python-decompile3/tree/0b97289634ffed8b785be5463ebab7cdf1743a15/test>
9. <https://github.com/rocky/python-decompile3/blob/0b97289634ffed8b785be5463ebab7cdf1743a15/COPYING>
10. <https://github.com/rocky/python-decompile3/releases/tag/3.9.3>
11. <https://pypi.org/project/decompyle3/3.9.3/>

## 同分区更多条目：原生二进制

- [DRAKVUF 虚拟化黑盒二进制分析系统](https://awesomerea.org/zh/resources/drakvuf/index.md) · 工具
- [ViperMonkey VBA 恶意宏仿真分析引擎](https://awesomerea.org/zh/resources/vipermonkey/index.md) · 工具
- [BREAD BIOS 实模式调试器](https://awesomerea.org/zh/resources/bread-bios-debugger/index.md) · 工具
- [Mergen 反混淆 LLVM IR 提升器](https://awesomerea.org/zh/resources/mergen/index.md) · 工具
- [readpe（原名 pev）PE 文件分析工具集](https://awesomerea.org/zh/resources/readpe/index.md) · 工具
- [malware-jail JavaScript 恶意代码沙箱](https://awesomerea.org/zh/resources/malware-jail/index.md) · 工具

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
