Tengo un montón de binarios y sé que dentro de estos binarios hay cadenas que quiero encontrar.
Quiero hacer un:
grep -lir "the string I am looking for"
y obtenga una lista de todos los binarios dentro de un directorio particular que contiene esa cadena pero grep -lir
aparentemente no funciona con estos archivos.
¿Hay algún comando que pueda hacer este tipo de búsqueda desde la terminal?
ack
la autodescripción? (en el manual) "ack 2.x buscará en todos los archivos regulares no binarios que no se ignoran explícitamente [por bla, bla]" Por lo tanto, parece que ack 2.x debería dejar de leer un archivo temprano si el contenido se ve binario.ack grep /bin/grep
y obtendrás el resultado. Actualicé mi respuesta para evitar confusiones.El comando
strings
extraerá todos los datos ASCII de un archivo, si luegogrep
su salida, puede buscar sus datos:fuente
strings
, lea aquí para obtener más detalles.strings -f
sería más apropiado.Su pregunta es sobre encontrar archivos binarios que contengan un patrón (¡y ya tenemos muy buenas respuestas!). Complementario nos gustaría obtener las ocurrencias.
A menudo uso
para obtener un contexto circundante de 20 caracteres.
fuente