sviluppo-web-qa.it

Comando Linux per trovare stringhe in file binari o non ascii

Esiste un comando linux per estrarre tutte le stringhe ASCII da un file eseguibile o altro file binario? Immagino di poterlo fare con un grep, ma ricordo di aver sentito da qualche parte che un tale comando esisteva?

40
Ethan Heilman

Il comando che stai cercando è strings

Il suo nome è abbastanza autoesplicativo, recupera qualsiasi stringa stampabile da un determinato file.

man strings fornisce:

STRINGS (1)

[~ ~ #] nome [~ ~ #]
stringhe - trova le stringhe stampabili in un file oggetto o altro binario

[~ ~ #] sinossi [~ ~ #]
strings [ - ] [ -a ] [ -o ] [ -t format ] [ -number ] [ -n number ] [--] [file ...]

72
drAlberT

Il comando stringhe è la strada da percorrere per questo particolare tipo di problemi. A volte devi anche reindirizzarlo a grep.

Per esempio:

strings somebinaryfile | grep textuwanttofind
11
luis.espinal

Il comando esiste e si chiama .... stringhe!

4
Mark

Il comando od può fare questo:

od -c *filename*
3
Kyle Brandt

Un problema con l'uso delle stringhe è che non vedi i non stampabili circostanti e devi stare attento con la lunghezza minima della stringa.

Un problema durante l'utilizzo

od -c FILE
hexdump -C FILE

Qualcosa che mi piace molto per questo è ZTreeWin in esecuzione su WINE su Linux - puoi fare molto con esso, ma la ricerca in qualsiasi file o la modifica dei binari può essere particolarmente utile.

Il fantastico pacchetto ytree è disponibile per molte varianti Linux e Unix e ha una buona vista dump esadecimale di qualsiasi file ma non ha la ricerca di ZTreeWin (e il suo predecessore a 16 bit, XTree).

2
qeff