BAP (Binary Analysis Platform)
binaryanalysisplatform.github.io
Spec sheet
- Purpose
- BAP is a suite of utilities and libraries for analyzing binary programs.Read 7 Oct 2026 · github.com
- Integrations
- The project documents interfaces and plugins for IDA Pro, Ghidra, and LLVM.Read 7 Oct 2026 · binaryanalysisplatform.github.io
- Support
- The installation instructions direct users who encounter missing system dependencies to the project's chat for help.Read 7 Oct 2026 · github.com
- License
- The GitHub repository identifies the project license as MIT.Read 7 Oct 2026 · github.com
- Headquarters
- Pittsburgh, Pennsylvania, United StatesRead 28 Sep 2026 · binaryanalysisplatform.github.io
- Analysis capabilities
- BAP includes analyses, a standard interpreter, a microexecution interpreter, and a symbolic executor.Read 7 Oct 2026 · github.com
- Analysis tools
- BAP includes analyses, a standard interpreter, a microexecution interpreter, and a symbolic executor.Read 7 Oct 2026 · github.com
- Architectures
- BAP supports x86, x86-64, ARM, MIPS, and PowerPC, with additional architectures addable through plugins.Read 7 Oct 2026 · github.com
- Command-line workflow
- The `disassemble` command disassembles a binary, lifts it into an architecture-agnostic representation, builds a control flow graph, and applies user-defined analyses.Read 7 Oct 2026 · github.com
- Development dependency
- Writing analyses in OCaml requires installing BAP from source because the binary packages do not include the OCaml development environment.Read 7 Oct 2026 · github.com
- Disassembly
- BAP's disassemble command lifts binaries into an architecture-independent representation, builds a control-flow graph, and applies user-defined analysis passes.Read 7 Oct 2026 · github.com
- Embedding and bindings
- BAP can be embedded as a library in OCaml or other-language applications using C bindings, and the project describes its Python support as minimal.Read 7 Oct 2026 · github.com
- Executable formats
- The default LLVM loader supports ELF, Mach-O, and COFF formats, including Windows PE.Read 7 Oct 2026 · binaryanalysisplatform.github.io
- Extensibility
- BAP is a plugin-based framework whose plugins can add analyses or change existing functionality without recompiling BAP.Read 7 Oct 2026 · github.com
- Installation
- Prebuilt packages are provided for Debian and Red Hat derivatives, with tgz archives for other distributions; source installation through opam is recommended for OCaml development.Read 7 Oct 2026 · github.com
- Intended use
- The project describes BAP as used for security analysis, program verification, and reverse engineering.Read 7 Oct 2026 · binaryanalysisplatform.github.io
- Maintainer
- The official About page says BAP is built and maintained by David Brumley's research group at Carnegie Mellon University.Read 7 Oct 2026 · binaryanalysisplatform.github.io
- Primus Lisp
- Its domain-specific Primus Lisp language can implement analyses, specify verification conditions, model functions, and interface with an SMT solver.Read 7 Oct 2026 · github.com
- Programming language
- BAP is written in OCaml and provides the Primus Lisp domain-specific language for implementing analyses, specifying verification conditions, modeling functions, and interfacing with an SMT solver.Read 7 Oct 2026 · github.com
- Python
- The project provides minimal Python support to help users start learning BAP.Read 7 Oct 2026 · github.com
- Supported architectures
- BAP supports x86, x86-64, ARM, MIPS, and PowerPC, and can add architectures through plugins.Read 7 Oct 2026 · github.com
- Use as library
- BAP can run as a command-line framework or be embedded as a library in OCaml or other applications using C bindings.Read 7 Oct 2026 · github.com
Plans and prices
BAP Free Open source binary analysis platform Read 7 Oct 2026 · github.com
Where Specifiction places it
- Reverse Engineering Tools#3 of 738.7