Skip to content

B2R2 API Reference

B2R2 is a binary reversing framework for inspecting binary formats, disassembling machine code, lifting instructions to LowUIR, recovering control flow, and building concrete or symbolic analysis scripts.

The primary API path is BinHandle for binary loading, BinaryBrew for function and CFG recovery, and the concrete or symbolic executors for stateful execution.

#r "nuget: B2R2.MiddleEnd.API"
#r "nuget: B2R2.MiddleEnd.ConcEval"
#r "nuget: B2R2.MiddleEnd.SymbEval"
#r "nuget: B2R2.FrontEnd.Intel"
open B2R2
open B2R2.FrontEnd
open B2R2.MiddleEnd
open B2R2.MiddleEnd.Executor
open B2R2.MiddleEnd.ConcEval
open B2R2.MiddleEnd.SymbEval
PageFocus
BinHandleLoading binaries, reading bytes and integers, creating lifting units.
BinaryBrewFunction recovery, CFG recovery, instruction collections, recovery strategies.
Concrete ExecutionConcExecutor, stop conditions, run results, and ConcStateAccessor.
Symbolic ExecutionSymbExecutor, symbolic queries, solvers, models, buffers, and call hooks.
B2R2 source pathCovered in
src/FrontEnd/API/BinHandle.fsiBinHandle
src/MiddleEnd/API/BinaryBrew.fsBinaryBrew
src/MiddleEnd/Executor/IExecutor.fsConcrete Execution / Symbolic Execution
src/MiddleEnd/Executor/IStateAccessor.fsConcrete Execution / Symbolic Execution
src/MiddleEnd/ConcEval/ConcExecutor.fsConcrete Execution
src/MiddleEnd/ConcEval/ConcStateAccessor.fsConcrete Execution
src/MiddleEnd/SymbEval/SymbExecutor.fsSymbolic Execution
src/MiddleEnd/SymbEval/SymbStateAccessor.fsSymbolic Execution
src/MiddleEnd/SymbEval/SymbExpr.fsSymbolic Execution
src/MiddleEnd/SymbEval/ISolver.fsSymbolic Execution
src/MiddleEnd/SymbEval/SymbModel.fsSymbolic Execution
src/MiddleEnd/SymbEval/SymbCallHook.fsSymbolic Execution
WorkflowPackage referenceMain namespace
Open binaries and lift instructions#r "nuget: B2R2.FrontEnd.API"B2R2.FrontEnd
Recover functions and CFGs#r "nuget: B2R2.MiddleEnd.API"B2R2.MiddleEnd
Concrete execution#r "nuget: B2R2.MiddleEnd.ConcEval"B2R2.MiddleEnd.ConcEval
Symbolic execution#r "nuget: B2R2.MiddleEnd.SymbEval"B2R2.MiddleEnd.SymbEval
Shared executor interfacesIncluded by executor packagesB2R2.MiddleEnd.Executor

Architecture packages such as B2R2.FrontEnd.Intel provide architecture-specific parsers, lifters, and register factories.