# uncompyle6 跨版本 Python 字节码反编译器

> 跨版本的 Python 反编译器，可把 Python 字节码还原为等价的 Python 源码，支持 Python 1.0 至 3.8 的字节码，以及部分 PyPy 字节码和 Dropbox 的 Python 2.5 字节码。它借助配套的 xdis 库反汇编代码对象，再把指令流解析成基于语法的树并据此输出源码；它还能只反解析给定字节码偏移附近的代码片段，作者的 trepan 调试器即用此功能精确报告位置。它是早期 decompyle、uncompyle 和 uncompyle2 等分支的后继项目。

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

## 使用条件与局限

- 审阅时最新版本为 3.9.3，于 2025-09-29 在 GitHub 和 PyPI 发布；所审阅的 master 提交比该版本晚 34 个提交，版本号为 3.9.4.dev0。与 master 分支一样，从 PyPI 安装的版本面向 Python 3.11+ 运行环境；更早的解释器（最早到 Python 2.4）需使用 GitHub Releases 中按版本区分的源码包、egg 或 wheel，它们由各自独立的 git 分支构建。依赖 xdis 6.3+、spark-parser 和 click。
- README 称已用 Python 1.4、2.1–2.7、3.0–3.8 以及较新 PyPy 版本的字节码测试过。对 Python 3 的支持以 3.3–3.4 附近最好，离这两个版本越远越弱；控制流是最大的已知问题，作者也不打算认真投入 3.8 或 3.9 的支持，并建议 3.7 和 3.8 改用独立的 decompyle3。高于 3.8 的字节码不会被反编译；候选发布版本的魔数、部分 Python 3.6 魔数变体、除 Dropbox 旧版 2.5 以外的加密或定制解释器字节码、混淆代码以及 Cython 和 MicroPython 均不受支持。
- 输入的 .pyc 或 .pyo 文件由使用者提供；它不能直接反编译 Py2EXE 生成的可执行文件，这类打包程序中的字节码需先行提取。--syntax-verify 选项只检查输出是否为合法的 Python 语法，因此 README 建议用其他版本的 uncompyle6 或 pycdc 等其他反编译器交叉核对。恢复出的源码仍受原程序权利人的权利约束。
- pyproject.toml 声明采用 GPL-3.0-or-later，COPYING 收录 GPL-3.0 全文。

## 一手来源

1. <https://github.com/rocky/python-uncompyle6/blob/91298ba80e322cfb8736ab8a697509527297a7a9/README.rst>
2. <https://github.com/rocky/python-uncompyle6/blob/91298ba80e322cfb8736ab8a697509527297a7a9/README.rst#L77-L126>
3. <https://github.com/rocky/python-uncompyle6/blob/91298ba80e322cfb8736ab8a697509527297a7a9/README.rst#L176-L299>
4. <https://github.com/rocky/python-uncompyle6/blob/91298ba80e322cfb8736ab8a697509527297a7a9/NEWS.md>
5. <https://github.com/rocky/python-uncompyle6/blob/91298ba80e322cfb8736ab8a697509527297a7a9/pyproject.toml>
6. <https://github.com/rocky/python-uncompyle6/blob/91298ba80e322cfb8736ab8a697509527297a7a9/uncompyle6/version.py>
7. <https://github.com/rocky/python-uncompyle6/blob/91298ba80e322cfb8736ab8a697509527297a7a9/COPYING>
8. <https://github.com/rocky/python-uncompyle6/releases/tag/3.9.3>
9. <https://pypi.org/project/uncompyle6/3.9.3/>

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

- [ret-sync 调试器与反汇编器同步插件](https://awesomerea.org/zh/resources/ret-sync/index.md) · 工具
- [PyInstaller Extractor（pyinstxtractor）PyInstaller 程序提取工具](https://awesomerea.org/zh/resources/pyinstxtractor/index.md) · 工具
- [BAP 二进制分析平台](https://awesomerea.org/zh/resources/bap/index.md) · 工具
- [Reko 通用反编译器](https://awesomerea.org/zh/resources/reko/index.md) · 工具
- [Dyninst 二进制插桩与分析库](https://awesomerea.org/zh/resources/dyninst/index.md) · 工具
- [goblin 二进制格式解析库](https://awesomerea.org/zh/resources/goblin/index.md) · 工具

## 关于此条目

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