Commande Linux pour rechercher des chaînes dans un fichier binaire ou non ASCII


39

Existe-t-il une commande linux permettant d'extraire toutes les chaînes ascii d'un fichier exécutable ou d'un autre fichier binaire? Je suppose que je pourrais le faire avec un grep, mais je me souviens d’avoir entendu quelque part l’existence d’une telle commande?

Réponses:


72

La commande que vous recherchez est strings

Son nom est assez explicite, il récupère toute chaîne imprimable à partir d'un fichier donné.

man strings donne:

CORDES (1)

NAME
strings - recherche les chaînes imprimables dans un objet ou un autre fichier binaire

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


10

La commande strings est la solution à ce type de problèmes. Parfois, vous devez également le diriger vers grep .

Par exemple:

strings somebinaryfile | grep textuwanttofind


3

La commande od peut faire ceci:

od -c *filename*

3
Oui, cela extrait les caractères ASCII, mais ce ne sont pas vraiment les chaînes, en soi. Je pense que les "chaînes" sont plus utiles dans la majorité des cas.
user5336

Ya, je ne savais pas à propos de cette commande, mais je le sais maintenant! AlberT a obtenu mon '+1' :-)
Kyle Brandt

2

Un problème lié à l'utilisation de chaînes est que vous ne voyez pas les fichiers non imprimables environnants et que vous devez faire attention à la longueur minimale de la chaîne.

Un problème d'utilisation

od -c FILE
ou
hexdump -C FILE
est-ce qu'une séquence peut être difficile à trouver si elle met une ligne.

Ce que j'aime beaucoup, c’est ZTreeWin tournant sous WINE sous Linux. Vous pouvez en faire beaucoup, mais la recherche dans n’importe quel fichier ou l’édition de fichiers binaires peut être particulièrement utile.

Le paquet génial ytree est disponible pour de nombreuses variantes de Linux et Unix et offre une bonne vue de vidage hexadécimal de tous les fichiers, mais n'a pas la recherche que ZTreeWin (et son prédécesseur 16 bits, XTree).

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.