¿Hay algún comando de Linux para extraer todas las cadenas ASCII de un archivo ejecutable u otro archivo binario? Supongo que podría hacerlo con un grep, pero ¿recuerdo haber oído en alguna parte que tal comando existía?
39
El comando que estás buscando es strings
Su nombre se explica por sí mismo, recupera cualquier cadena imprimible de un archivo dado.
man strings
da:
CUERDAS (1)
NOMBRE de
cadenas : busque las cadenas imprimibles en un objeto u otro archivo binarioSINOPSIS
strings [ - ] [ -a ] [ -o ] [ -t format ] [ -number ] [ -n number ] [--] [file ...]
El comando de cadenas es el camino a seguir para este tipo particular de problemas. A veces también tienes que canalizarlo a grep .
Por ejemplo:
strings somebinaryfile | grep textuwanttofind
El comando existe, y se llama ... ¡cadenas!
El comando od puede hacer esto:
od -c *filename*
Un problema con el uso de cadenas es que no se ve un entorno que no se puede imprimir y hay que tener cuidado con la longitud mínima de la cadena.
Un problema al usar
o es que una secuencia puede ser difícil de encontrar si envuelve una línea.Algo que me gusta mucho de esto es que ZTreeWin se ejecuta en WINE en Linux: puede hacer mucho con él, pero la búsqueda en cualquier archivo o binarios de edición puede ser particularmente útil.
El increíble paquete ytree está disponible para muchas variantes de Linux y Unix y tiene una buena vista de volcado hexadecimal de cualquier archivo, pero no tiene la búsqueda que tienen ZTreeWin (y su predecesor de 16 bits, XTree).
fuente