B2R2 v0.2 releases: useful algorithms, functions, and tools for binary analysis
B2R2 is a collection of useful algorithms, functions, and tools for binary analysis, written purely in F# (in .NET lingo, it is purely managed code). B2R2 has been named after R2-D2, a famous fictional robot appeared in the Star Wars. In fact, B2R2’s original name was B2-R2, but we decided to use the name B2R2 instead because .NET does not allow dash (-) characters in identifiers (or namespaces). The name essentially represents “binary” or “two”: “binary” itself means “two” states anyway. “B” and “2” mean “binary”, and “R” indicates reversing.
- B2R2 is analysis-friendly: it is written in F#, which provides all the syntactic goodies for writing program analyzers, such as pattern matching, algebraic data types, and etc.
- B2R2 is fast: it has a fast and efficient front-end engine for binary analysis, which is written purely in a functional way. Therefore, it naturally supports pure parallelism for binary disassembling, lifting and IR optimization.
- B2R2 is easy to play with: there is absolutely no dependency hell for B2R2 because it is a fully-managed library. All you need to do is to install .NET Core SDK, and you are ready to go! Native IntelliSense support is another plus!
- B2R2 is OS-Independent: it works on Linux, Mac, Windows, and etc. as long as .NET core supports it.
- B2R2 is interoperable: it is not bound to a specific language. Theoretically, you can use B2R2 APIs with any CLI supported languages.
- Functional First
Written purely in F#, providing all the syntactic goodies for writing program analyzers, such as pattern matching, algebraic data types, and etc.
- Fast Frontend
B2R2 naturally supports pure parallelism, thanks to F#, and highly optimized for parsing and lifting optimized IR statements.
- No Dependency
There is absolutely no dependency hell for B2R2. So it is easy to play with. All you need to do is to install .NET Core SDK, and you are ready to go!
- OS Independent
B2R2 runs on any OS, such as Linux, macOS, and Windows, as long as .NET Core supports it.
- Language Agnostic
Although B2R2 is written in F#, it can interoperate well with other languages, such as Python and C#.
- Open Source
Since B2R2 is MIT licensed, you can even use it commercially!
- Add a new style in the WebUI.
- Add a search feature in the WebUI.
- Add Mach-O fat file format support.
- Add FileViewer utility.
- Add a batch option to BinExplorer.
- Add a boilerplate assembler module.
- Add the conceval (concrete evaluation) module.
- Rewrote BinFile modules.
- Fix bugs in the minimap handling of the WebUI.
- Clean up ROP gadget search.
- Fix a BitVector bug.
- Fix a IntervalSet bug.
- Fix various ARMv7 parsing and lifting bugs (not yet stable).
- Enable the use of external lifter.
Copyright (c) SoftSec Lab. @ KAIST, since 2016