{
  "added_at": "2026-10-19",
  "additional_evidence_urls": [
    "https://github.com/BinaryAnalysisPlatform/bap/blob/034bbd09646a589d5eb1f10b740177d628da80fd/README.md#L24-L124",
    "https://github.com/BinaryAnalysisPlatform/bap/blob/034bbd09646a589d5eb1f10b740177d628da80fd/dune-project",
    "https://github.com/BinaryAnalysisPlatform/bap/blob/034bbd09646a589d5eb1f10b740177d628da80fd/bap-llvm.opam",
    "https://github.com/BinaryAnalysisPlatform/bap/blob/034bbd09646a589d5eb1f10b740177d628da80fd/CHANGES.md",
    "https://github.com/BinaryAnalysisPlatform/bap/blob/034bbd09646a589d5eb1f10b740177d628da80fd/LICENSE",
    "https://github.com/BinaryAnalysisPlatform/bap/releases/tag/v2.5.0",
    "https://github.com/BinaryAnalysisPlatform/bap/releases/tag/v2.6.0-alpha",
    "https://github.com/BinaryAnalysisPlatform/bap/compare/v2.5.0...034bbd09646a589d5eb1f10b740177d628da80fd"
  ],
  "category": "binary-libraries",
  "description_en": "OCaml binary analysis platform from Carnegie Mellon University. Its bap command loads a program, disassembles it, lifts instructions into an architecture-neutral intermediate representation, builds the control-flow graph and runs analysis passes, while objdump, raw-loader and mc modes handle linear disassembly, raw code blobs and single encodings. The README lists x86, x86-64, ARM, MIPS and PowerPC support, an interpreter, a microexecution interpreter, a symbolic executor and the Primus Lisp language for analyses, function stubs and SMT-solver queries; analyses are written as OCaml plugins or by embedding BAP as a library, with C bindings and minimal Python support in separate repositories.",
  "description_zh": "卡内基梅隆大学开发的 OCaml 二进制分析平台。其 bap 命令可加载程序、进行反汇编、将指令提升为与架构无关的中间表示、构建控制流图并运行分析遍；objdump、raw 加载器和 mc 模式分别用于线性反汇编、原始代码块和单条指令编码。README 列出对 x86、x86-64、ARM、MIPS 和 PowerPC 的支持，以及解释器、微执行解释器、符号执行器和 Primus Lisp 语言，后者可用于编写分析、为函数编写桩模型和调用 SMT 求解器；分析以 OCaml 插件形式编写，或将 BAP 作为库嵌入应用，C 绑定和最基本的 Python 支持位于独立仓库。",
  "entry_url": "https://awesomerea.org/resources/bap/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/bap/",
  "evidence_url": "https://github.com/BinaryAnalysisPlatform/bap/blob/034bbd09646a589d5eb1f10b740177d628da80fd/README.md",
  "group": "tools",
  "id": "bap",
  "json_url": "https://awesomerea.org/resources/bap/record.json",
  "kind": "tool",
  "markdown_url": "https://awesomerea.org/resources/bap/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/bap/index.md",
  "name": "Binary Analysis Platform (BAP)",
  "name_zh": "BAP 二进制分析平台",
  "record_type": "resource",
  "relationship": "foundation",
  "requirements": [
    "Latest stable release at review: v2.5.0, published 2022-07-11, with x86_64 Debian and RPM packages, tgz archives and sigs.zip/sigs.tar.gz signature archives; a v2.6.0-alpha development build dates from 2023-01-07. The reviewed master commit (2026-05-07) is 60 commits ahead of v2.5.0 and its opam packages carry version dev; the commit before it dates from April 2025.",
    "The binary packages omit the OCaml development environment, so writing analyses needs a source install. The README recommends opam with OCaml 4.14.1 (opam install bap), offers a rolling testing opam repository that follows master, and also documents dune builds from a clone; the opam dependencies keep core_kernel and base below v0.16. The LLVM backend needs llvm-config (conf-bap-llvm 1.8+). The Ghidra and radare2 integrations, which the README calls experimental, and the Z3-based symbolic executor come with the bap-extra meta-package; IDA Pro integration is a separate package.",
    "Input is a user-supplied executable, or a raw code blob opened with --loader=raw and a base address. The tree also has RISC-V, SystemZ and Thumb packages beyond the README's architecture list. Lifted output depends on per-architecture semantics coverage; the 2.5.0 changelog adds a --print-missing option to list unlifted instructions.",
    "MIT license; contributions to the repository are accepted under MIT, while separately hosted plugins may use any license, including a proprietary one. The README names ForAllSecure Mayhem, Draper's CBAT tools and Fraunhofer FKIE's CWE Checker as projects built on BAP."
  ],
  "requirements_zh": [
    "审阅时最新稳定版为 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 构建的项目。"
  ],
  "targets": [
    "binary"
  ],
  "url": "https://github.com/BinaryAnalysisPlatform/bap",
  "verification": "source-reviewed",
  "verified_at": "2026-10-19"
}
