工具

Ddisasm Datalog 可重汇编反汇编器

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

使用条件与局限

  • 审阅时 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. README.md GitHub · GrammaTech/ddisasm · 修订 1d17f29
  2. doc/source/GENERAL/1-Installation.md GitHub · GrammaTech/ddisasm · 修订 1d17f29
  3. doc/source/GENERAL/2-Building-Ddisasm.md GitHub · GrammaTech/ddisasm · 修订 1d17f29
  4. doc/source/GENERAL/3-Command-line-options.md#L38-L53 GitHub · GrammaTech/ddisasm · 修订 1d17f29
  5. doc/source/GENERAL/5-AdvancedUsage.md GitHub · GrammaTech/ddisasm · 修订 1d17f29
  6. CHANGELOG.md GitHub · GrammaTech/ddisasm · 修订 1d17f29
  7. version.txt GitHub · GrammaTech/ddisasm · 修订 1d17f29
  8. CONTRIBUTING.md GitHub · GrammaTech/ddisasm · 修订 1d17f29
  9. LICENSE.txt GitHub · GrammaTech/ddisasm · 修订 1d17f29
  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