Parte: 6 — Análisis de malware · Fuente: Practical Malware Analysis (Sikorski & Honig) ⏱️ Duración estimada: 130 min · Nivel: Avanzado
Vencer las defensas que el malware usa contra el análisis. El alumno aprenderá a reconocer ofuscación, packing y anti-análisis; a identificar el packer; y a desempacar la muestra (automática y manualmente) para hacer un dump del código real desde memoria, reconstruir la IAT y continuar el análisis.
Al finalizar, el alumno podrá:
| # | Tema | Por qué importa |
|---|---|---|
| 1 | Ofuscación vs packing vs virtualización | Enfoques de análisis distintos |
| 2 | Identificación de packers | Define la estrategia de unpacking |
| 3 | Unpacking automático (UPX y otros) | Vía rápida cuando el packer es conocido |
| 4 | OEP (Original Entry Point) | Punto donde termina el stub |
| 5 | Dump de memoria | Extrae el código desempacado |
| 6 | Reconstrucción de IAT | Necesaria para un dump analizable |
| 7 | Anti-debug / anti-VM | Impiden la depuración |
IsDebuggerPresent, timing). Característica clave: frena el análisis dinámico.upx -d) para packers conocidos.⚠️ Nota ética y de seguridad: el unpacking implica ejecutar el stub del malware bajo depurador. Hazlo solo en la VM aislada, con snapshot previo y sin red. Aunque paras en el OEP, el proceso ya se ejecuta parcialmente: restaura
base-cleanal terminar.
Caso A — packer conocido (UPX):
upx -d muestra.exe -o muestra_unpacked.exe.Caso B — unpacking manual genérico:
VirtualAlloc, VirtualProtect) para atrapar la escritura del código desempacado.jmp/call a la región recién escrita). Detente ahí.base-clean.Desempaca una muestra empaquetada y entrega el dump reparado con su IAT reconstruida, más un informe con el OEP, el método y evidencia de que el código ya es legible (strings/imports visibles). Criterio de aceptación: el dump abre en Ghidra mostrando imports resueltos y strings que no eran visibles en el binario original, y el informe indica el OEP con su dirección.
| Síntoma / mensaje | Causa y cómo arreglar |
|---|---|
| El proceso se cierra al depurar | Anti-debug activo; usa ScyllaHide y evita detección |
| Dump no ejecuta / IAT rota | Falta reparar imports; usa Scylla IAT Autosearch + Fix |
| No encuentro el OEP | Usa breakpoints en VirtualProtect/tension entre secciones |
upx -d falla |
UPX modificado a mano; desempaca manualmente |
| Dump sin strings | Detuviste antes del OEP; avanza hasta que se descifre todo |
❓ ¿Todo malware está empaquetado? No todo, pero es muy común para evadir AV y análisis. La alta entropía y la IAT mínima son las primeras señales.
❓ ¿Puedo evitar ejecutar para desempacar? Para packers simples sí (estático/emulación). Para packers reales suele hacer falta ejecutar el stub bajo control; por eso el aislamiento es crítico.
❓ ¿Qué hago con Themida/VMProtect? Son protecciones de virtualización; el unpacking clásico no basta. Se recurre a emulación, dumping parcial y análisis de comportamiento.
Clase 146 — Análisis con IDA y Ghidra aplicado a malware