strings: Descubriendo el texto oculto dentro de tus archivos en Linux

A veces, la curiosidad nos lleva a querer saber qué hay dentro de un archivo binario. ¿Hay alguna frase, algún mensaje escondido o alguna información valiosa? Aquí es donde strings entra en juego. Este comando nos permite extraer secuencias de caracteres de archivos, lo que es especialmente útil para los archivos no-texto como los binarios. En este artículo, exploraremos cómo usar strings en sistemas Ubuntu y Debian, desentrañando el misterio detrás de esos archivos y revelando el texto que albergan.

Comprendiendo el propósito de strings

El comando strings es una herramienta simple, pero con un uso profundamente valioso en determinados contextos.

¿Por qué usar strings?

Mientras que los archivos de texto contienen caracteres legibles, los archivos binarios están compuestos de bytes que no siempre representan caracteres legibles para los humanos. Con strings, podemos filtrar y mostrar solo aquellas secuencias que formen cadenas legibles, ignorando el resto.

Casos de uso comunes

  1. Análisis forense: En el mundo de la ciberseguridad, strings puede ser utilizado para extraer información de malware o archivos sospechosos.
  2. Desarrollo y depuración: Si eres desarrollador y quieres saber si un archivo binario contiene una cadena específica, strings es tu herramienta.
  3. Curiosidad general: A veces solo queremos saber si hay algún mensaje escondido o Easter egg en un programa o juego.

Usando strings: Básicos y más allá

Aquí aprenderemos cómo usar este comando y algunos trucos para sacarle el máximo partido.

Básicos

El uso básico de strings es directo. Si tienes un archivo llamado ejemplo.bin, simplemente escribes:

strings ejemplo.bin

Esto te mostrará todas las cadenas legibles dentro del archivo.

Especificando un tamaño mínimo

Si solo te interesan cadenas de un cierto tamaño, por ejemplo, de 10 caracteres o más, puedes usar la opción -n:

strings -n 10 ejemplo.bin

Buscando cadenas en múltiples archivos

Si tienes varios archivos y quieres buscar cadenas en todos ellos, simplemente añade los nombres de archivo al comando:

strings archivo1.bin archivo2.bin archivo3.bin

Consideraciones y consejos avanzados con strings

Aprovecha al máximo strings con estos consejos.

Codificación

Por defecto, strings busca cadenas en la codificación ASCII. Sin embargo, si sospechas que un archivo utiliza una codificación diferente, como UTF-8, puedes especificarla con la opción -e:

strings -e S archivo.bin

Archivos grandes

Si estás trabajando con archivos muy grandes y solo quieres ver las primeras 100 cadenas, por ejemplo, puedes combinar strings con head:

strings archivo_grande.bin | head -n 100

Incluyendo direcciones

Si además de las cadenas, deseas conocer la dirección en el archivo donde se encontró cada cadena, usa la opción -t:

strings -t x archivo.bin