strings aus den GNU Binutils durchsucht Binärdateien nach zusammenhängenden, druckbaren Zeichenfolgen und gibt sie aus. Fehlermeldungen, Pfade, Versionsstrings, URLs oder versteckte Kennungen bleiben als Text im Binärcode erhalten — strings macht sie sichtbar, ohne dass man die Datei disassemblieren muss.
strings /bin/ls
strings -n 8 firmware.bin
Wichtige Optionen
-n N/--min-length=N: Mindestlänge der Zeichenfolge (Standard: 4 Zeichen).-t d|x|o: Offset jeder Zeichenfolge in dezimal, hexadezimal oder oktal — wichtig, um die Fundstelle in der Datei wiederzufinden.-e s|S|b|l: Zeichenbreite beziehungsweise Byte-Reihenfolge (7-Bit, 8-Bit, 16-Bit Big- oder Little-Endian;-e lfindet UTF-16-Texte).-a/--all: ganze Datei scannen statt nur initialisierte Sektionen.-f: Dateiname vor jeder Zeichenfolge bei mehreren Dateien.
Einsatz in Forensik und Analyse
Bei der Incident Response und in CTF-Aufgaben fördert strings oft versteckte Flags, Kommandozeilen, IP-Adressen oder verdächtige Pfade aus einem Prozess-Abbild zutage, bevor man mit objdump oder readelf in die Details einsteigt. Die Kombination aus -n und -t liefert gezielt lange Kennungen samt Offset.
strings -n 10 -t x verdaechtige.bin
strings arbeitet auf der Ebene der Maschinensprache und ergänzt die Schwesterwerkzeuge der Binutils-Kette: nm für Symbole, objcopy für den Umbau, size für Größen.
Verwandte Grundlagen: objcopy-Befehle, size-Befehle, Symboltabelle.