{"id":6825,"date":"2019-10-10T15:12:54","date_gmt":"2019-10-10T09:42:54","guid":{"rendered":"http:\/\/kalilinuxtutorials.com\/?p=6825"},"modified":"2019-10-10T15:12:54","modified_gmt":"2019-10-10T09:42:54","slug":"b2r2-algorithms-functions-binary-analysis","status":"publish","type":"post","link":"https:\/\/kalilinuxtutorials.com\/b2r2-algorithms-functions-binary-analysis\/","title":{"rendered":"B2R2 : A Collection of Algorithms, Functions And Tools For Binary Analysis"},"content":{"rendered":"\n<p><strong>B2R2 <\/strong>is a collection of useful algorithms, functions, and tools for binary analysis written purely in F# (in .NET lingo, it is purely managed code). <\/p>\n\n\n\n<p>It has been named after&nbsp;R2-D2, a famous fictional robot appeared in the Star Wars. In fact, B2R2&#8217;s original name was&nbsp;<em>B2-R2<\/em>, but we decided to use the name&nbsp;<em>B2R2<\/em>&nbsp;instead, because .NET does not allow dash (-) characters in identifiers (or namespaces). <\/p>\n\n\n\n<p>The name essentially represents &#8220;binary&#8221; or &#8220;two&#8221;: &#8220;binary&#8221; itself means &#8220;two&#8221; states anyways. &#8220;B&#8221; and &#8220;2&#8221; mean &#8220;binary&#8221;, and &#8220;R&#8221; indicates&nbsp;<em>reversing<\/em>.<\/p>\n\n\n\n<p style=\"text-align:center\" class=\"has-background has-light-green-cyan-background-color\"><strong>What is B2R2<\/strong> ?<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li><strong>It is&nbsp;analysis-friendly:<\/strong> it is written in F#, which provides all the syntactic goodies for writing program analyzers, such as pattern matching, algebraic data types, and etc.<\/li><li><strong>It is&nbsp;fast:<\/strong> it has a fast and efficient front-end engine for binary analysis, which is written purely in a functional way. Therefore, it naturally supports&nbsp;<em>pure parallelism<\/em>&nbsp;for binary disassembling, lifting and IR optimization.<\/li><li><strong>It is&nbsp;easy&nbsp;to play with<\/strong>: there is absolutely no dependency hell for B2R2 because it is a fully-managed library. All you need to do is to install&nbsp;.NET Core SDK, and you are ready to go! Native&nbsp;IntelliSense&nbsp;support is another plus!<\/li><li><strong>It is&nbsp;OS-Independent<\/strong>: it works on Linux, Mac, Windows, and etc. as long as .NET core supports it.<\/li><li><strong>It is&nbsp;interoperable<\/strong>: it is not bound to a specific language. Theoretically, you can use B2R2 APIs with any&nbsp;CLI supported languages.<\/li><\/ol>\n\n\n\n<p style=\"text-align:center\"><strong>Also Read &#8211; <a href=\"https:\/\/kalilinuxtutorials.com\/givemesecrets\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"GiveMeSecrets : Use Regular Expressions To Get Sensitive Information (opens in a new tab)\">GiveMeSecrets : Use Regular Expressions To Get Sensitive Information<\/a><\/strong><\/p>\n\n\n\n<p style=\"text-align:center\" class=\"has-background has-light-green-cyan-background-color\"><a href=\"https:\/\/github.com\/B2R2-org\/B2R2#features\"><\/a><strong>Features<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Currently, our focus is on the front-end of binary analysis, which includes binary parser, lifter, and optimizer. <\/li><li>B2R2 natively supports parallel lifting, which is a new technique we introduced in 2019 NDSS Bar. <\/li><li>We also have our own back-end tools such as symbolic executor, but we are&nbsp;<em>not<\/em>&nbsp;planning to open-source them yet. <\/li><li>Nevertheless, B2R2 includes several useful middle-end or back-end features such as ROP chain compilation, CFG building, and automatic graph drawing, and etc. <\/li><li>B2R2 also comes with a simple command-line utility that we call&nbsp;<code><strong>BinExplorer<\/strong><\/code>, which can help explore such features using a simple command line interface.<\/li><\/ul>\n\n\n\n<p style=\"text-align:center\" class=\"has-background has-light-green-cyan-background-color\"><a href=\"https:\/\/github.com\/B2R2-org\/B2R2#dependencies\"><\/a><strong>Dependencies<\/strong><\/p>\n\n\n\n<p>B2R2 relies on a tiny set of external .NET libraries, and our design principle is to use a minimum number of libraries. Below is a list of libraries that we leverage.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>System.Reflection.Metadata<\/li><li> Microsoft.FSharpLu.Json<\/li><li> FParsec<\/li><\/ul>\n\n\n\n<p style=\"text-align:center\" class=\"has-background has-light-green-cyan-background-color\"><strong>Example<\/strong><\/p>\n\n\n\n<p>Let&#8217;s try to use B2R2 APIs.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li> First we create an empty directory&nbsp;<code><strong>DIRNAME<\/strong><\/code>: <\/li><\/ul>\n\n\n\n<p class=\"has-text-color has-background has-vivid-green-cyan-color has-very-dark-gray-background-color\"><strong>mkdir DIRNAME<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li> We then create an empty console project with&nbsp;<code><strong>dotne<\/strong>t<\/code>&nbsp;command line: <\/li><\/ul>\n\n\n\n<p class=\"has-text-color has-background has-vivid-green-cyan-color has-very-dark-gray-background-color\"><strong>$ dotnet new console -lang F#<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li> Add our nuget package&nbsp;<em>B2R2.FrontEnd<\/em>&nbsp;to the project: <\/li><\/ul>\n\n\n\n<p class=\"has-text-color has-background has-vivid-green-cyan-color has-very-dark-gray-background-color\"><strong>$ dotnet add package B2R2.FrontEnd<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li> Modify the&nbsp;<code><strong>Program.fs<\/strong><\/code>&nbsp;file with your favorite editor as follows: <\/li><\/ul>\n\n\n\n<p class=\"has-text-color has-background has-vivid-green-cyan-color has-very-dark-gray-background-color\"><strong>open B2R2<br> open B2R2.FrontEnd<br>[&lt;EntryPoint&gt;]<br> let main argv =<br>   let isa = ISA.OfString &#8220;amd64&#8221;<br>   let bytes = [| 0x65uy; 0xffuy; 0x15uy; 0x10uy; 0x00uy; 0x00uy; 0x00uy |]<br>   let handler = BinHandler.Init (isa, bytes)<br>   let ins = BinHandler.ParseInstr handler 0UL<br>   ins.Translate handler.TranslationContext |&gt; printfn &#8220;%A&#8221;<br>   0<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>We then just run it by typing:&nbsp;<code><strong>dotnet run<\/strong><\/code>. You will be able see lifted IR statements from your console. That&#8217;s it! You just lifted an Intel instruction with only few lines of F# code! <\/li><\/ul>\n\n\n\n<p style=\"text-align:center\" class=\"has-background has-light-green-cyan-background-color\"><a href=\"https:\/\/github.com\/B2R2-org\/B2R2#build\"><\/a><strong>Build<\/strong><\/p>\n\n\n\n<p>Building B2R2 is fun and easy. All you need to do is to install .NET Core SDK 3.0 or above. Yea, that&#8217;s it!<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>To build B2R2 in release mode, type&nbsp;<code><strong>make release<\/strong><\/code><strong>&nbsp;or&nbsp;<\/strong><code><strong>dotnet build -c Release<\/strong><\/code>&nbsp;in the source root.<\/li><li>To build B2R2 in debug mode, type&nbsp;<code><strong>make<\/strong><\/code>, or&nbsp;<code><strong>dotnet build<\/strong><\/code>&nbsp;in the source root.<\/li><\/ul>\n\n\n\n<p>For your information, please visit the official web site of F# to get more tips about installing the development environment for F#:<\/p>\n\n\n\n<p style=\"text-align:center\" class=\"has-background has-light-green-cyan-background-color\"><a href=\"https:\/\/github.com\/B2R2-org\/B2R2#why-reinventing-the-wheel\"><\/a><strong>Why Reinventing the Wheel<\/strong><\/p>\n\n\n\n<p>There are many other great tools available, but we wanted to build a&nbsp;functional-first&nbsp;binary analysis platform that is painless to install and runs on any platform without any hassle.<\/p>\n\n\n\n<p>B2R2 is in its&nbsp;infancy&nbsp;stage, but we believe it provides a rich set of library functions for binary analysis.<\/p>\n\n\n\n<p> It also has a strong front-end that is easily adaptable and extendible! Currently it reliably supports x86 and x86-64, meaning that we have heavily tested them; and it partially supports ARMv7 (and Thumb), ARMv8, MIPS32, and MIPS64, meaning that they work, but we haven&#8217;t tested them thorougly yet.<\/p>\n\n\n\n<p style=\"text-align:center\" class=\"has-background has-light-green-cyan-background-color\"><a href=\"https:\/\/github.com\/B2R2-org\/B2R2#features-to-be-added\"><\/a><strong>Features to be Added<\/strong><\/p>\n\n\n\n<p>Below is a list of features that we plan to add in the future: the list is totally incomplete. Some of them are work in progress, but we look forward your contributions! <\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Implement CFG recovery algorithms.<\/li><li>Implement assembler for currently supported ISAs using a parser combinator.<\/li><li>Support for floating point operations.<\/li><li>Support for more architectures such as PPC.<\/li><\/ul>\n\n\n\n<p><strong>Credits<\/strong>: Members in SoftSec Lab<\/p>\n\n\n\n<div class=\"wp-block-button aligncenter is-style-squared\"><a class=\"wp-block-button__link has-background has-vivid-cyan-blue-background-color\" href=\"https:\/\/github.com\/B2R2-org\/B2R2\"><strong>Download<\/strong><\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>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). It has been named after&nbsp;R2-D2, a famous fictional robot appeared in the Star Wars. In fact, B2R2&#8217;s original name was&nbsp;B2-R2, but we decided to use the name&nbsp;B2R2&nbsp;instead, because .NET does [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":15849,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/1.bp.blogspot.com\/-1n5Vb8kC2LI\/XZ2oDT29YfI\/AAAAAAAAC20\/ba_HUc6g43YxOAJO9Yn-5AkWTN1IKQ91wCLcBGAsYHQ\/s1600\/b2r2%25281%2529.png","fifu_image_alt":"B2R2 : A Collection of Algorithms, Functions And Tools For Binary Analysis","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[28],"tags":[320,373],"class_list":["post-6825","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kali","tag-b2r2","tag-binary-analysis"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>B2R2 : A Collection of Algorithms, Functions And Tools For Binary Analysis<\/title>\n<meta name=\"description\" content=\"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).\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kalilinuxtutorials.com\/b2r2-algorithms-functions-binary-analysis\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"B2R2 : A Collection of Algorithms, Functions And Tools For Binary Analysis\" \/>\n<meta property=\"og:description\" content=\"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).\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kalilinuxtutorials.com\/b2r2-algorithms-functions-binary-analysis\/\" \/>\n<meta property=\"og:site_name\" content=\"Kali Linux Tutorials\" \/>\n<meta property=\"article:published_time\" content=\"2019-10-10T09:42:54+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/1.bp.blogspot.com\/-1n5Vb8kC2LI\/XZ2oDT29YfI\/AAAAAAAAC20\/ba_HUc6g43YxOAJO9Yn-5AkWTN1IKQ91wCLcBGAsYHQ\/s1600\/b2r2%25281%2529.png\" \/>\n<meta name=\"author\" content=\"R K\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/1.bp.blogspot.com\/-1n5Vb8kC2LI\/XZ2oDT29YfI\/AAAAAAAAC20\/ba_HUc6g43YxOAJO9Yn-5AkWTN1IKQ91wCLcBGAsYHQ\/s1600\/b2r2%25281%2529.png\" \/>\n<meta name=\"twitter:creator\" content=\"@CyberEdition\" \/>\n<meta name=\"twitter:site\" content=\"@CyberEdition\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"R K\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/b2r2-algorithms-functions-binary-analysis\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/b2r2-algorithms-functions-binary-analysis\/\"},\"author\":{\"name\":\"R K\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/#\/schema\/person\/69444b58b9e267a4cf08fceb34b6f6ad\"},\"headline\":\"B2R2 : A Collection of Algorithms, Functions And Tools For Binary Analysis\",\"datePublished\":\"2019-10-10T09:42:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/b2r2-algorithms-functions-binary-analysis\/\"},\"wordCount\":838,\"publisher\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/b2r2-algorithms-functions-binary-analysis\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/1.bp.blogspot.com\/-1n5Vb8kC2LI\/XZ2oDT29YfI\/AAAAAAAAC20\/ba_HUc6g43YxOAJO9Yn-5AkWTN1IKQ91wCLcBGAsYHQ\/s1600\/b2r2%25281%2529.png\",\"keywords\":[\"B2R2\",\"Binary Analysis\"],\"articleSection\":[\"Kali Linux\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/b2r2-algorithms-functions-binary-analysis\/\",\"url\":\"https:\/\/kalilinuxtutorials.com\/b2r2-algorithms-functions-binary-analysis\/\",\"name\":\"B2R2 : A Collection of Algorithms, Functions And Tools For Binary Analysis\",\"isPartOf\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/b2r2-algorithms-functions-binary-analysis\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/b2r2-algorithms-functions-binary-analysis\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/1.bp.blogspot.com\/-1n5Vb8kC2LI\/XZ2oDT29YfI\/AAAAAAAAC20\/ba_HUc6g43YxOAJO9Yn-5AkWTN1IKQ91wCLcBGAsYHQ\/s1600\/b2r2%25281%2529.png\",\"datePublished\":\"2019-10-10T09:42:54+00:00\",\"description\":\"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).\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kalilinuxtutorials.com\/b2r2-algorithms-functions-binary-analysis\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/b2r2-algorithms-functions-binary-analysis\/#primaryimage\",\"url\":\"https:\/\/1.bp.blogspot.com\/-1n5Vb8kC2LI\/XZ2oDT29YfI\/AAAAAAAAC20\/ba_HUc6g43YxOAJO9Yn-5AkWTN1IKQ91wCLcBGAsYHQ\/s1600\/b2r2%25281%2529.png\",\"contentUrl\":\"https:\/\/1.bp.blogspot.com\/-1n5Vb8kC2LI\/XZ2oDT29YfI\/AAAAAAAAC20\/ba_HUc6g43YxOAJO9Yn-5AkWTN1IKQ91wCLcBGAsYHQ\/s1600\/b2r2%25281%2529.png\"},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/#website\",\"url\":\"https:\/\/kalilinuxtutorials.com\/\",\"name\":\"Kali Linux Tutorials\",\"description\":\"Kali Linux Tutorials\",\"publisher\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kalilinuxtutorials.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/#organization\",\"name\":\"Kali Linux Tutorials\",\"url\":\"https:\/\/kalilinuxtutorials.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/07\/Kali.png\",\"contentUrl\":\"https:\/\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/07\/Kali.png\",\"width\":272,\"height\":90,\"caption\":\"Kali Linux Tutorials\"},\"image\":{\"@id\":\"https:\/\/kalilinuxtutorials.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/CyberEdition\",\"https:\/\/www.threads.com\/@cybersecurityedition\",\"https:\/\/www.linkedin.com\/company\/cyberedition\",\"https:\/\/www.instagram.com\/cybersecurityedition\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/#\/schema\/person\/69444b58b9e267a4cf08fceb34b6f6ad\",\"name\":\"R K\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/kalilinuxtutorials.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d3937c9687f2da11bc0a716404ff91779fe19ca115208dbf66167ad353aca5aa?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d3937c9687f2da11bc0a716404ff91779fe19ca115208dbf66167ad353aca5aa?s=96&d=mm&r=g\",\"caption\":\"R K\"},\"url\":\"https:\/\/kalilinuxtutorials.com\/author\/ranjith\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"B2R2 : A Collection of Algorithms, Functions And Tools For Binary Analysis","description":"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).","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kalilinuxtutorials.com\/b2r2-algorithms-functions-binary-analysis\/","og_locale":"en_US","og_type":"article","og_title":"B2R2 : A Collection of Algorithms, Functions And Tools For Binary Analysis","og_description":"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).","og_url":"https:\/\/kalilinuxtutorials.com\/b2r2-algorithms-functions-binary-analysis\/","og_site_name":"Kali Linux Tutorials","article_published_time":"2019-10-10T09:42:54+00:00","og_image":[{"url":"https:\/\/1.bp.blogspot.com\/-1n5Vb8kC2LI\/XZ2oDT29YfI\/AAAAAAAAC20\/ba_HUc6g43YxOAJO9Yn-5AkWTN1IKQ91wCLcBGAsYHQ\/s1600\/b2r2%25281%2529.png","type":"","width":"","height":""}],"author":"R K","twitter_card":"summary_large_image","twitter_image":"https:\/\/1.bp.blogspot.com\/-1n5Vb8kC2LI\/XZ2oDT29YfI\/AAAAAAAAC20\/ba_HUc6g43YxOAJO9Yn-5AkWTN1IKQ91wCLcBGAsYHQ\/s1600\/b2r2%25281%2529.png","twitter_creator":"@CyberEdition","twitter_site":"@CyberEdition","twitter_misc":{"Written by":"R K","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kalilinuxtutorials.com\/b2r2-algorithms-functions-binary-analysis\/#article","isPartOf":{"@id":"https:\/\/kalilinuxtutorials.com\/b2r2-algorithms-functions-binary-analysis\/"},"author":{"name":"R K","@id":"https:\/\/kalilinuxtutorials.com\/#\/schema\/person\/69444b58b9e267a4cf08fceb34b6f6ad"},"headline":"B2R2 : A Collection of Algorithms, Functions And Tools For Binary Analysis","datePublished":"2019-10-10T09:42:54+00:00","mainEntityOfPage":{"@id":"https:\/\/kalilinuxtutorials.com\/b2r2-algorithms-functions-binary-analysis\/"},"wordCount":838,"publisher":{"@id":"https:\/\/kalilinuxtutorials.com\/#organization"},"image":{"@id":"https:\/\/kalilinuxtutorials.com\/b2r2-algorithms-functions-binary-analysis\/#primaryimage"},"thumbnailUrl":"https:\/\/1.bp.blogspot.com\/-1n5Vb8kC2LI\/XZ2oDT29YfI\/AAAAAAAAC20\/ba_HUc6g43YxOAJO9Yn-5AkWTN1IKQ91wCLcBGAsYHQ\/s1600\/b2r2%25281%2529.png","keywords":["B2R2","Binary Analysis"],"articleSection":["Kali Linux"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/kalilinuxtutorials.com\/b2r2-algorithms-functions-binary-analysis\/","url":"https:\/\/kalilinuxtutorials.com\/b2r2-algorithms-functions-binary-analysis\/","name":"B2R2 : A Collection of Algorithms, Functions And Tools For Binary Analysis","isPartOf":{"@id":"https:\/\/kalilinuxtutorials.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kalilinuxtutorials.com\/b2r2-algorithms-functions-binary-analysis\/#primaryimage"},"image":{"@id":"https:\/\/kalilinuxtutorials.com\/b2r2-algorithms-functions-binary-analysis\/#primaryimage"},"thumbnailUrl":"https:\/\/1.bp.blogspot.com\/-1n5Vb8kC2LI\/XZ2oDT29YfI\/AAAAAAAAC20\/ba_HUc6g43YxOAJO9Yn-5AkWTN1IKQ91wCLcBGAsYHQ\/s1600\/b2r2%25281%2529.png","datePublished":"2019-10-10T09:42:54+00:00","description":"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).","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kalilinuxtutorials.com\/b2r2-algorithms-functions-binary-analysis\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/kalilinuxtutorials.com\/b2r2-algorithms-functions-binary-analysis\/#primaryimage","url":"https:\/\/1.bp.blogspot.com\/-1n5Vb8kC2LI\/XZ2oDT29YfI\/AAAAAAAAC20\/ba_HUc6g43YxOAJO9Yn-5AkWTN1IKQ91wCLcBGAsYHQ\/s1600\/b2r2%25281%2529.png","contentUrl":"https:\/\/1.bp.blogspot.com\/-1n5Vb8kC2LI\/XZ2oDT29YfI\/AAAAAAAAC20\/ba_HUc6g43YxOAJO9Yn-5AkWTN1IKQ91wCLcBGAsYHQ\/s1600\/b2r2%25281%2529.png"},{"@type":"WebSite","@id":"https:\/\/kalilinuxtutorials.com\/#website","url":"https:\/\/kalilinuxtutorials.com\/","name":"Kali Linux Tutorials","description":"Kali Linux Tutorials","publisher":{"@id":"https:\/\/kalilinuxtutorials.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kalilinuxtutorials.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/kalilinuxtutorials.com\/#organization","name":"Kali Linux Tutorials","url":"https:\/\/kalilinuxtutorials.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/kalilinuxtutorials.com\/#\/schema\/logo\/image\/","url":"https:\/\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/07\/Kali.png","contentUrl":"https:\/\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/07\/Kali.png","width":272,"height":90,"caption":"Kali Linux Tutorials"},"image":{"@id":"https:\/\/kalilinuxtutorials.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/CyberEdition","https:\/\/www.threads.com\/@cybersecurityedition","https:\/\/www.linkedin.com\/company\/cyberedition","https:\/\/www.instagram.com\/cybersecurityedition\/"]},{"@type":"Person","@id":"https:\/\/kalilinuxtutorials.com\/#\/schema\/person\/69444b58b9e267a4cf08fceb34b6f6ad","name":"R K","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/kalilinuxtutorials.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d3937c9687f2da11bc0a716404ff91779fe19ca115208dbf66167ad353aca5aa?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d3937c9687f2da11bc0a716404ff91779fe19ca115208dbf66167ad353aca5aa?s=96&d=mm&r=g","caption":"R K"},"url":"https:\/\/kalilinuxtutorials.com\/author\/ranjith\/"}]}},"jetpack_featured_media_url":"https:\/\/1.bp.blogspot.com\/-1n5Vb8kC2LI\/XZ2oDT29YfI\/AAAAAAAAC20\/ba_HUc6g43YxOAJO9Yn-5AkWTN1IKQ91wCLcBGAsYHQ\/s1600\/b2r2%25281%2529.png","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":1769,"url":"https:\/\/kalilinuxtutorials.com\/ctf-scripts-security-tools\/","url_meta":{"origin":6825,"position":0},"title":"CTF &#8211; Some Setup Scripts For Security Research Tools","author":"R K","date":"June 28, 2018","format":false,"excerpt":"CTF is a collection of setup scripts to create an install of various security research tools. Of course, this isn't a hard problem, but it's really nice to have them in one place that's easily deployable to new machines and so forth. The install-scripts for these tools are checked regularly.\u2026","rel":"","context":"In &quot;Kali Linux&quot;","block_context":{"text":"Kali Linux","link":"https:\/\/kalilinuxtutorials.com\/category\/kali\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2018\/04\/button_download.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":36162,"url":"https:\/\/kalilinuxtutorials.com\/binary-ninja-ollama-plus\/","url_meta":{"origin":6825,"position":1},"title":"Binary Ninja Ollama Plus : Elevating Code Analysis With Advanced Features For Security Professionals","author":"Varshini","date":"February 6, 2025","format":false,"excerpt":"The Binary Ninja Ollama Enhanced plugin is an advanced tool tailored for developers and reverse engineers, offering enhanced functionality for binary analysis. Originally developed by Austin Haggard, this version has been significantly upgraded by Dani Martinez (dan1t0) to improve compatibility and add new analysis features. Key Enhancements Improved Compatibility: The\u2026","rel":"","context":"In &quot;Hacking Tools&quot;","block_context":{"text":"Hacking Tools","link":"https:\/\/kalilinuxtutorials.com\/category\/hacking-tools\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/02\/binaryninja-ollama-plus.webp?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/02\/binaryninja-ollama-plus.webp?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/02\/binaryninja-ollama-plus.webp?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/02\/binaryninja-ollama-plus.webp?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/02\/binaryninja-ollama-plus.webp?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2025\/02\/binaryninja-ollama-plus.webp?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":6871,"url":"https:\/\/kalilinuxtutorials.com\/ispy-eternalblue-bluekeep-scanner-exploit\/","url_meta":{"origin":6825,"position":2},"title":"ISPY : Eternalblue\/Bluekeep Scanner &#038; Exploit","author":"R K","date":"October 13, 2019","format":false,"excerpt":"ISPY V1.0 is a eternalblue(ms17-010)\/bluekeep(CVE-2019-0708) scanner and exploit ( Metasploit automation ) . How to install? git clone https:\/\/github.com\/Cyb0r9\/ispy.git cd ispy chmod +x setup.sh .\/setup.sh Also Read - B2R2 : A Collection of Algorithms, Functions And Tools For Binary Analysis Screenshots Tested On Parrot OSKali linux Demo https:\/\/www.youtube.com\/watch?v=WCa5N5_zKgw&list=UUv9HdZbTOo0iBG5X2qaqmqg Disclaimer Usage\u2026","rel":"","context":"In &quot;Kali Linux&quot;","block_context":{"text":"Kali Linux","link":"https:\/\/kalilinuxtutorials.com\/category\/kali\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/img.youtube.com\/vi\/UUv9HdZbTOo0iBG5X2qaqmqg\/0.jpg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":9405,"url":"https:\/\/kalilinuxtutorials.com\/abd-advanced-binary-deobfuscation\/","url_meta":{"origin":6825,"position":3},"title":"ABD : Course Materials For Advanced Binary Deobfuscation","author":"R K","date":"February 29, 2020","format":false,"excerpt":"ABD is the course materials for Advanced Binary Deobfuscation by NTT Secure Platform Laboratories Advanced Binary Deobfuscation This repository contains the course materials of Advanced Binary Deobfuscation at the\u00a0Global Cybersecurity Camp (GCC) Tokyo\u00a0in 2020. Course Abstract Reverse engineering is not easy, especially if a binary code is obfuscated. Once obfuscation\u2026","rel":"","context":"In &quot;Kali Linux&quot;","block_context":{"text":"Kali Linux","link":"https:\/\/kalilinuxtutorials.com\/category\/kali\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":28340,"url":"https:\/\/kalilinuxtutorials.com\/fuzzable\/","url_meta":{"origin":6825,"position":4},"title":"Fuzzable : Framework for Automating Fuzzable Target Discovery with Static Analysis","author":"R K","date":"February 14, 2023","format":false,"excerpt":"Fuzzable is a Framework for Automating Fuzzable Target Discovery with Static Analysis. Vulnerability researchers conducting security assessments on software will often harness the capabilities of coverage-guided fuzzing through powerful tools like AFL++ and libFuzzer. This is important as it automates the bughunting process and reveals exploitable conditions in targets quickly.\u2026","rel":"","context":"In &quot;Kali Linux&quot;","block_context":{"text":"Kali Linux","link":"https:\/\/kalilinuxtutorials.com\/category\/kali\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEivwVcs4DTN4g2bNhYNANwqO_an5RHaRBH0_8N914V5YZJgSCtHlcJd9-3oFmGLPRSaO53X0yH1IvTUQLTc_QbcGogUVlqmfy8r6W1IEdlYZ--kLwlXxz1KJoJuZo7FHVK8HNwrDe_1800GjJc4vnjKBuvfDBwJi-A_JHn8RJqDBsjd1hS-KEcA9JWQ\/s16000\/cli.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEivwVcs4DTN4g2bNhYNANwqO_an5RHaRBH0_8N914V5YZJgSCtHlcJd9-3oFmGLPRSaO53X0yH1IvTUQLTc_QbcGogUVlqmfy8r6W1IEdlYZ--kLwlXxz1KJoJuZo7FHVK8HNwrDe_1800GjJc4vnjKBuvfDBwJi-A_JHn8RJqDBsjd1hS-KEcA9JWQ\/s16000\/cli.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEivwVcs4DTN4g2bNhYNANwqO_an5RHaRBH0_8N914V5YZJgSCtHlcJd9-3oFmGLPRSaO53X0yH1IvTUQLTc_QbcGogUVlqmfy8r6W1IEdlYZ--kLwlXxz1KJoJuZo7FHVK8HNwrDe_1800GjJc4vnjKBuvfDBwJi-A_JHn8RJqDBsjd1hS-KEcA9JWQ\/s16000\/cli.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEivwVcs4DTN4g2bNhYNANwqO_an5RHaRBH0_8N914V5YZJgSCtHlcJd9-3oFmGLPRSaO53X0yH1IvTUQLTc_QbcGogUVlqmfy8r6W1IEdlYZ--kLwlXxz1KJoJuZo7FHVK8HNwrDe_1800GjJc4vnjKBuvfDBwJi-A_JHn8RJqDBsjd1hS-KEcA9JWQ\/s16000\/cli.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":3423,"url":"https:\/\/kalilinuxtutorials.com\/triton-dynamic-binary-analysis\/","url_meta":{"origin":6825,"position":5},"title":"Triton &#8211; Dynamic Binary Analysis (DBA) Framework","author":"R K","date":"December 8, 2018","format":false,"excerpt":"Triton is a Dynamic Binary Analysis (DBA) framework. It provides internal components like a Dynamic Symbolic Execution (DSE) engine, a Taint Engine, AST representations of the x86 and the x86-64 instructions set semantics, SMT simplification passes, an SMT Solver Interface and, the last but not least, Python bindings. Based on\u2026","rel":"","context":"In &quot;Kali Linux&quot;","block_context":{"text":"Kali Linux","link":"https:\/\/kalilinuxtutorials.com\/category\/kali\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/kalilinuxtutorials.com\/wp-content\/uploads\/2018\/12\/Triton.jpg?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]}],"_links":{"self":[{"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/posts\/6825","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/comments?post=6825"}],"version-history":[{"count":0,"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/posts\/6825\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/media\/15849"}],"wp:attachment":[{"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/media?parent=6825"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/categories?post=6825"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kalilinuxtutorials.com\/wp-json\/wp\/v2\/tags?post=6825"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}