
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. Originariamente chiamato B2-R2, il progetto ha poi adottato la forma senza trattino B2R2 perché gli identificatori e i namespace .NET non consentono i trattini. Il nome riflette lo scopo del progetto: "B" e "2" suggeriscono binario e computazione a due stati, mentre "R" sta per reversing. In breve, B2R2 è costruito per il reversing binario.
B2R2 è adatto all'analisi: è scritto in F#, un linguaggio ben adatto per costruire analizzatori di programmi grazie a funzionalità come il pattern matching, i tipi di dati algebrici e le espressioni di astrazioni funzionali.
B2R2 è veloce: il suo motore principale di analisi binaria è progettato per l'efficienza e scritto in uno stile funzionale-first. Questo lo rende naturalmente adatto al parallelismo puro in attività di analisi comuni come il lifting delle istruzioni e il recupero del CFG.
B2R2 è facile da usare: essendo una libreria completamente gestita, evita la complicata configurazione delle dipendenze native. Installa .NET SDK e sei pronto per iniziare. Il supporto nativo a 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 singolo linguaggio di programmazione. In linea di principio, le API di B2R2 possono essere utilizzate da qualsiasi linguaggio supportato da CLI.
B2R2 supporta il parsing delle istruzioni, il disassemblaggio binario, l'assemblaggio, il recupero del flusso di controllo e altri blocchi costitutivi fondamentali per l'analisi binaria. Include anche diversi strumenti a riga di comando rivolti all'utente, paragonabili a readelf e objdump, pur rimanendo indipendente dalla piattaforma. B2R2 supporta attualmente quattro formati di file binari: 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 linea guida per i contributi.