# Ddisasm Datalog 可重汇编反汇编器

> GrammaTech 开发的 Datalog 反汇编器，可将 x86-32、x86-64、ARM32、ARM64 和 MIPS32 架构的 ELF 与 PE 二进制转换为 GTIRB 中间表示。它先解码所有可能指令的超集，再用 Soufflé Datalog 规则和加权启发式推断代码位置、符号化结果和函数边界；gtirb-pprinter 可将结果输出为可重新汇编的汇编代码或重建的二进制，期间还可借助 GTIRB API 或 gtirb-rewriting 修改程序。推断出错时，用户可通过提示文件添加 Datalog 事实或调整启发式权重。

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

## 使用条件与局限

- 审阅时 GitHub 上最新的发布为 v1.8.0，发布于 2023-12-14，未附带文件。之后的版本通过其他渠道分发：PyPI 列出的 ddisasm 1.9.5 于 2026-07-06 上传，仅有一个 manylinux x86_64 wheel。所审阅的 main 分支提交（2026-10-13）声明版本为 1.9.6，更新日志将其标为尚未发布。
- 预构建版本有 grammatech/ddisasm Docker 镜像（stable 或 unstable 标签）、Ubuntu 20（focal）apt 软件包，以及 GrammaTech 服务器上的 Windows .zip 构建；文档提醒不要混用 stable 与 unstable 版本的工具。从源码构建需要支持 C++17 的编译器、GTIRB 1.12.1+、gtirb-pprinter 2.0.0+、Capstone 5.0.1+（GrammaTech 使用其分支测试）、启用 64 位数值编译的 Soufflé 2.4、libehp 1.0.0+ 以及 LIEF 0.13.2+。
- 输入为 ELF 或 PE 二进制；通过 gtirb-pprinter 重建二进制时会调用 gcc 等编译器或汇编器。代码推断和符号化属于启发式：--self-diagnose 只能对链接时保留完整重定位信息的二进制检查符号化结果；文档称用 .eh_frame 符号表达式代替 CFI 指令的选项仍属实验性，结果不可靠。
- 采用 AGPL-3.0 许可；贡献代码需签署 GrammaTech 的贡献者许可协议。GTIRB、gtirb-pprinter 和 gtirb-rewriting 是独立项目。README 引用了 USENIX Security 2020 和 IEEE S&P 2025 的两篇方法论文。

## 一手来源

1. <https://github.com/GrammaTech/ddisasm/blob/1d17f292e3672078eeb753473847306ca3f0f1ff/README.md>
2. <https://github.com/GrammaTech/ddisasm/blob/1d17f292e3672078eeb753473847306ca3f0f1ff/doc/source/GENERAL/1-Installation.md>
3. <https://github.com/GrammaTech/ddisasm/blob/1d17f292e3672078eeb753473847306ca3f0f1ff/doc/source/GENERAL/2-Building-Ddisasm.md>
4. <https://github.com/GrammaTech/ddisasm/blob/1d17f292e3672078eeb753473847306ca3f0f1ff/doc/source/GENERAL/3-Command-line-options.md#L38-L53>
5. <https://github.com/GrammaTech/ddisasm/blob/1d17f292e3672078eeb753473847306ca3f0f1ff/doc/source/GENERAL/5-AdvancedUsage.md>
6. <https://github.com/GrammaTech/ddisasm/blob/1d17f292e3672078eeb753473847306ca3f0f1ff/CHANGELOG.md>
7. <https://github.com/GrammaTech/ddisasm/blob/1d17f292e3672078eeb753473847306ca3f0f1ff/version.txt>
8. <https://github.com/GrammaTech/ddisasm/blob/1d17f292e3672078eeb753473847306ca3f0f1ff/CONTRIBUTING.md>
9. <https://github.com/GrammaTech/ddisasm/blob/1d17f292e3672078eeb753473847306ca3f0f1ff/LICENSE.txt>
10. <https://github.com/GrammaTech/ddisasm/releases/tag/v1.8.0>
11. <https://pypi.org/project/ddisasm/1.9.5/>
12. <https://www.usenix.org/conference/usenixsecurity20/presentation/flores-montoya>

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

- [PINCE GDB 前端与内存分析工具](https://awesomerea.org/zh/resources/pince/index.md) · 工具
- [uncompyle6 跨版本 Python 字节码反编译器](https://awesomerea.org/zh/resources/uncompyle6/index.md) · 工具
- [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) · 工具

## 关于此条目

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