x86, x64, ARM para análisis de malware
El ensamblador es el lenguaje que separa a los analistas de malware avanzados del resto. Cuando Ghidra o IDA Pro descompilan una función, es el conocimiento de ensamblador lo que permite distinguir un bucle de cifrado de una rutina benigna. Esta serie enseña las arquitecturas x86, x64 y ARM con enfoque directo en patrones que aparecen en malware real.
Bloque 1: Fundamentos x86/x64 (artículos 1-5) Registros, stack, calling conventions, instrucciones aritméticas y lógicas, control de flujo y patrones comunes en malware.
Bloque 2: Patrones maliciosos (artículos 6-9) Shellcode, inyección de procesos, API hashing, cifrado y ofuscación en ensamblador, anti-debugging y anti-VM.
Bloque 3: ARM y técnicas avanzadas (artículos 10-13) Arquitectura ARM para malware móvil e IoT, diferencias Thumb vs ARM, análisis de firmware ARM, y técnicas avanzadas de ofuscación (control flow flattening, opaque predicates).
Intermedio. No se requiere experiencia previa en ensamblador, pero sí conocimientos de programación en C y conceptos básicos de sistemas operativos. Los artículos progresan gradualmente desde instrucciones básicas hasta análisis de samples reales.
Guia introductoria al lenguaje ensamblador orientada al analisis de malware. Registros, modelo de memoria, formato de instrucciones y por que todo analista debe dominar ASM para entender que hace realmente un binario malicioso.
Guia completa de registros en arquitecturas x86 y x64. Registros de proposito general (EAX-ESP, RAX-RSP), registros de segmento, EFLAGS/RFLAGS y su papel en el analisis de malware y reverse engineering.
Referencia practica de las instrucciones x86/x64 mas frecuentes en malware: movimiento de datos (MOV, LEA, XCHG), aritmetica (ADD, SUB, MUL, DIV), comparacion (CMP, TEST) y saltos (JMP, JE, JNE, JG, JL). Ejemplos reales de malware.
Anatomia del stack en x86/x64: stack frames, prologo y epilogo de funciones, convenciones de llamada (cdecl, stdcall, fastcall, x64), y como los buffer overflows explotan la estructura de la pila para redirigir la ejecucion.
Como los compiladores traducen if/else, for, while, do-while y switch/case a ensamblador x86/x64. Patrones de reconocimiento, jump tables, y como el malware ofusca el flujo de control para dificultar el analisis.
Referencia de las APIs de Windows mas usadas por malware vistas desde ensamblador. Operaciones de archivos, memoria, procesos, red y registro. Como leer los parametros en x86 y x64, y como el malware resuelve APIs dinamicamente.
Catalogo de patrones de ensamblador comunes en malware real: loops de descifrado XOR, hashing de APIs, inyeccion de procesos, anti-debug, evasion de sandbox, strings ofuscadas y tecnicas de persistencia. Con ejemplos de codigo ASM de cada patron.
Diferencias fundamentales entre x86 y x64 que afectan al analisis de malware: registros extendidos, convencion de llamada Windows x64, RIP-relative addressing, WoW64, y como adaptar el analisis cuando el sample es de 64 bits.
Guia de arquitectura ARM para analistas de malware. Diferencias con x86, registros, modos de ejecucion, instrucciones Thumb, y como se manifiesta el malware en plataformas moviles Android/iOS y dispositivos IoT.
Guia practica para leer y analizar ensamblador en Ghidra. Navegacion por las vistas de desensamblado, uso del decompilador, cross-references, renombrado de funciones y variables, y flujo de trabajo para analisis de malware.
Guia avanzada de IDA Pro para analisis de malware. Navegacion de vistas, grafo de funciones, scripts IDAPython, FLIRT signatures, plugins esenciales y tecnicas para desensamblado complejo.
Como identificar y analizar algoritmos de cifrado en ensamblador durante el analisis de malware. Patrones de XOR loops, implementacion de RC4, deteccion de AES por S-box, uso de FindCrypt y tecnicas para extraer claves.
Guia de ejercicios practicos para aprender ensamblador aplicado a malware analysis. Crackmes progresivos, muestras seguras, plataformas de practica y metodologia para desarrollar habilidades de reverse engineering.