Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
B2R2 — B2R2 ist ein vollständig verwaltetes Binäranalyse-Framework, geschrieben in F#. Es bietet eine umfangreiche Sammlung von Algorithmen, Funktionen und Werkzeugen für Reverse Engineering, Programmanalyse und Inspektion auf Binärebene. | Kitploit
Tools/GitHubGitHub/b2r2-org/b2r2
Statische AnalyseDynamische Analyse (Sandboxing)Reverse EngineeringFuzzingBinäranalysePapers & ForschungLernen & Bildung
GitHubb2r2-org/b2r2

B2R2

B2R2 ist ein vollständig verwaltetes Binäranalyse-Framework, geschrieben in F#. Es bietet eine umfangreiche Sammlung von Algorithmen, Funktionen und Werkzeugen für Reverse Engineering, Programmanalyse und Inspektion auf Binärebene.

Repository anzeigen
45967vor 7h 21mVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Webseite

alt text

B2R2 B2R2

B2R2

B2R2 ist ein vollständig verwaltetes Binary-Analyse-Framework, geschrieben in F#. Es bietet eine umfangreiche Sammlung von Algorithmen, Funktionen und Werkzeugen für Reverse Engineering, Programm-Analyse und binäre Inspektion.

Der Name B2R2 ist von R2-D2 inspiriert, dem ikonischen Roboter aus Star Wars. Ursprünglich als B2-R2 benannt, nahm das Projekt später die bindestrichfreie Form B2R2 an, da .NET-Bezeichner und Namespaces keine Bindestriche erlauben. Der Name spiegelt den Zweck des Projekts wider: "B" und "2" deuten auf binäre und Zwei-Zustands-Berechnung hin, während "R" für Reversing steht. Kurz gesagt, B2R2 ist für binäres Reversing entwickelt.

Übersicht

  1. B2R2 ist analysefreundlich: Es ist in F# geschrieben, einer Sprache, die dank Funktionen wie Pattern Matching, algebraischen Datentypen und ausdrucksstarken funktionalen Abstraktionen besonders gut für den Bau von Programmanalysatoren geeignet ist.

  2. B2R2 ist schnell: Seine zentrale Binary-Analyse-Engine ist auf Effizienz ausgelegt und in einem funktionalersten Stil geschrieben. Dadurch eignet sie sich hervorragend für reinen Parallelismus bei gängigen Analyseaufgaben wie Instruction Lifting und CFG-Wiederherstellung.

  3. B2R2 ist einfach zu bedienen: Als vollständig verwaltete Bibliothek vermeidet es komplizierte native Abhängigkeiten. Installiere das .NET SDK, und schon kann es losgehen. Native IntelliSense-Unterstützung macht die APIs zudem leichter erkundbar.

  4. B2R2 ist betriebssystemunabhängig: Es funktioniert unter Linux, macOS und Windows sowie auf jeder anderen von .NET unterstützten Plattform.

  5. B2R2 ist interoperabel: Es ist nicht an eine einzelne Programmiersprache gebunden. Grundsätzlich können die B2R2-APIs aus jeder CLI-unterstützten Sprache verwendet werden.

Funktionen

B2R2 unterstützt Befehlsparsing, binäre Disassemblierung, Assemblierung, Kontrollfluss-Wiederherstellung und andere grundlegende Bausteine für die Binary-Analyse. Es enthält auch mehrere benutzerorientierte Befehlszeilenwerkzeuge, die mit readelf und objdump vergleichbar sind, bleibt dabei aber plattformunabhängig. B2R2 unterstützt derzeit vier Binärdateiformate: ELF, PE, Mach-O und WebAssembly.

Die folgende Tabelle fasst die derzeit von B2R2 unterstützten Funktionen zusammen. Einige Bereiche befinden sich noch in der Entwicklung, und Beiträge sind willkommen. Bevor du einen Pull-Request eröffnest, lies bitte unsere Beitragsrichtlinie.

Abhängigkeiten

B2R2 hält seinen Abhängigkeits-Fußabdruck bewusst klein, um Builds einfach zu halten und den Kern auf effiziente Algorithmen und Datenstrukturen für die Binary-Analyse zu fokussieren. Die Kernbibliothek hat keine externen Abhängigkeiten, und die meisten externen Bibliotheken sind optional und werden nur von bestimmten Komponenten oder Werkzeugen verwendet. Nachfolgend die Liste der externen Bibliotheken, die vom Projekt verwendet werden.

  • System.IO.Hashing
  • FSharp.Compiler.Service
  • FParsec
  • BenchmarkDotNet
  • Avalonia.FuncUI

API-Dokumentation

Unsere Dokumentation wird mit fsdocs erstellt und ist verfügbar unter https://b2r2.org/B2R2/.

Beispiel

Lass uns versuchen, die B2R2-APIs zu verwenden.

  1. Erstelle zunächst ein leeres Verzeichnis namens DIRNAME:

    root@kitploit:~
    mkdir DIRNAME
    cd DIRNAME
    
  2. Erstelle dann ein leeres Konsolenprojekt mit dem dotnet-Befehlszeilenwerkzeug:

    root@kitploit:~
    $ dotnet new console -lang F#
    
  3. Füge das NuGet-Paket B2R2.FrontEnd.API zum Projekt hinzu:

    root@kitploit:~
    $ dotnet add package B2R2.FrontEnd.API
    
  4. Ändere die Datei Program.fs mit deinem Lieblingseditor wie folgt:

    root@kitploit:~
    open B2R2
    open B2R2.FrontEnd
    
    [<EntryPoint>]
    let main argv =
      let isa = ISA "amd64"
      let bytes = [| 0x65uy; 0xffuy; 0x15uy; 0x10uy; 0x00uy; 0x00uy; 0x00uy |]
      let hdl = BinHandle(bytes, isa)
      let lifter = hdl.NewLiftingUnit()
      let ins = lifter.ParseInstruction 0UL // parse the instruction at offset 0
      lifter.LiftInstruction ins |> printfn "%A"
      0
    
  5. Führe es durch Eingabe von dotnet run aus. Du solltest angehobene IR-Anweisungen in deiner Konsole sehen. Das war's! Du hast gerade mit nur wenigen Zeilen F#-Code eine Intel-Anweisung geliftet.

Build

Das Bauen von B2R2 ist unkompliziert. Installiere das .NET 10 SDK oder höher, und du kannst direkt aus dem Quellverzeichnis bauen.

  • Um B2R2 im Release-Modus zu bauen, führe dotnet build -c Release aus.

  • Um B2R2 im Debug-Modus zu bauen, führe dotnet build aus.

Weitere Informationen zur Einrichtung einer F#-Entwicklungsumgebung findest du auf der offiziellen F#-Website: http://fsharp.org/.

Mitwirkende

B2R2 wurde von Mitgliedern des SoftSec Lab an der KAIST in Zusammenarbeit mit dem Cyber Security Research Center (CSRC) an der KAIST entwickelt. Siehe AUTHORS.md für die vollständige Liste der Mitwirkenden.

Zitieren

Wenn du B2R2 in deiner Forschung verwendest, erwäge bitte, unser Paper zu zitieren:

root@kitploit:~
@INPROCEEDINGS{jung:bar:2019,
  author = {Minkyu Jung and Soomin Kim and HyungSeok Han and Jaeseung Choi and Sang Kil Cha},
  title = {{B2R2}: Building an Efficient Front-End for Binary Analysis},
  booktitle = {Proceedings of the NDSS Workshop on Binary Analysis Research},
  year = 2019
}

Tutorial

Es gibt ein Online-Tutorial für B2R2, das die Grundlagen der Verwendung von B2R2 abdeckt und praktische Beispiele bietet. Schau es dir unter folgendem Link an: https://b2r2.org/tutorial-icst2026/.

Veröffentlichungen

Nachfolgend sind Paper aufgeführt, die B2R2 verwenden oder darauf aufbauen. Wenn deine Arbeit aufgenommen werden soll, erstelle bitte einen Pull-Request.

  • EVMpress: Precise Type Inference for Next-Generation EVM Decompilation, CBT 2025 (PDF)
  • Towards Sound Reassembly of Modern x86-64 Binaries, ASPLOS 2025 (PDF)
  • PoE: A Domain-Specific Language for Exploitation, SVCC 2024 (PDF)
  • FunProbe: Probing Functions from Binary Code through Probabilistic Analysis, FSE 2023 (PDF)
  • How'd Security Benefit Reverse Engineers? The Implication of Intel CET on Function Identification, DSN 2022 (PDF)
  • Smartian: Enhancing Smart Contract Fuzzing with Static and Dynamic Data-Flow Analyses, ASE 2021 (PDF)
  • NTFuzz: Enabling Type-Aware Kernel Fuzzing on Windows with Static Binary Analysis, Oakland 2021 (PDF)
Tool herunterladen
CPUDokumentationBefehlsparsingDisassemblierungLiftingCFG-WiederherstellungAssemblierung
x86:full_moon::full_moon::full_moon::full_moon::full_moon::full_moon:
x86-64:full_moon::full_moon::full_moon::full_moon::full_moon::full_moon:
ARMv7:full_moon::full_moon::full_moon::full_moon::first_quarter_moon::new_moon:
ARMv8 (AArch64):full_moon::full_moon::full_moon::full_moon::first_quarter_moon::new_moon:
MIPS32:full_moon::full_moon::full_moon::full_moon::first_quarter_moon::new_moon:
MIPS64:full_moon::full_moon::full_moon::full_moon::first_quarter_moon::new_moon:
EVM:full_moon::full_moon::full_moon::full_moon::full_moon::new_moon:
TMS320C6000:full_moon::full_moon::full_moon::new_moon::first_quarter_moon::new_moon:
AVR:full_moon::full_moon::full_moon::full_moon::first_quarter_moon::new_moon:
PA-RISC:full_moon::full_moon::full_moon::new_moon::first_quarter_moon::new_moon:
PPC32:full_moon::full_moon::full_moon::full_moon::first_quarter_moon::new_moon:
SPARC:full_moon::full_moon::full_moon::full_moon::first_quarter_moon::new_moon:
SH4:full_moon::full_moon::full_moon::new_moon::first_quarter_moon::new_moon:
RISC-V:full_moon::full_moon::full_moon::full_moon::first_quarter_moon::new_moon:
S390:full_moon::full_moon::full_moon::new_moon::first_quarter_moon::new_moon: