- Home
- Reverse Engineering Tools
- BAP (Binary Analysis Platform)
BAP (Binary Analysis Platform)
Pittsburgh, Pennsylvania, United States
What it is
BAP (Binary Analysis Platform) is a free suite of utilities and libraries for examining programs in machine representation, with stated uses in security analysis, program verification, and reverse engineering. It can run as a command-line framework or be embedded in OCaml and other applications through C bindings. Its disassemble command lifts a binary into an architecture-independent representation, builds a control-flow graph, and runs user-defined analyses. BAP includes a standard interpreter, a microexecution interpreter, and a symbolic executor. It supports x86, x86-64, ARM, MIPS, and PowerPC; plugins can add architectures, analyses, or changes to existing functionality without recompiling BAP. Developers can write analyses in OCaml or use Primus Lisp to implement analyses, specify verification conditions, model functions, and interface with an SMT solver. The default LLVM loader supports ELF, Mach-O, and COFF, including Windows PE. BAP runs on Linux; prebuilt packages are available for Debian and Red Hat derivatives, with archives for other distributions. The project recommends source installation through opam for OCaml development.
For and against
For
- Supports five listed processor architectures.
- Plugins can add analyses without recompiling BAP.
- Includes standard, microexecution, and symbolic interpreters.
- MIT License permits use, modification, and distribution under its terms.
Against
- Python support is described as minimal.
- OCaml analysis development requires source installation.
- Prebuilt packages are listed for Debian and Red Hat derivatives.
The verdict
BAP offers command-line and embeddable binary-analysis workflows, with plugins and multiple analysis tools. Its minimal Python support and source-installation requirement for OCaml development are important considerations.
Who it suits
BAP suits security analysts, verification practitioners, and reverse engineers working with binaries. It is also relevant to developers who want to build analyses or embed binary analysis in applications.
Plans and prices
BAP
Open source binary analysis platform
Read 7 Oct 2026 · github.com
On the record
- Analysis capabilities
- BAP includes analyses, a standard interpreter, a microexecution interpreter, and a symbolic executor.github.com · read 7 Oct 2026
- Analysis tools
- BAP includes analyses, a standard interpreter, a microexecution interpreter, and a symbolic executor.github.com · read 7 Oct 2026
- Architectures
- BAP supports x86, x86-64, ARM, MIPS, and PowerPC, with additional architectures addable through plugins.github.com · read 7 Oct 2026
- 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.github.com · read 7 Oct 2026
- Development dependency
- Writing analyses in OCaml requires installing BAP from source because the binary packages do not include the OCaml development environment.github.com · read 7 Oct 2026
- Disassembly
- BAP's disassemble command lifts binaries into an architecture-independent representation, builds a control-flow graph, and applies user-defined analysis passes.github.com · read 7 Oct 2026
- 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.github.com · read 7 Oct 2026
- Executable formats
- The default LLVM loader supports ELF, Mach-O, and COFF formats, including Windows PE.binaryanalysisplatform.github.io · read 7 Oct 2026
- Extensibility
- BAP is a plugin-based framework whose plugins can add analyses or change existing functionality without recompiling BAP.github.com · read 7 Oct 2026
- 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.github.com · read 7 Oct 2026
- Integrations
- The project documents interfaces and plugins for IDA Pro, Ghidra, and LLVM.binaryanalysisplatform.github.io · read 7 Oct 2026
- Intended use
- The project describes BAP as used for security analysis, program verification, and reverse engineering.binaryanalysisplatform.github.io · read 7 Oct 2026
- License
- The GitHub repository identifies the project license as MIT.github.com · read 7 Oct 2026
- Maintainer
- The official About page says BAP is built and maintained by David Brumley's research group at Carnegie Mellon University.binaryanalysisplatform.github.io · read 7 Oct 2026
- Primus Lisp
- Its domain-specific Primus Lisp language can implement analyses, specify verification conditions, model functions, and interface with an SMT solver.github.com · read 7 Oct 2026
- 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.github.com · read 7 Oct 2026
- Purpose
- BAP is a suite of utilities and libraries for analyzing binary programs.github.com · read 7 Oct 2026
- Python
- The project provides minimal Python support to help users start learning BAP.github.com · read 7 Oct 2026