image
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 anyways. "B" and "2" mean "binary", and "R" indicates _ reversing _ . B2R2? 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…