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
binbloom — Software de análisis de firmware binario en bruto | Kitploit
Herramientas/GitHubGitHub/quarkslab/binbloom
Seguridad de Sistemas EmbebidosIngeniería InversaAnálisis de BinariosAnálisis de Firmware
GitHubquarkslab/binbloom

binbloom

Software de análisis de firmware binario en bruto

Ver Repositorio
58361hace 3 añosRevisado 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

Acerca de

El propósito de este proyecto es analizar un firmware binario crudo y determinar automáticamente algunas de sus características. Esta herramienta es compatible con todas las arquitecturas, ya que básicamente, solo realiza estadísticas simples sobre él.

Características principales:

  • Dirección de carga: binbloom puede analizar un firmware binario crudo y determinar su dirección de carga.
  • Endianness: binbloom puede usar heurísticas para determinar el endianness de un firmware.
  • Base de datos UDS: binbloom puede analizar un firmware binario crudo y verificar si contiene un array con IDs de comandos UDS.

Descargar / Instalar

Primero, clona el repositorio git:

root@kitploit:~
git clone https://github.com/quarkslab/binbloom.git
cd binbloom

Para compilar la última versión (solo linux):

root@kitploit:~
autoreconf -i
./configure
make
sudo make install

Comenzando

Determinar el endianness y la dirección base de un firmware

root@kitploit:~
binbloom firmware.bin

Este comando debería dar una salida como esta:

root@kitploit:~
[i] 32-bit architecture selected.
[i] File read (20480 bytes)
[i] Endianness is LE                                
[i] 6 strings indexed                                    
[i] Found 3 base addresses to test                    
[i] Base address seems to be 0x60000000 (not sure)
 More base addresses to consider (just in case):
  0x005b5000 (0)
  0x0bcd0000 (0)

En esta salida, la tercera línea muestra el endianness adivinado (LE, little-endian) y la sexta línea da la dirección adivinada (0x60000000). Se han identificado 6 cadenas de texto y 3 posibles direcciones base. Si no se especifica la arquitectura, se considera una arquitectura de 32 bits por defecto.

El valor entre paréntesis después de cada dirección candidata es la puntuación correspondiente. Cuanto mayor sea la puntuación, más probable es la dirección.

Determinar el endianness y la dirección base de un firmware de 64 bits

root@kitploit:~
binbloom -a 64 firmware.bin
root@kitploit:~
[i] 64-bit architecture selected.
[i] File read (327680 bytes)
[i] Endianness is LE                                
[i] 717 strings indexed                                  
[i] Found 7535 base addresses to test                 
[i] Base address found: 0x0000000000010000.                          
 More base addresses to consider (just in case):
  0x000000000000e000 (276)
  0x000000000000f000 (242)
  0x0000000000011000 (175)
  0x000000000000d000 (167)
  0x000000000000b000 (121)
  0x0000000000013000 (107)
  0x0000000000012000 (100)
  [...]

La opción -a le indica a binbloom que considere un firmware de 64 bits; la salida anterior muestra una dirección base adivinada de 0x10000.

Forzar el endianness si binbloom no lo determina correctamente

Al tratar con firmwares pequeños (tamaño < 10 Kbytes), la detección de endianness de binbloom puede no ser fiable y dar un resultado falso que lleve a direcciones base inesperadas. En este caso, puedes usar la opción -e para especificar el endianness:

root@kitploit:~
binbloom -e be firmware.bin

Esto produce la siguiente salida:

root@kitploit:~
[i] Selected big-endian architecture.
[i] File read (1048576 bytes)
[i] Endianness is BE
[i] 764 strings indexed                                  
[i] Found 18615 base addresses to test                
[i] Base address seems to be 0x00000000 (not sure).
 More base addresses to consider (just in case):
  0x3f740000 (121043)
  0x7ff48000 (61345)
  0x41140000 (59552)
  [...]

El endianness se fuerza entonces (en este caso big-endian) y binbloom se basa en esta configuración para adivinar la dirección base.

Encontrar la base de datos UDS (para un firmware de ECU)

root@kitploit:~
binbloom -a 32 -e be -b 0x0 firmware.bin
root@kitploit:~
[i] 32-bit architecture selected.
[i] Selected big-endian architecture.
[i] Base address 0x0000000000000000 provided.
[i] 764 strings indexed                                  
Most probable UDS DB is located at @000ee8c8, found 7 different UDS RID
Identified structure:
struct {
	code *p_field_0;
	code *p_field_1;
	uint32_t dw_2;
}

Este análisis se basa en heurísticas, por lo que puede dar falsos positivos. Debes leer la lista de posibles bases de datos UDS encontradas por binbloom y verificar cuál es la correcta, si es que hay alguna. Binbloom proporciona la estructura identificada en su salida, permitiendo a algunos desensambladores analizar la memoria siguiendo la declaración de la estructura.

Opciones avanzadas

Puedes acelerar el proceso de búsqueda de dirección base habilitando el multi-hilo con la opción -t. Por defecto, se usa un solo hilo.

root@kitploit:~
binbloom -t 8 firmware.bin

También se implementa un modo de búsqueda profunda, habilitado con la opción -d, pero aún es experimental. Este modo puede ser útil en ocasiones muy raras, ya que puede encontrar una dirección base válida cuando nada más funciona, pero es un modo más lento que puede tardar algún tiempo en completarse.

Si deseas que la herramienta muestre más información, usa una o más opciones -v.

Acerca de

Autores

  • Guillaume Heilles (@PapaZours)
  • Damien Cauquil (@virtualabs)

Licencia

binbloom se proporciona bajo la licencia Apache 2.0.

Descargar herramienta