Linux-Befehl zum Suchen von Strings in Binär- oder Nicht-ASCII-Dateien

39

Gibt es einen Linux-Befehl, um alle ASCII-Zeichenfolgen aus einer ausführbaren Datei oder einer anderen Binärdatei zu extrahieren? Ich nehme an, ich könnte es mit einem Grep machen, aber ich erinnere mich, irgendwo gehört zu haben, dass es einen solchen Befehl gab?

Ethan Heilman
quelle

Antworten:

72

Der gesuchte Befehl lautet strings

Der Name ist selbsterklärend und ruft alle druckbaren Zeichenfolgen aus einer bestimmten Datei ab.

man strings gibt:

SAITEN (1)

NAME-
Zeichenfolgen - Finden Sie die druckbaren Zeichenfolgen in einer Objektdatei oder einer anderen Binärdatei

ZUSAMMENFASSUNG
strings [ - ] [ -a ] [ -o ] [ -t format ] [ -number ] [ -n number ] [--] [file ...]

drAlberT
quelle
10

Der Befehl strings ist der richtige Weg, um diese Art von Problemen zu lösen. Manchmal muss man es auch rauspfeifen, um zu greifen .

Beispielsweise:

strings somebinaryfile | grep textuwanttofind
luis.espinal
quelle
4

Der Befehl existiert und heißt .... strings!

Kennzeichen
quelle
3

Der od Befehl kann dies tun:

od -c *filename*
Kyle Brandt
quelle
3
Ja, das extrahiert die ASCII-Zeichen, aber es sind nicht wirklich die Strings an sich. Ich denke, dass "Strings" in den meisten Fällen nützlicher sind.
user5336
Ya, wusste nichts über diesen Befehl, aber ich weiß es jetzt! AlberT bekam meine "+1" :-)
Kyle Brandt
2

Ein Problem bei der Verwendung von Zeichenfolgen besteht darin, dass Sie keine umgebenden nicht druckbaren Elemente sehen und mit der Mindestlänge der Zeichenfolge vorsichtig sein müssen.

Ein Problem mit

od -c DATEI
oder
hexdump -C FILE
ist, dass es schwierig sein kann, eine Sequenz zu finden, wenn sie eine Zeile umbricht.

Was mir sehr gefällt, ist, dass ZTreeWin in WINE unter Linux ausgeführt wird - Sie können viel damit anfangen , aber das Suchen in einer beliebigen Datei oder das Bearbeiten von Binärdateien kann besonders nützlich sein.

Das großartige ytree-Paket ist für viele Linux- und Unix-Varianten verfügbar und bietet eine gute Hex-Dump-Ansicht aller Dateien, hat jedoch nicht die Suchfunktion, die ZTreeWin (und sein 16-Bit-Vorgänger XTree) haben.

qeff
quelle