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?

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 ...]


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


3

Der od Befehl kann dies tun:

od -c *filename*

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.