Te habrá ocurrido que quisiste ejecutar un archivo desconocido, que fue hecho en otro sistema operativo, que parecía corrupto, o que tenía una extensión modificada o no tenía, directamente.
Para poder ejecutarlo o leerlo, aunque no sea reconocido por el sistema operativo, se pueden analizar las estructuras básicas de ese archivo con extensión y función desconocidas, principalmente es útil identificar patrones como la cabecera.
Te contamos algunas técnicas que puedes usar para ejecutar estos análisis.
Podemos estudiar el archivo mediante su firma hexadecimal y deducir qué tipo de extensión posee para saber, luego, con qué tipo de aplicación intentar ejecutarlo o de qué manera poder leerlo.
Existen varias aplicaciones que nos facilitarán este trabajo, sin embargo, en un principio analizaremos los códigos hexadecimales en forma manual, para comprender mejor el proceso.
Análisis en forma manual:
Puedes utilizar un editor hexadecimal como es HxD, que contiene una interfaz sencilla y se puede ejecutar desde una versión portable; es gratuito y de ligeros consumos de recursos.
Utilizaremos distintos tipos de archivos para investigar su encabezado: alguna imagen, archivos de audio, video, comprimidos y de sistemas operativos como Linux.
A continuación, algunos ejemplos de análisis de archivos sin extensión aparente y qué conclusiones podemos sacar:
Ejemplo 1: Al ingresar el primer archivo sin extensión en el editor de Hexadecimal, obtenemos el siguiente resultado para las primeras líneas.
Resaltado en la imagen, podemos ver que los primeros bytes 25 50 44 46 2D (y “%PDF-“ su codificación en texto) coinciden con la firma hexadecimal que corresponde a archivos de tipo PDF.
Ejemplo 2: En este segundo archivo, también sin extensión, nos encontramos con la siguiente codificación en hexadecimal de sus primeras líneas:
Ahora, si buscamos dentro de la lista de firmas, podemos ver que los bytes 50 4B (“PK”) se corresponden a tipos de archivo .ZIP y aquellos basados en él. Esto, en total, nos deja con 20 posibles tipos (entre los más conocidos: .zip, .docx, .apk, .xlsx) muy distintos entre sí. En otras palabras, no es posible determinar el tipo de archivo en algunos casos, ya que existen extensiones que comparten firmas. Ejemplo 3: Al ingresar al editor nos encontramos con lo siguiente:
Ejemplo 3: Interfaz del editor hexadecimal.[/caption] En la lista de firmas hexadecimales, observamos que los primeros bytes de este archivo no coinciden con aquellos determinados en este estándar. A continuación, la tabla con firmas hexadecimales de los tipos de archivos más usuales. Fuente: Wikipedia
Hexadecimal | Texto | Extensión(es) |
• FF D8 FF DB • FF D8 FF E0 00 10 4A 46 49 46 00 01 • FF D8 FF EE | • ÿØÿÛ • ÿØÿà… • ÿØÿî | .jpg, .jpeg |
4D 5A | MZ | .exe, .dll |
• 50 4B 03 04 • 50 4B 05 06 • 50 4B 07 08 | PK… | .zip, .apk, .docx, .jar, .xlsx |
52 61 72 21 1A 07 | Rar! | .rar |
D0 CF 11 E0 A1 B1 1A E1 | ÐÏDC1ࡱSUBá | .doc, .xls, .ppt, .msi |
21 3C 61 72 63 68 3E 0A | !<arch> | .deb |
Como vimos en estos ejemplos, si bien es un método rápido y en la mayoría de los casos útil, la revisión manual de la firma hexadecimal puede fallar.
Análisis con herramientas:
La segunda opción para desenmascarar archivos es utilizar alguna herramienta. Podría ser una aplicación que se ejecute en forma local como TrIDNet, Locate Opener, Smart File Advisor o Identify!, o aprovechar algún servicio confiable en Internet que realice un estudio de manera automática. En esta ocasión, utilizaremos TrIDNet.
Para usar esta herramienta debemos descargar e instalar el propio ejecutable, así como seguir las instrucciones del sitio para cargar el archivo de firmas más reciente. Este, en mayo de 2023, contiene más de 16.000 firmas distintas para explorar.
Cargando el objeto a estudiar, y haciendo clic en la casilla de “Analizar”, obtendremos los resultados deseados en cuestión de segundos, indicándonos en este caso la probabilidad más alta por los patrones encontrados.
Retomando el archivo del ejemplo 2 mencionado anteriormente, obtendremos una respuesta más sólida que simplemente un conjunto de posibles extensiones.
Según esta pieza de software, lo más probable es que el archivo sea del tipo .docx, lo cual es correcto. Para verificarlo, y siempre que sea un archivo que no está bajo sospecha de ser un código malicioso, podemos agregarle la extensión correcta e intentar abrirlo. Si lo hace, y el archivo pareciera codificado correctamente, entonces el tipo es el adecuado.
Sin embargo, hay casos no muy comunes en donde no hay método alguno que ayude a determinar el tipo de archivo, como el ejemplo 3. Este, cargado en la herramienta, arroja el siguiente resultado:
En estos casos, debemos recurrir a otros métodos de restauración de archivos.