Binwalk Anwenden: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
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
 +
*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=
 
=Signature=
Dies führt eine Signaturanalyse der angegebenen Dateien durch; Wenn keine anderen Analyseoptionen angegeben sind, ist dies die Standardeinstellung.
+
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.
  
Verwenden Sie diese Option, wenn Sie die Signaturanalyse mit zusätzlichen Analysatoren wie --entropy kombinieren möchten:
 
*binwalk --signature
 
 
=Suche nach einem String=
 
=Suche nach einem String=
*binwalk -R "\x00\x01\x02\x02\x04" firmware.bin
+
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.
  
=Suchen nach Opcodes(Nummer eines Maschinenbefehls)=
+
=Reale Beispiele auf dem System=
Dadurch wird binwalk angewiesen, die angegebene(n) Datei(en) nach ausführbaren Opcodes zu durchsuchen, die bei einer Vielzahl von CPU-Architekturen üblich sind. Beachten Sie, dass einige Opcode-Signaturen kurz sind und daher anfällig für falsch positive Ergebnisse sind.
+
Ohne eigene Firmware lassen sich auch vorhandene Dateien analysieren:
*binwalk -A firmware.bin
+
*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

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