De PE y ELF a firmware
El análisis de binarios es la base del reverse engineering de malware. Entender cómo se estructura un ejecutable, cómo se empaqueta, ofusca y modifica permite a los analistas extraer indicadores, identificar familias y comprender el comportamiento real de las amenazas. Esta serie cubre los tres formatos principales (PE, ELF, Mach-O) y se adentra en firmware, técnicas de packing y ofuscación avanzada.
Bloque 1: Formato PE de Windows (artículos 1-5) Cabeceras PE, secciones, imports/exports, PE anomalías, Rich Header y análisis de resources.
Bloque 2: ELF y Mach-O (artículos 6-9) Formato ELF en detalle, linking dinámico, Mach-O para macOS, análisis comparativo entre formatos.
Bloque 3: Firmware y empaquetado (artículos 10-14) Extracción y análisis de firmware, técnicas de packing (UPX, Themida, VMProtect), ofuscación de código, anti-análisis y evasión de sandboxes.
Intermedio a avanzado. Se asume familiaridad con conceptos básicos de sistemas operativos y programación. Cada artículo incluye ejercicios prácticos con herramientas como PE-bear, readelf, Ghidra y binwalk.
Guia completa del formato Portable Executable (PE) de Windows. DOS header, PE signature, COFF header, Optional header, secciones, imports, exports y resources. Fundamentos para analisis de malware.
Analisis detallado de las secciones del formato PE de Windows. Seccion .text, .data, .rdata, .rsrc, .reloc, .bss y secciones personalizadas. Entropia, permisos anomalos y deteccion de empaquetado.
Analisis de la Import Address Table (IAT) en archivos PE. APIs sospechosas de Windows agrupadas por comportamiento, resolucion dinamica con GetProcAddress y LoadLibrary, API hashing y tecnicas de evasion.
Estructura completa del formato ELF (Executable and Linkable Format) de Linux. ELF header, program headers, section headers, simbolos, linking dinamico y analisis de malware en binarios Linux.
Estructura del formato Mach-O para macOS e iOS. Header, load commands, segmentos, fat binaries, code signing, dyld y analisis de malware en el ecosistema Apple.
Guia completa sobre packing y unpacking de malware. UPX, Themida, VMProtect, ASPack, custom packers. Tecnicas de unpacking manual, busqueda del OEP, tail jump y herramientas especializadas.
Tecnicas de ofuscacion de codigo en malware: cifrado de strings, control flow flattening, dead code insertion, opaque predicates, mixed boolean arithmetic. Estrategias y herramientas de deobfuscacion.
Fundamentos del analisis estatico de malware. Extraccion de strings con strings y FLOSS, hashes criptograficos y fuzzy hashing con ssdeep, metadatos con PEStudio y Detect It Easy. Primer triaje de muestras sospechosas.
Uso de la entropia de Shannon para detectar empaquetado y cifrado en binarios. Calculo de entropia por seccion, visualizacion, umbrales de deteccion y analisis de anomalias en archivos PE y ELF.
Analisis del Rich Header, timestamps de compilacion, Debug Directory, rutas PDB y otros metadatos ocultos en archivos PE de Windows. Tecnicas de atribucion y deteccion de manipulacion.
Analisis de malware .NET con dnSpy e ILSpy. Estructura de assemblies .NET, codigo IL, decompilacion a C#, ofuscacion con ConfuserEx y Dotfuscator, deobfuscacion con de4dot y herramientas especializadas.
Analisis de firmware de dispositivos IoT y embebidos. Extraccion con binwalk, analisis de sistemas de archivos, emulacion con QEMU, busqueda de vulnerabilidades y backdoors en firmware de routers, camaras IP y dispositivos industriales.
Analisis de shellcode en malware. Tipos de shellcode, decodificacion de stubs, emulacion con scdbg y Unicorn Engine, patrones comunes de shellcode en exploits y malware, y tecnicas de deteccion.
Tecnicas anti-analisis en malware: IsDebuggerPresent, timing checks, deteccion de VM via CPUID y MAC, deteccion de sandbox, evasion de analisis automatizado. Contramedidas y bypass para cada tecnica.