工具

GTIRB 二进制中间表示

GrammaTech 开发的二进制中间表示,用于在各类二进制工具之间传递反汇编、分析与改写结果,其定位参照 LLVM-IR 在编译器中的作用。一个 IR 包含代表可执行文件或库的模块及其节、字节区间、代码块与数据块、符号和符号化操作数,另有过程间控制流图和存放分析结果的 AuxData 表,所有元素都通过 UUID 引用;它刻意不表示指令语义,机器码以原始字节保存,可交由 Capstone/Keystone 或其他中间语言处理。GTIRB 以 protobuf 序列化,提供 C++、Python 和 Common Lisp API 以及不完整的 Java API;另行收录的 ddisasm 可生成这种表示。

目标
二进制
类别
二进制分析库
关联
基础工具
来源复核于

使用条件与局限

  • PyPI 上最新的 gtirb 为 2.3.2,于 2026-06-16 以纯 Python wheel 上传,需要 Python 3.8+;更新日志称 PyPI 包需要 protobuf 4.21.1 或更新版本。同日所审阅的 master 提交把 version.txt 升至 2.3.3,CHANGELOG 将其标为尚未发布。GitHub 发布页止于 v2.0.0(2023-12-14,未附文件),之后的版本只有 git 标签。README 说明目前任何版本变化之间都不提供 ABI 兼容,并要求 stable 或 unstable 软件包与已安装的 ddisasm 和 gtirb-pprinter 保持一致。
  • 预编译方式包括 GrammaTech 下载服务器上的 Windows .zip 构建和 Ubuntu 20.04(focal)apt 软件包,以及内含 GTIRB、ddisasm 和 gtirb-pprinter 的 grammatech/ddisasm Docker 镜像;README 提醒,stable gtirb 2.0.0 及更早版本的 apt 元软件包在升级时会冲突。从源码构建需要支持 C++17 的 64 位编译器(GCC、Clang 或 Visual Studio)、CMake 3.10+、Protobuf 3.0.0+ 和 Boost 1.68+;Common Lisp API 还需额外的手动配置,Java API 被标为不完整。
  • GTIRB 是数据结构而非分析器:IR 来自 ddisasm 等生成工具。其模式中列出的文件格式包括 ELF、PE、COFF、XCOFF、Mach-O 和原始镜像,指令集从 IA-32、x64 到 ARM、MIPS、PowerPC,2.3.2 起还有 RISC-V;具体支持哪些取决于生成工具本身。doc/examples 中的程序演示 C++ API,并以多种语言计算 CFG 路径、数据符号和函数。
  • GitLab CI 配置在 Ubuntu 20.04、22.04 和 24.04 上用 GCC 和 Clang 构建并测试,另有静态构建、Java、Common Lisp、Python 和覆盖率任务;GitHub Actions 工作流只负责构建并发布文档。本次未查看任何流水线结果,也未进行构建。
  • LICENSE.txt 规定 GTIRB 采用 MIT(2018,GrammaTech),并附上适用于所含第三方代码的 Apache-2.0 with LLVM Exceptions,GitHub 因而未能归类;贡献者须签署 GrammaTech 的 CLA。gtirb-pprinter 和 gtirb-rewriting 是独立项目,本次未审阅;所审阅的来源未表明与 REA 有关。

关于此条目

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

报告条目过时 建议修正翻译

一手来源

  1. README.md GitHub · GrammaTech/gtirb · 修订 98fecec
  2. LICENSE.txt GitHub · GrammaTech/gtirb · 修订 98fecec
  3. CHANGELOG.md GitHub · GrammaTech/gtirb · 修订 98fecec
  4. version.txt GitHub · GrammaTech/gtirb · 修订 98fecec
  5. CMakeLists.txt GitHub · GrammaTech/gtirb · 修订 98fecec
  6. PROTOBUF.md GitHub · GrammaTech/gtirb · 修订 98fecec
  7. AuxData.md GitHub · GrammaTech/gtirb · 修订 98fecec
  8. proto/Module.proto GitHub · GrammaTech/gtirb · 修订 98fecec
  9. CONTRIBUTING.md GitHub · GrammaTech/gtirb · 修订 98fecec
  10. .ci/gitlab-ci.yml GitHub · GrammaTech/gtirb · 修订 98fecec
  11. .github/workflows/actions.yml GitHub · GrammaTech/gtirb · 修订 98fecec
  12. doc/examples GitHub · GrammaTech/gtirb · 修订 98fecec
  13. https://github.com/GrammaTech/gtirb/releases/tag/v2.0.0
  14. https://pypi.org/project/gtirb/2.3.2/

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

原生二进制分区全部 132 项资源