Binwalk Anwenden
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
- dd if=/dev/urandom of=header.bin bs=1k count=4
- tar czf teil.tar.gz /etc/hosts /etc/passwd
- cp /usr/share/icons/Adwaita/48x48/legacy/folder.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 -A /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)