Análisis de malware | unfantasmaenelsistema.com
Cada vez que lanzas un archivo ejecutable, el procesador interpreta una secuencia de bytes como instrucciones. Para un analista de malware, cada byte es una pista. El proceso de desensamblar un ejecutable —convertir ese montón de bytes en código ensamblador legible— es la puerta de entrada al análisis estático de malware.
En este artículo vamos a recorrer el proceso completo: desde entender la estructura interna de un archivo PE de Windows, hasta interpretar instrucciones x86/x64 en Ghidra. No necesitas ser un experto en ensamblador para empezar, pero sí necesitas curiosidad y ganas de meterte en las tripas de los programas.

1. Análisis estático vs. análisis dinámico
Antes de abrir un desensamblador, conviene entender que el análisis de malware se divide en dos grandes familias de técnicas que se complementan entre sí.

2. El formato PE: la anatomía de un ejecutable Windows
Los archivos ejecutables en Windows (.exe, .dll, .sys) siguen el formato PE (Portable Executable), heredado de COFF de Unix. Entender este formato es fundamental porque el malware lo manipula activamente para ocultarse, inyectarse en otros procesos, o evadir análisis.

2.1 La Import Address Table (IAT): el mapa de capacidades
Las funciones que un ejecutable importa revelan qué puede hacer antes de ejecutar ni una sola instrucción. Un malware que importa CreateRemoteThread, VirtualAllocEx y WriteProcessMemory casi con certeza realiza inyección de código.


3. Reconocimiento inicial: antes del desensamblador
Un analista experimentado no abre Ghidra como primer paso. Hay una serie de técnicas rápidas que dan mucha información en poco tiempo: identificar el tipo real del archivo, extraer strings en texto plano, y calcular la entropía por sección para detectar código empaquetado o cifrado.

4. Fundamentos de ensamblador x86/x64
No es necesario dominar el ensamblador para empezar a analizar malware, pero sí necesitas un vocabulario mínimo. Estos son los registros y las instrucciones que aparecen constantemente.


5. Ghidra: desensamblando y descompilando
Ghidra es el framework de ingeniería inversa desarrollado por la NSA y liberado como software libre en 2019. Ofrece un descompilador integrado que convierte el ensamblador en pseudocódigo C, lo que acelera enormemente el análisis.

6. Patrones comunes de malware en ensamblador
6.1 Función de descifrado XOR
Uno de los patrones más frecuentes en malware es una función de descifrado que decodifica strings o payloads en memoria. Suele identificarse por un bucle con una instrucción XOR sobre un buffer.

6.2 Inyección de proceso: CreateRemoteThread
El patrón clásico de inyección de código. El malware inyecta su shellcode en un proceso legítimo (explorer.exe, svchost.exe) para evadir detección.

7. Entornos y herramientas recomendadas

Conclusión
El análisis de malware es una disciplina que combina conocimiento de bajo nivel con metodología y paciencia. Lo que hemos cubierto es la base: el lenguaje con el que el malware habla y las herramientas para escucharlo. El siguiente paso natural es complementar el análisis estático con análisis dinámico: ejecutar el malware en un sandbox controlado y observar lo que hace en el sistema real.

unfantasmaenelsistema.com | Seguridad, sistemas y todo lo que no debería funcionar (pero funciona)

