Binwalk Anwenden: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 2: Zeile 2:
 
binwalk braucht eine Datei mit mehreren eingebetteten Formaten. Eine solche "Firmware" bauen wir uns selbst — so ist bekannt, was drinsteckt, und das Ergebnis ist vorhersagbar.
 
binwalk braucht eine Datei mit mehreren eingebetteten Formaten. Eine solche "Firmware" bauen wir uns selbst — so ist bekannt, was drinsteckt, und das Ergebnis ist vorhersagbar.
 
*cd /tmp
 
*cd /tmp
 +
*wget https://de.wikipedia.org/wiki/Datei:Tux.png
 
*dd if=/dev/urandom of=header.bin bs=1k count=4
 
*dd if=/dev/urandom of=header.bin bs=1k count=4
 
*tar czf teil.tar.gz /etc/hosts /etc/passwd
 
*tar czf teil.tar.gz /etc/hosts /etc/passwd
*cp /usr/share/icons/Adwaita/48x48/legacy/folder.png bild.png
+
*cp Datei:Tux.png bild.png
 
*cat header.bin bild.png teil.tar.gz > firmware.bin
 
*cat header.bin bild.png teil.tar.gz > firmware.bin
  
Zeile 25: Zeile 26:
 
=Suchen nach Opcodes=
 
=Suchen nach Opcodes=
 
Durchsucht die Datei nach ausführbaren Opcodes gängiger CPU-Architekturen. Einige Opcode-Signaturen sind kurz und damit anfällig für Fehltreffer.
 
Durchsucht die Datei nach ausführbaren Opcodes gängiger CPU-Architekturen. Einige Opcode-Signaturen sind kurz und damit anfällig für Fehltreffer.
*binwalk -A /bin/ls
+
*binwalk /bin/ls
  
 
=Deaktiviert den "intelligenten" Signaturabgleich=
 
=Deaktiviert den "intelligenten" Signaturabgleich=

Aktuelle Version vom 21. August 2026, 06:23 Uhr

Testobjekt bauen

binwalk braucht eine Datei mit mehreren eingebetteten Formaten. Eine solche "Firmware" bauen wir uns selbst — so ist bekannt, was drinsteckt, und das Ergebnis ist vorhersagbar.

  • cd /tmp
  • wget https://de.wikipedia.org/wiki/Datei:Tux.png
  • dd if=/dev/urandom of=header.bin bs=1k count=4
  • tar czf teil.tar.gz /etc/hosts /etc/passwd
  • cp Datei:Tux.png bild.png
  • cat header.bin bild.png teil.tar.gz > firmware.bin

Signature

Führt eine Signaturanalyse der angegebenen Datei durch. Ist keine andere Analyseoption angegeben, ist dies die Standardeinstellung. Explizit angeben, wenn man die Signaturanalyse mit weiteren Analysatoren wie --entropy kombinieren möchte.

  • binwalk firmware.bin
  • binwalk --signature --entropy firmware.bin

In der Ausgabe erscheinen Offset, Hexadezimal-Offset und Beschreibung — hier PNG-Bild und gzip-Archiv an den Positionen, an denen wir sie angehängt haben.

Entropie

Zeigt den Entropieverlauf über die Datei. Hohe Entropie bedeutet komprimierte oder verschlüsselte Bereiche, niedrige Entropie Klartext oder Padding.

  • binwalk -E firmware.bin

Der Zufallsdaten-Header und das gzip-Archiv liegen auf hohem Niveau, dazwischen sind die Übergänge deutlich sichtbar.

Suche nach einem String

Sucht nach einer beliebigen Byte-Folge statt nach bekannten Signaturen.

  • binwalk -R "\x1f\x8b\x08" firmware.bin

Die Folge 1f 8b 08 ist der gzip-Magic-Header — der Treffer liegt am selben Offset wie in der Signaturanalyse.

Suchen nach Opcodes

Durchsucht die Datei nach ausführbaren Opcodes gängiger CPU-Architekturen. Einige Opcode-Signaturen sind kurz und damit anfällig für Fehltreffer.

  • binwalk /bin/ls

Deaktiviert den "intelligenten" Signaturabgleich

Nützlich, wenn Schlüsselwörter der intelligenten Signaturen (z.B. Jump-to-Offset) in falsch positiven Treffern dazu führen, dass andere gültige Signaturen übersehen werden.

  • binwalk -b firmware.bin

Entpacke Binary

Extrahiert alle erkannten Bestandteile in ein Unterverzeichnis.

  • binwalk -e firmware.bin
  • ls -l _firmware.bin.extracted/

Das PNG und das entpackte tar-Archiv liegen dort wieder als eigenständige Dateien vor.

Reale Beispiele auf dem System

Ohne eigene Firmware lassen sich auch vorhandene Dateien analysieren:

  • binwalk /boot/initrd.img-$(uname -r)
  • binwalk /boot/vmlinuz-$(uname -r)

Links