# BinaryAnalysisPlatform/bap

Binary Analysis Platform

Repository: https://github.com/BinaryAnalysisPlatform/bap
Canonical: https://ross.abutalabs.com/products/bap
Language: OCaml
License: MIT
License Family: permissive
Topics: binary-analysis, reverse-engineering, program-analysis, static-analysis, dynamic-analysis, program-verification, instruction-semantics, taint-analysis, disassembler, lifter, ocaml, arm, x86, security, emulator, bap, powerpc, mips, symbolic-execution
Last push: 2026-05-07T15:28:41+00:00

## Health v2 (maintenance only)
Score: 59/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 81, release rhythm 8, longevity 100
- inputs: {"age_days": 4325, "days_push": 118, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 2253, forks 285 (observed 2026-08-28T04:06:31.117406+00:00)

## What it is
CMU Binary Analysis Platform (BAP) is a suite of OCaml libraries and a plugin-extensible CLI tool for analyzing binary programs. It lifts binaries for x86, x86-64, ARM, MIPS, and PowerPC into a semantic IR and provides interpreters, a symbolic executor, taint analysis, and a domain-specific language (Primus Lisp) for writing custom analyses.

## Use cases
- analyze binary programs statically
- disassemble and lift binaries to an intermediate representation
- run symbolic execution on binaries
- perform taint analysis on executables
- write custom binary analysis tools in OCaml
- verify properties of binary code with SMT solvers
- emulate and microexecute binary code

## When to choose
- you need semantically precise binary analysis rather than just disassembly
- you want to build custom program analyses on top of a well-defined IR
- you work in OCaml or can use C/Python bindings
- you need support for x86, ARM, MIPS, or PowerPC architectures

## When to avoid
- you only need a GUI disassembler for quick reverse engineering
- you need decompilation to high-level source code
- you require architectures outside BAP's supported set without writing plugins
- you prefer Python-first analysis frameworks like angr

## Facets
- artifact type: framework
- maturity: active
- function: reverse-engineering, parser, interpreter, security, plugin-system, sdk
- domain: reverse-engineering, security, programming-languages, developer-tools
- platform: cli, python
- tags: binary-analysis, disassembler, lifter, symbolic-execution, taint-analysis, static-analysis, program-verification, ocaml, x86, arm, mips, powerpc, primus-lisp, smt, linux, macos

## Member repositories
- BinaryAnalysisPlatform/bap (main) score 59

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:06:31.117406+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T02:43:47.252962+00:00, confidence not recorded.
  - readme: https://github.com/BinaryAnalysisPlatform/bap (fetched 2026-08-28T04:06:31.117406+00:00, sha 83475959d143)
- Data as of 2026-08-30T08:39:29.467469+00:00.
