Assembly x86/x64 para ingeniería inversa: guía de campo
Stack frames, variables globales y locales, clases vs structs, malloc/new, pilas y listas enlazadas, convenciones de llamada (cdecl/stdcall/SystemV/Windows x64) y heurísticas para identificar funciones en Ghidra.
01. Resumen
Material de estudio (20 secciones) para leer ensamblador en sesiones de reversing: memoria dinámica (malloc/realloc/free vs new/delete con bad_alloc), estructuras de datos reconocibles por patrones de indexación [base+idx*size+off], aritmética de punteros, alineamiento/padding y las convenciones de llamada cdecl/stdcall/SystemV/Windows x64. El recorrido va de los fundamentos a las heurísticas con las que se delimitan funciones sin tabla de símbolos.
02. Ficha
| Enfoque | GCC (C/C++) + NASM/FLAT |
|---|---|
| Localización | Pila (rbp±) vs secciones (.data/.bss/.rdata) |
| Clases | this = rcx/rdi según ABI |
| Convenciones | cdecl · stdcall · SystemV · Win x64 |
| Heurística | Prólogo/epílogo push rbp; mov rbp,rsp |
| Estado | Guía educativa (20 secciones en el original) |
Material de estudio documentado; los 20 apartados del original se comprimen aquí a la idea clave. No es un hallazgo: es la base de conocimiento sobre la que corren las herramientas propias.