Tutoriel sur les commandes Linux pour les débutants (5 exemples)

Regarder à l’intérieur d’un fichier binaire/exécutable pour récupérer des chaînes lisibles par l’homme n’est pas le genre de travail que tout le monde fait, mais que faire si on te demande de le faire ? Ouvrir le fichier dans un éditeur et chercher manuellement des trucs n’est pas une solution élégante. Alors, que faire ? Oui, tu as bien deviné – il existe un utilitaire en ligne de commande qui fait cela pour toi.

L’outil en question s’appelle Strings, et dans ce tutoriel, nous allons aborder les bases de cette commande à l’aide d’exemples faciles à comprendre. Mais avant cela, il est bon de mentionner que tous les exemples de cet article ont été testés sur une machine Ubuntu 16.04 LTS.

Commande Linux Strings

La commande Strings permet essentiellement d’imprimer les chaînes de caractères imprimables dans les fichiers. Voici sa syntaxe :

strings [OPTIONS] FILENAME

Et voici comment la page de manuel de l’outil la décrit :

       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.

Voici quelques exemples sous forme de questions-réponses qui devraient te donner une bonne idée du fonctionnement de la commande Strings.

Q1. Comment utiliser la commande Strings ?

L’utilisation de base est assez simple – passe simplement le nom du fichier en entrée et exécute la commande.

Remarque : comme Strings est principalement utilisée pour extraire des informations de fichiers binaires/exécutables, nous utiliserons un seul de ces fichiers dans tous nos exemples.

Par exemple :

strings test

Voici le résultat que cette commande a produit sur mon système :

Comment utiliser la commande strings

Q2. Comment forcer une limite de caractères personnalisée ?

Comme nous l’avons expliqué au début, le comportement par défaut de l’outil Strings est d’imprimer uniquement les séquences de caractères d’au moins 4 caractères. Cependant, si tu le souhaites, tu peux modifier cette limite en utilisant l’option de ligne de commande -n (qui te demande de passer un nombre qui signifie la nouvelle limite).

Par exemple, si tu veux fixer la limite à 2, voici comment tu peux le faire :

strings -n 2 test

Comment forcer une limite de caractères personnalisée

Maintenant, tu peux aussi voir des chaînes de deux et trois caractères dans la sortie.

Q3. Comment faire pour que Strings imprime le décalage des séquences de caractères ?

Si tu veux que Strings affiche aussi les décalages des séquences de caractères qu’elle affiche en sortie, tu peux le faire en utilisant l’option de ligne de commande -t, qui te demande de fournir un seul caractère en entrée qui spécifie le radix du décalage – ‘o’ pour octal, ‘x’ pour hexadécimal ou ‘d’ pour décimal.

Par exemple :

strings -t d test

Et voici la sortie qu’il a produite sur mon système :

Comment faire en sorte que les chaînes impriment le décalage des séquences de caractères

Tu peux donc voir que les chaînes de caractères en sortie sont maintenant précédées de leurs décalages respectifs.

Q4. Comment faire pour que Strings analyse tout le fichier ?

Selon la façon dont Strings a été configuré, il peut ou non analyser l’ensemble du fichier d’entrée. Cependant, si tu veux être absolument sûr que l’outil lit le fichier complet (et pas seulement les sections de données initialisées et chargeables), utilise l’option de ligne de commande -a.

Par exemple :

strings -a test

Inversement, si tu veux que Strings n’affiche que les chaînes des sections de données initialisées et chargées du fichier, utilise l’option de ligne de commande -d.

strings -d test

Q5. Comment modifier le séparateur ?

Comme tu l’as remarqué, par défaut, le séparateur utilisé par Strings est une nouvelle ligne. Cependant, si tu veux, tu peux avoir un séparateur personnalisé en utilisant l’option de ligne de commande -s.

Par exemple :

strings -s [[[]]] test

Comment changer le séparateur

Conclusion

La commande Strings est un outil extrêmement utile si tu aimes fouiller les binaires/exécutables pour trouver des informations utiles. Nous avons abordé ici quelques options de ligne de commande importantes. Alors entraîne-toi à les utiliser, et une fois que tu as terminé, consulte lapage de manuel de l’outil pour plus d’informations.

Vous aimerez aussi...