Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
B2R2 — B2R2 est un cadre d'analyse binaire entièrement géré écrit en F#. Il fournit un ensemble riche d'algorithmes, de fonctions et d'outils pour la rétro-ingénierie, l'analyse de programmes et l'inspection au niveau binaire. | Kitploit
Outils/GitHubGitHub/b2r2-org/b2r2
Analyse StatiqueAnalyse Dynamique (Sandboxing)Rétro-ingénierieFuzzingAnalyse de BinairesArticles et RechercheApprentissage et Éducation
GitHubb2r2-org/b2r2

B2R2

B2R2 est un cadre d'analyse binaire entièrement géré écrit en F#. Il fournit un ensemble riche d'algorithmes, de fonctions et d'outils pour la rétro-ingénierie, l'analyse de programmes et l'inspection au niveau binaire.

Voir le dépôt
45967il y a 16h 43mVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Site web

alt text

B2R2 B2R2

B2R2

B2R2 est un framework d'analyse binaire entièrement géré écrit en F#. Il fournit un riche ensemble d'algorithmes, de fonctions et d'outils pour le rétro-ingénierie, l'analyse de programmes et l'inspection au niveau binaire.

Le nom B2R2 s'inspire de R2-D2, le robot emblématique de Star Wars. Initialement nommé B2-R2, le projet a ensuite adopté la forme sans tiret B2R2 car les identifiants et espaces de noms .NET n'acceptent pas les traits d'union. Le nom reflète la finalité du projet : « B » et « 2 » évoquent le calcul binaire et à deux états, tandis que « R » signifie reverse engineering. En bref, B2R2 est conçu pour le reverse engineering binaire.

Aperçu

  1. B2R2 est orienté analyse : il est écrit en F#, un langage bien adapté à la construction d'analyseurs de programmes grâce à des fonctionnalités telles que le filtrage par motif, les types de données algébriques et les abstractions fonctionnelles expressives.

  2. B2R2 est rapide : son moteur d'analyse binaire central est conçu pour l'efficacité et écrit dans un style fonctionnel en premier. Cela en fait un choix naturel pour le parallélisme pur dans des tâches d'analyse courantes telles que le levage d'instructions et la reconstruction de graphes de flot de contrôle.

  3. B2R2 est facile à utiliser : en tant que bibliothèque entièrement gérée, il évite les configurations complexes de dépendances natives. Installez le .NET SDK et vous êtes prêt. Le support natif IntelliSense facilite également l'exploration des API.

  4. B2R2 est indépendant du système d'exploitation : il fonctionne sur Linux, macOS et Windows, ainsi que sur toute autre plateforme prise en charge par .NET.

  5. B2R2 est interopérable : il n'est lié à aucun langage de programmation spécifique. En principe, les API de B2R2 peuvent être utilisées depuis tout langage compatible CLI.

Fonctionnalités

B2R2 prend en charge l'analyse syntaxique d'instructions, le désassemblage binaire, l'assemblage, la reconstruction de graphes de flot de contrôle et d'autres briques de base pour l'analyse binaire. Il inclut également plusieurs outils en ligne de commande comparables à readelf et objdump, tout en restant indépendant de la plateforme. B2R2 supporte actuellement quatre formats de fichiers binaires : ELF, PE, Mach-O et WebAssembly.

Le tableau ci-dessous résume les fonctionnalités actuellement prises en charge par B2R2. Certains domaines sont encore en cours de développement, et les contributions sont les bienvenues. Avant de soumettre une pull request, veuillez vous assurer de lire notre guide de contribution.

Dépendances

B2R2 maintient intentionnellement une empreinte de dépendances réduite pour simplifier les compilations et garder le cœur concentré sur des algorithmes et structures de données efficaces pour l'analyse binaire. La bibliothèque centrale n'a aucune dépendance externe, et la plupart des bibliothèques externes sont optionnelles et utilisées uniquement par des composants ou outils spécifiques. Voici la liste des bibliothèques externes utilisées par le projet.

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

Documentation de l'API

Notre documentation est générée avec fsdocs et disponible à l'adresse https://b2r2.org/B2R2/.

Exemple

Essayons d'utiliser les API de B2R2.

  1. Tout d'abord, créez un répertoire vide nommé DIRNAME :

    root@kitploit:~
    mkdir DIRNAME
    cd DIRNAME
    
  2. Ensuite, créez un projet console vide avec l'outil en ligne de commande dotnet :

    root@kitploit:~
    $ dotnet new console -lang F#
    
  3. Ajoutez le package NuGet B2R2.FrontEnd.API au projet :

    root@kitploit:~
    $ dotnet add package B2R2.FrontEnd.API
    
  4. Modifiez le fichier Program.fs avec votre éditeur préféré comme suit :

    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. Exécutez-le en tapant dotnet run. Vous devriez voir des instructions IR levées dans votre console. C'est tout ! Vous venez de lever une instruction Intel avec seulement quelques lignes de code F#.

Construction

Compiler B2R2 est simple. Installez le .NET 10 SDK ou une version ultérieure, et vous êtes prêt à compiler depuis la racine source.

  • Pour compiler B2R2 en mode release, exécutez dotnet build -c Release.

  • Pour compiler B2R2 en mode debug, exécutez dotnet build.

Pour plus d'informations sur la configuration d'un environnement de développement F#, visitez le site officiel de F# : http://fsharp.org/.

Crédits

B2R2 a été développé par des membres du SoftSec Lab à KAIST en collaboration avec le Cyber Security Research Center (CSRC) à KAIST. Consultez AUTHORS.md pour la liste complète des contributeurs.

Citation

Si vous utilisez B2R2 dans vos recherches, veuillez citer notre article :

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
}

Tutoriel

Un tutoriel en ligne est disponible pour B2R2, couvrant les bases de l'utilisation de B2R2 et fournissant des exemples pratiques. Consultez-le au lien suivant : https://b2r2.org/tutorial-icst2026/.

Publications

Voici les articles qui utilisent ou s'appuient sur B2R2. Si votre travail doit être inclus, veuillez ouvrir une 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)
Télécharger l’outil
CPUDocParsing instr.DésassemblageLevageReconst. CFGAssemblage
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: