The Binary Analysis Platform is a reverse engineering and program analysis platform that targets binaries, i.e., compiled programs without the source code. BAP supports multiple architectures (more than 30), though the first tier architectures are x86, x86-64, and ARM. BAP operates by disassembling and lifting the binary code into the RISC-like BAP Instruction Language (BIL). Thus the analysis, implemented in BAP, is architecture independent in a sense that it will work equally well for all the supported architectures. The platform comes with a set of tools, libraries, and plugins. The main purpose of BAP is to provide a toolkit for automated program analysis. BAP is written in OCaml and it is the preferred language to write analysis, though we have bindings to C, Python, and Rust.
The v1.3 release is the 13th and the biggest public release in the history of BAP, that brings lots of new stuff, including:
- New OGRE loader that works smoothly with all sorts of the binaries, including Linux and Darwin kernel modules, shared libraries, and other peculiar program representations
- Memory consumption is reduced several times (special thanks to the Spacetime team)
- Primus - the CPU emulation and microexecution framework
- Better and more concise program representation, thanks to the dead code elimination pass with effect analysis
- Support for LLVM 4.0