工具

BAP 二进制分析平台

卡内基梅隆大学开发的 OCaml 二进制分析平台。其 bap 命令可加载程序、进行反汇编、将指令提升为与架构无关的中间表示、构建控制流图并运行分析遍;objdump、raw 加载器和 mc 模式分别用于线性反汇编、原始代码块和单条指令编码。README 列出对 x86、x86-64、ARM、MIPS 和 PowerPC 的支持,以及解释器、微执行解释器、符号执行器和 Primus Lisp 语言,后者可用于编写分析、为函数编写桩模型和调用 SMT 求解器;分析以 OCaml 插件形式编写,或将 BAP 作为库嵌入应用,C 绑定和最基本的 Python 支持位于独立仓库。

使用条件与局限

  • 审阅时最新稳定版为 v2.5.0,发布于 2022-07-11,提供 x86_64 的 Debian 与 RPM 软件包、tgz 压缩包以及 sigs.zip/sigs.tar.gz 签名包;另有一个 v2.6.0-alpha 开发构建,日期为 2023-01-07。所审阅的 master 提交(2026-05-07)比 v2.5.0 多 60 个提交,其 opam 包版本标为 dev,上一个提交则是 2025 年 4 月。本条目固定该提交仅用于引用文档。
  • 二进制软件包不含 OCaml 开发环境,编写分析需从源码安装。README 推荐使用 opam 和 OCaml 4.14.1(opam install bap),也提供跟随 master 分支滚动更新的 testing opam 仓库,并说明了从克隆仓库用 dune 构建的方法;opam 依赖将 core_kernel 和 base 限制在 v0.16 以下。LLVM 后端需要 llvm-config(conf-bap-llvm 1.8+)。README 称为实验性的 Ghidra 与 radare2 集成以及基于 Z3 的符号执行器包含在 bap-extra 元包中;IDA Pro 集成则是单独的软件包。
  • 输入为用户提供的可执行文件,或通过 --loader=raw 并指定基址打开的原始代码块。仓库中还有 README 架构列表之外的 RISC-V、SystemZ 和 Thumb 软件包。提升结果取决于各架构语义的覆盖程度;2.5.0 更新日志新增了 --print-missing 选项,用于列出未能提升的指令。
  • MIT 许可证;提交到该仓库的贡献须采用 MIT,而独立托管的插件可使用任意许可证,包括专有许可证。README 列出 ForAllSecure Mayhem、Draper 的 CBAT 工具和 Fraunhofer FKIE 的 CWE Checker 等基于 BAP 构建的项目。本次未安装任何软件包,也未分析任何二进制。

关于此条目

类型
工具
类别
二进制分析库
关联
基础工具
目标
二进制

来源复核于

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

一手来源

  1. README.md GitHub · BinaryAnalysisPlatform/bap · 修订 034bbd0
  2. README.md#L24-L124 GitHub · BinaryAnalysisPlatform/bap · 修订 034bbd0
  3. dune-project GitHub · BinaryAnalysisPlatform/bap · 修订 034bbd0
  4. bap-llvm.opam GitHub · BinaryAnalysisPlatform/bap · 修订 034bbd0
  5. CHANGES.md GitHub · BinaryAnalysisPlatform/bap · 修订 034bbd0
  6. LICENSE GitHub · BinaryAnalysisPlatform/bap · 修订 034bbd0
  7. https://github.com/BinaryAnalysisPlatform/bap/releases/tag/v2.5.0
  8. https://github.com/BinaryAnalysisPlatform/bap/releases/tag/v2.6.0-alpha
  9. https://github.com/BinaryAnalysisPlatform/bap/compare/v2.5.0...034bbd09646a589d5eb1f10b740177d628da80fd