Binwalk Anwenden: Unterschied zwischen den Versionen
| Zeile 1: | Zeile 1: | ||
| + | =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= | =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= | =Suche nach einem String= | ||
| − | *binwalk -R "\ | + | 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= | =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= | =Entpacke Binary= | ||
| + | Extrahiert alle erkannten Bestandteile in ein Unterverzeichnis. | ||
*binwalk -e firmware.bin | *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= | =Links= | ||
*https://github.com/ReFirmLabs/binwalk/wiki/Usage | *https://github.com/ReFirmLabs/binwalk/wiki/Usage | ||
Version vom 21. August 2026, 04:29 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
- 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)