GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux-Strings-Befehls-Tutorial für Anfänger (5 Beispiele)

In einer binären/ausführbaren Datei nach menschenlesbaren Strings zu suchen, ist nicht die Art von Arbeit, die jeder tut, aber was, wenn Sie dazu aufgefordert werden? Das Öffnen der Datei in einem Editor und das manuelle Suchen nach Inhalten ist keine elegante Lösung. Also, was tun? Ja, Sie haben es richtig erraten – es gibt ein Befehlszeilenprogramm, das dies für Sie erledigt.

Das fragliche Tool heißt Strings , und in diesem Tutorial werden wir die Grundlagen dieses Befehls anhand einiger leicht verständlicher Beispiele besprechen. Aber bevor wir das tun, ist es erwähnenswert, dass alle Beispiele in diesem Artikel auf einem Ubuntu 16.04 LTS-Computer getestet wurden.

Linux-Strings-Befehl

Der Befehl Strings druckt im Grunde die Zeichenfolgen druckbarer Zeichen in Dateien. Es folgt die Syntax:

strings [OPTIONS] FILENAME

Und so beschreibt es die Manpage des Tools:

       For each file given, GNU strings prints the printable character
       sequences that are at least 4 characters long (or the number given with
       the options below) and are followed by an unprintable character.

       Depending upon how the strings program was configured it will default
       to either displaying all the printable sequences that it can find in
       each file, or only those sequences that are in loadable, initialized
       data sections.  If the file type in unrecognizable, or if strings is
       reading from stdin then it will always display all of the printable
       sequences that it can find.

       For backwards compatibility any file that occurs after a command line
       option of just - will also be scanned in full, regardless of the
       presence of any -d option.

       strings is mainly useful for determining the contents of non-text
       files.

Im Folgenden finden Sie einige Beispiele im Q&A-Stil, die Ihnen eine gute Vorstellung davon vermitteln sollen, wie der Strings-Befehl funktioniert.

Q1. Wie verwende ich den String-Befehl?

Die grundlegende Verwendung ist ziemlich einfach - übergeben Sie einfach den Dateinamen als Eingabe und führen Sie den Befehl aus.

Bitte beachten Sie, dass wir in allen unseren Beispielen eine solche Datei verwenden werden, da Strings hauptsächlich zum Extrahieren von Informationen aus binären/ausführbaren Dateien verwendet wird.

Zum Beispiel:

strings test

Hier ist die Ausgabe, die dieser Befehl auf meinem System erzeugt:

Q2. Wie erzwinge ich eine benutzerdefinierte Zeichenbegrenzung?

Wie eingangs erläutert, besteht das Standardverhalten des Strings-Tools darin, nur Zeichenfolgen auszugeben, die mindestens 4 Zeichen lang sind. Wenn Sie möchten, können Sie dieses Limit jedoch mit der Befehlszeilenoption -n ändern (wobei Sie eine Zahl übergeben müssen, die das neue Limit angibt).

Beispiel:Wenn Sie das Limit auf 2 setzen möchten, gehen Sie wie folgt vor:

strings -n 2 test

Jetzt können Sie also auch zwei- und dreistellige Zeichenfolgen in der Ausgabe sehen.

Q3. Wie kann man Strings dazu bringen, einen Offset von Zeichenfolgen zu drucken?

Wenn Sie möchten, dass Strings auch die Offsets von Zeichenfolgen anzeigt, die es in der Ausgabe anzeigt, können Sie dies mit der Befehlszeilenoption -t tun, bei der Sie eine einzelne Zeicheneingabe vornehmen müssen, die die Basis des Offsets angibt - 'o' für oktal, „x“ für hexadezimal oder „d“ für dezimal.

Zum Beispiel:

strings -t d test

Und hier ist die Ausgabe auf meinem System:

Sie können also sehen, dass den Strings in der Ausgabe jetzt ihre jeweiligen Offsets vorangestellt sind.

Q4. Wie kann man Strings dazu bringen, die ganze Datei zu scannen?

Abhängig davon, wie Strings konfiguriert wurde, kann es die gesamte Eingabedatei scannen oder nicht. Wenn Sie jedoch absolut sicher sein wollen, dass das Tool die vollständige Datei liest (und nicht nur ladbare, initialisierte Datenabschnitte), verwenden Sie die Befehlszeilenoption -a.

Zum Beispiel:

strings -a test

Umgekehrt, wenn Sie möchten, dass Strings nur Strings aus initialisierten, geladenen Datenabschnitten in der Datei anzeigt, verwenden Sie die Befehlszeilenoption -d.

strings -d test

F5. Wie ändere ich das Trennzeichen?

Wie Sie bemerkt haben, ist das von Strings verwendete Trennzeichen standardmäßig ein Zeilenumbruch. Wenn Sie möchten, können Sie jedoch mit der Befehlszeilenoption -s ein benutzerdefiniertes Trennzeichen verwenden.

Zum Beispiel:

strings -s [[[]]] test

Schlussfolgerung

Der Strings-Befehl ist ein äußerst nützliches Werkzeug, wenn Sie Binärdateien/ausführbare Dateien nach nützlichen Informationen durchsuchen möchten. Wir haben hier einige wichtige Befehlszeilenoptionen besprochen. Üben Sie sie also, und wenn Sie fertig sind, besuchen Sie die Manpage des Tools, um weitere Informationen zu erhalten.


Linux
  1. Linux-CD-Befehls-Tutorial für Anfänger (8 Beispiele)

  2. Linux-Kommando-Tutorial für Anfänger (5 Beispiele)

  3. Linux-df-Befehls-Tutorial für Anfänger (8 Beispiele)

  4. Linux Date Command Tutorial für Anfänger (8 Beispiele)

  5. Linux-Hostname-Befehls-Tutorial für Anfänger (5 Beispiele)

Linux Who Command Tutorial für Anfänger (8 Beispiele)

Linux nl Command Tutorial für Anfänger (7 Beispiele)

Linux-nm-Befehls-Tutorial für Anfänger (10 Beispiele)

Linux OD Command Tutorial für Anfänger (6 Beispiele)

Linux w Command Tutorial für Anfänger (5 Beispiele)

Linux ss Command Tutorial für Anfänger (8 Beispiele)