Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
binbloom — Analysesoftware für rohe Binär-Firmware | Kitploit
Tools/GitHubGitHub/quarkslab/binbloom
Embedded-System-SicherheitReverse EngineeringBinäranalyseFirmware-Analyse
GitHubquarkslab/binbloom

binbloom

Analysesoftware für rohe Binär-Firmware

Repository anzeigenWebseite
583614vor 3 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Über

Der Zweck dieses Projekts ist es, eine rohe binäre Firmware zu analysieren und automatisch einige ihrer Eigenschaften zu bestimmen. Dieses Tool ist mit allen Architekturen kompatibel, da es im Grunde nur einfache Statistiken darüber erstellt.

Hauptfunktionen:

  • Ladeadresse: binbloom kann eine rohe binäre Firmware parsen und ihre Ladeadresse bestimmen.
  • Endianness: binbloom kann Heuristiken verwenden, um die Endianness einer Firmware zu bestimmen.
  • UDS-Datenbank: binbloom kann eine rohe binäre Firmware parsen und prüfen, ob sie ein Array mit UDS-Befehls-IDs enthält.

Herunterladen / Installieren

Klonen Sie zunächst das Git-Repository:

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

Um die neueste Version zu bauen (nur Linux):

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

Erste Schritte

Endianness und Basisadresse einer Firmware bestimmen

root@kitploit:~
binbloom firmware.bin

Dieser Befehl sollte eine Ausgabe wie diese erzeugen:

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)

In dieser Ausgabe zeigt die dritte Zeile die erratene Endianness (LE, Little-Endian) und die sechste Zeile die erratene Adresse (0x60000000). Es wurden 6 Textstrings und 3 mögliche Basisadressen identifiziert. Wenn keine Architektur angegeben ist, wird standardmäßig eine 32-Bit-Architektur angenommen.

Der Wert in Klammern hinter jeder Kandidatenadresse ist die entsprechende Punktzahl. Je höher die Punktzahl, desto wahrscheinlicher ist die Adresse.

Endianness und Basisadresse einer 64-Bit-Firmware bestimmen

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)
  [...]

Die Option -a teilt binbloom mit, eine 64-Bit-Firmware zu berücksichtigen. Die obige Ausgabe zeigt eine erratene Basisadresse von 0x10000.

Endianness erzwingen, wenn binbloom sie nicht richtig erkennt

Bei kleinen Firmwares (Größe < 10 KByte) kann die Endianness-Erkennung von binbloom unzuverlässig sein und ein falsches Ergebnis liefern, das zu unerwarteten Basisadressen führt. In diesem Fall können Sie die Option -e verwenden, um die Endianness anzugeben:

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

Es erzeugt dann die folgende Ausgabe:

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)
  [...]

Die Endianness wird dann erzwungen (in diesem Fall Big-Endian) und binbloom verlässt sich auf diese Konfiguration, um die Basisadresse zu erraten.

UDS-Datenbank finden (für die Firmware eines Steuergeräts)

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;
}

Diese Analyse basiert auf Heuristiken, daher kann sie Fehlalarme liefern. Sie müssen die Liste der potenziellen UDS-Datenbanken lesen, die von binbloom gefunden wurden, und prüfen, welche die richtige ist, falls vorhanden. Binbloom liefert die identifizierte Struktur in seiner Ausgabe, sodass einige Disassembler den Speicher nach der Strukturdeklaration parsen können.

Erweiterte Optionen

Sie können die Suche nach der Basisadresse beschleunigen, indem Sie Multithreading mit der Option -t aktivieren. Standardmäßig wird ein einzelner Thread verwendet.

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

Ein Tiefensuchmodus, aktiviert mit der Option -d, ist ebenfalls implementiert, aber noch experimentell. Dieser Modus kann in sehr seltenen Fällen nützlich sein, da er eine gültige Basisadresse finden kann, wenn nichts anderes funktioniert, aber er ist langsamer und kann einige Zeit in Anspruch nehmen.

Wenn das Tool mehr Informationen anzeigen soll, verwenden Sie eine oder mehrere -v Optionen.

Über

Autoren

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

Lizenz

binbloom wird unter der Apache 2.0 Lizenz bereitgestellt.

Tool herunterladen