# BAP 二进制分析平台

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

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

## 使用条件与局限

- 审阅时最新稳定版为 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. <https://github.com/BinaryAnalysisPlatform/bap/blob/034bbd09646a589d5eb1f10b740177d628da80fd/README.md>
2. <https://github.com/BinaryAnalysisPlatform/bap/blob/034bbd09646a589d5eb1f10b740177d628da80fd/README.md#L24-L124>
3. <https://github.com/BinaryAnalysisPlatform/bap/blob/034bbd09646a589d5eb1f10b740177d628da80fd/dune-project>
4. <https://github.com/BinaryAnalysisPlatform/bap/blob/034bbd09646a589d5eb1f10b740177d628da80fd/bap-llvm.opam>
5. <https://github.com/BinaryAnalysisPlatform/bap/blob/034bbd09646a589d5eb1f10b740177d628da80fd/CHANGES.md>
6. <https://github.com/BinaryAnalysisPlatform/bap/blob/034bbd09646a589d5eb1f10b740177d628da80fd/LICENSE>
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>

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

- [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) · 工具
- [FLOSS 混淆字符串提取工具](https://awesomerea.org/zh/resources/flare-floss/index.md) · 工具
- [Zydis x86 反汇编与代码生成库](https://awesomerea.org/zh/resources/zydis/index.md) · 工具
- [QBDI 动态二进制插桩框架](https://awesomerea.org/zh/resources/qbdi/index.md) · 工具

## 关于此条目

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