Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
B2R2 — B2R2 es un framework de análisis binario completamente gestionado escrito en F#. Proporciona un rico conjunto de algoritmos, funciones y herramientas para ingeniería inversa, análisis de programas e inspección a nivel binario. | Kitploit
Herramientas/GitHubGitHub/b2r2-org/b2r2
Análisis EstáticoAnálisis Dinámico (Sandboxing)Ingeniería InversaFuzzingAnálisis de BinariosPapers e InvestigaciónAprendizaje y Educación
GitHubb2r2-org/b2r2

B2R2

B2R2 es un framework de análisis binario completamente gestionado escrito en F#. Proporciona un rico conjunto de algoritmos, funciones y herramientas para ingeniería inversa, análisis de programas e inspección a nivel binario.

Ver Repositorio
45967hace 13h 18mRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Sitio web

alt text

B2R2 B2R2

B2R2

B2R2 es un marco de análisis binario completamente administrado escrito en F#. Proporciona un amplio conjunto de algoritmos, funciones y herramientas para ingeniería inversa, análisis de programas e inspección a nivel binario.

El nombre B2R2 se inspira en R2-D2, el icónico robot de Star Wars. Originalmente nombrado B2-R2, el proyecto adoptó posteriormente la forma sin guion B2R2 porque los identificadores y espacios de nombres de .NET no permiten guiones. El nombre refleja el propósito del proyecto: "B" y "2" sugieren cómputo binario y de dos estados, mientras que "R" significa reversing. En resumen, B2R2 está construido para reversing binario.

Resumen

  1. B2R2 es amigable para el análisis: está escrito en F#, un lenguaje muy adecuado para construir analizadores de programas gracias a características como el pattern matching, los tipos de datos algebraicos y las expresivas abstracciones funcionales.

  2. B2R2 es rápido: su motor central de análisis binario está diseñado para la eficiencia y está escrito en un estilo funcional primero. Esto lo convierte en un ajuste natural para el paralelismo puro en tareas comunes de análisis, como el levantamiento de instrucciones y la recuperación de CFG.

  3. B2R2 es fácil de usar: como biblioteca completamente administrada, evita la complicada configuración de dependencias nativas. Instala el .NET SDK y estarás listo para empezar. El soporte nativo de IntelliSense también facilita la exploración de las APIs.

  4. B2R2 es independiente del sistema operativo: funciona en Linux, macOS y Windows, así como en cualquier otra plataforma compatible con .NET.

  5. B2R2 es interoperable: no está atado a un solo lenguaje de programación. En principio, las APIs de B2R2 se pueden usar desde cualquier lenguaje compatible con CLI.

Funcionalidades

B2R2 admite análisis sintáctico de instrucciones, desensamblado binario, ensamblado, recuperación de flujo de control y otros bloques fundamentales para el análisis binario. También incluye varias herramientas de línea de comandos orientadas al usuario, comparables a readelf y objdump, mientras permanece independiente de la plataforma. B2R2 actualmente soporta cuatro formatos de archivos binarios: ELF, PE, Mach-O y WebAssembly.

La siguiente tabla resume las funcionalidades actualmente soportadas por B2R2. Algunas áreas aún están en progreso y las contribuciones son bienvenidas. Antes de abrir un pull request, asegúrate de leer nuestra guía de contribución.

Dependencias

B2R2 mantiene su huella de dependencias intencionadamente pequeña para que las compilaciones sean simples y para mantener el núcleo centrado en algoritmos y estructuras de datos eficientes para el análisis binario. La biblioteca principal no tiene dependencias externas, y la mayoría de las bibliotecas externas son opcionales y se utilizan solo en componentes o herramientas específicas. A continuación se muestra la lista de bibliotecas externas utilizadas por el proyecto.

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

Documentación de la API

Nuestra documentación se genera con fsdocs y está disponible en https://b2r2.org/B2R2/.

Ejemplo

Probemos a usar las APIs de B2R2.

  1. Primero, crea un directorio vacío llamado DIRNAME:

    root@kitploit:~
    mkdir DIRNAME
    cd DIRNAME
    
  2. Luego, crea un proyecto de consola vacío con la herramienta de línea de comandos dotnet:

    root@kitploit:~
    $ dotnet new console -lang F#
    
  3. Añade el paquete NuGet B2R2.FrontEnd.API al proyecto:

    root@kitploit:~
    $ dotnet add package B2R2.FrontEnd.API
    
  4. Modifica el archivo Program.fs con tu editor favorito de la siguiente manera:

    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. Ejecútalo escribiendo dotnet run. Deberías ver declaraciones IR elevadas en tu consola. ¡Eso es todo! Acabas de elevar una instrucción Intel con solo unas pocas líneas de código F#.

Compilación

Compilar B2R2 es sencillo. Instala el SDK de .NET 10 o posterior y estarás listo para compilar desde la raíz del código fuente.

  • Para compilar B2R2 en modo de lanzamiento, ejecuta dotnet build -c Release.

  • Para compilar B2R2 en modo de depuración, ejecuta dotnet build.

Para más información sobre cómo configurar un entorno de desarrollo F#, visita el sitio web oficial de F#: http://fsharp.org/.

Créditos

B2R2 fue desarrollado por miembros del SoftSec Lab de KAIST en colaboración con el Centro de Investigación en Ciberseguridad (CSRC) de KAIST. Consulta AUTHORS.md para ver la lista completa de contribuyentes.

Citación

Si usas B2R2 en tu investigación, considera citar nuestro artículo:

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

Hay un tutorial en línea disponible para B2R2, que cubre los conceptos básicos del uso de B2R2 y proporciona ejemplos prácticos. Échale un vistazo en el siguiente enlace: https://b2r2.org/tutorial-icst2026/.

Publicaciones

A continuación se presentan artículos que utilizan o se basan en B2R2. Si tu trabajo debería ser incluido, por favor abre un 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)
Descargar herramienta
CPUDocumentaciónAnálisis de InstruccionesDesensambladoElevaciónRecuperación de CFGEnsamblado
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: