J'ai un tas de binaires et je sais qu'à l'intérieur de ces binaires il y a des chaînes que je veux trouver.
Je veux faire un:
grep -lir "the string I am looking for"
et obtenir une liste de tous les fichiers binaires dans un répertoire particulier qui contiennent cette chaîne mais grep -lir
ne fonctionne apparemment pas avec ces fichiers.
Existe-t-il une commande qui peut effectuer ce type de recherche depuis un terminal?
ack
de mal lire la description de moi-même? (dans le manuel) "ack 2.x recherchera à travers chaque fichier régulier, non binaire qui n'est pas explicitement ignoré [par bla bla]". binaire.ack grep /bin/grep
et vous obtiendrez le résultat. J'ai mis à jour ma réponse pour éviter toute confusion.La commande
strings
va extraire toutes les données ascii d'un fichier, si vous puisgrep
sa sortie, vous pouvez rechercher vos données:la source
strings
, lisez ici pour plus de détails.strings -f
serait plus approprié.Votre question concerne la recherche de fichiers binaires contenant un motif (et nous avons déjà de très bonnes réponses!). Complémentaire, nous aimerions peut-être obtenir les occurrences.
J'utilise souvent
pour obtenir un contexte environnant de 20 caractères.
la source