# B2R2

> Binary analysis framework written in F# for .NET by KAIST's SoftSec Lab. It parses ELF, PE, Mach-O and WebAssembly files, parses, disassembles and lifts instructions into its own IR, recovers control-flow graphs and assembles code; the README's feature table covers x86/x86-64, ARMv7/AArch64, MIPS, PowerPC, RISC-V, SPARC, S390 and other ISAs as well as CIL, EVM, eBPF, WebAssembly and Python bytecode. Its b2r2 launcher starts a readelf-like format scanner, a linear-sweep disassembler, a recursive-descent explorer with a web GUI, an IR and assembly REPL and an assembler.

- Type: Tool
- Targets: Binary
- Category: Binary analysis libraries
- Relationship: Foundation tool
- Sources reviewed: 2026-10-19
- Added to the catalog: 2026-10-19
- Original resource: <https://github.com/B2R2-org/B2R2>
- Primary source: <https://github.com/B2R2-org/B2R2/blob/37de7a7274b61f7ec679153740955e7f9a94221e/README.md>
- Catalog page: <https://awesomerea.org/resources/b2r2/>
- Record JSON: <https://awesomerea.org/resources/b2r2/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/b2r2/index.md)

## Requirements & limits

- Latest release at review: v0.10.1, published 2026-06-17, with BinExplore archives for Linux, macOS and Windows on x64 and arm64; libraries such as B2R2.FrontEnd.API and the B2R2.RearEnd.Launcher .NET tool are on NuGet at 0.10.1. The reviewed main commit (2026-10-17) is 1,231 commits ahead of that tag and still declares 0.10.1.
- Building needs the .NET 10 SDK or later, and the projects target net10.0. The README states that the core library has no external dependencies, while System.IO.Hashing, FSharp.Compiler.Service, FParsec, BenchmarkDotNet and Avalonia.FuncUI serve specific components; it presents the APIs as usable from F# and, in principle, other CLI languages, on Linux, macOS, Windows and other .NET platforms.
- Input is a user-supplied ELF, PE, Mach-O or WebAssembly file, or a raw byte image loaded with an explicit ISA. The README's feature table gives CFG recovery a full mark only for x86, x86-64 and EVM and a half mark for the other ISAs, lists no lifting, CFG recovery or assembly for TMS320C6000, and notes that some areas are still in progress.
- MIT license. The README cites the 2019 NDSS Binary Analysis Research workshop paper describing B2R2 and lists research papers that use or build on it.

## Primary sources

1. <https://github.com/B2R2-org/B2R2/blob/37de7a7274b61f7ec679153740955e7f9a94221e/README.md>
2. <https://github.com/B2R2-org/B2R2/blob/37de7a7274b61f7ec679153740955e7f9a94221e/README.md#L49-L297>
3. <https://github.com/B2R2-org/B2R2/blob/37de7a7274b61f7ec679153740955e7f9a94221e/src/RearEnd/Launcher/Program.fs>
4. <https://github.com/B2R2-org/B2R2/blob/37de7a7274b61f7ec679153740955e7f9a94221e/Directory.Build.props>
5. <https://github.com/B2R2-org/B2R2/blob/37de7a7274b61f7ec679153740955e7f9a94221e/CHANGELOG.md>
6. <https://github.com/B2R2-org/B2R2/blob/37de7a7274b61f7ec679153740955e7f9a94221e/LICENSE.md>
7. <https://github.com/B2R2-org/B2R2/releases/tag/v0.10.1>
8. <https://github.com/B2R2-org/B2R2/compare/v0.10.1...37de7a7274b61f7ec679153740955e7f9a94221e>
9. <https://www.nuget.org/packages/B2R2.RearEnd.Launcher/0.10.1>

## More in Native binaries

- [rz-ghidra](https://awesomerea.org/resources/rz-ghidra/index.md) · Tool
- [dewolf](https://awesomerea.org/resources/dewolf/index.md) · Tool
- [decomp2dbg](https://awesomerea.org/resources/decomp2dbg/index.md) · Tool
- [E9Patch](https://awesomerea.org/resources/e9patch/index.md) · Tool
- [Rellic](https://awesomerea.org/resources/rellic/index.md) · Tool
- [ghidra-delinker-extension](https://awesomerea.org/resources/ghidra-delinker-extension/index.md) · Tool

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
