
B2R2 è un framework di analisi binaria completamente gestito scritto in F#. Fornisce un ricco insieme di algoritmi, funzioni e strumenti per il reverse engineering, l'analisi dei programmi e l'ispezione a livello binario.

B2R2 è un framework di analisi binaria completamente gestito scritto in F#. Fornisce un ricco insieme di algoritmi, funzioni e strumenti per il reverse engineering, l'analisi dei programmi e l'ispezione a livello binario.
Il nome B2R2 trae ispirazione da R2-D2, l'iconico robot di Star Wars. Inizialmente chiamato B2-R2, il progetto ha poi adottato la forma senza trattino B2R2 poiché gli identificatori e gli spazi dei nomi .NET non consentono trattini. Il nome riflette lo scopo del progetto: "B" e "2" suggeriscono il calcolo binario e a due stati, mentre "R" sta per reversing. In breve, B2R2 è stato creato per il reversing binario.
B2R2 è analysis-friendly: è scritto in F#, un linguaggio particolarmente adatto per costruire analizzatori di programmi grazie a funzionalità come pattern matching, tipi di dato algebrici e astrazioni funzionali espressive.
B2R2 è veloce: il suo motore di analisi binaria principale è progettato per l'efficienza ed è scritto in uno stile functional-first. Questo lo rende una scelta naturale per il parallelismo puro in attività di analisi comuni come il sollevamento delle istruzioni e il recupero dei CFG.
B2R2 è facile da usare: essendo una libreria completamente gestita, evita complicate configurazioni di dipendenze native. Installa il .NET SDK e sei pronto per partire. Il supporto nativo per IntelliSense rende anche le API più facili da esplorare.
B2R2 è indipendente dal sistema operativo: funziona su Linux, macOS e Windows, così come su qualsiasi altra piattaforma supportata da .NET.
B2R2 è interoperabile: non è legato a un unico linguaggio di programmazione. In linea di principio, le API di B2R2 possono essere utilizzate da qualsiasi linguaggio supportato da CLI.
B2R2 supporta l'analisi delle istruzioni, il disassemblaggio binario, l'assemblaggio, il recupero del flusso di controllo e altri elementi costitutivi fondamentali per l'analisi binaria. Include anche diversi strumenti da riga di comando per l'utente, paragonabili a readelf e objdump, pur rimanendo agnostico rispetto alla piattaforma. B2R2 attualmente supporta quattro formati di file binario: ELF, PE, Mach-O e WebAssembly.
La tabella seguente riassume le funzionalità attualmente supportate da B2R2. Alcune aree sono ancora in fase di sviluppo e i contributi sono benvenuti. Prima di aprire una pull request, assicurati di leggere la nostra guida per i contributi.