A Binary Exploitation Learning Path Through CTFs
A staged, legal path from C and assembly to CTF pwn challenges: what to learn in which order, practice platforms built for it, lab rules, and how it leads to defensive careers.
Seguridad de memoria, desde el lado defensivo
Una referencia estructurada sobre vulnerabilidades de corrupción de memoria en C y C++: cómo surgen los desbordamientos de pila y heap, el use-after-free y los errores de enteros, y cómo los detienen compiladores, sanitizers, fuzzers y lenguajes más seguros.
Mapa de memoria
Empieza por cómo se organiza la memoria, conoce las clases de errores que la corrompen y después las capas que los previenen, detectan, contienen y clasifican.
Pila, heap, segmentos ELF y convenciones de llamada: el terreno de todo bug.
Desbordamientos, use-after-free, double free, errores de enteros y de cadenas de formato, y cómo detectarlos.
Canarios, NX/DEP, ASLR/PIE, RELRO, FORTIFY_SOURCE, CFI, CET y PAC, y cómo verificarlos.
AddressSanitizer, UBSan y fuzzing guiado por cobertura con libFuzzer y AFL++.
Leer señales, backtraces, informes de sanitizers y core dumps, y decidir qué corregir primero.
Lenguajes con seguridad de memoria, C++ más seguro y una estrategia de migración realista.
Una ruta legal y progresiva desde C y ensamblador hasta los retos pwn de CTF y las carreras en seguridad.
Defensa en profundidad
Toda mitigación tiene huecos. La resiliencia real viene de apilar capas, de modo que un error que supera una sea detectado o contenido por la siguiente.
Lenguajes con seguridad de memoria, API con comprobación de límites, advertencias del compilador y revisión de código evitan que se escriban errores.
ASan, UBSan y el fuzzing guiado por cobertura sacan a la luz los errores escritos antes que un atacante.
Canarios, NX, ASLR/PIE, RELRO, CFI y shadow stacks hacen difícil explotar los errores restantes.
El triaje de fallos, los core dumps y la deduplicación convierten los fallos en producción en correcciones priorizadas.
Últimas guías
Las guías se publican primero en inglés. Las traducciones llegarán después.
A staged, legal path from C and assembly to CTF pwn challenges: what to learn in which order, practice platforms built for it, lab rules, and how it leads to defensive careers.
Why memory-safe languages remove whole bug classes, what Rust's ownership model guarantees, where unsafe code and FFI remain risky, and how to harden the C++ you keep.
Write a fuzz harness, build it with sanitizers, run libFuzzer and AFL++, manage corpora and dictionaries, and run continuous fuzzing in CI with OSS-Fuzz or ClusterFuzzLite.
Triage native crashes like a defender: what SIGSEGV and SIGABRT mean, glibc abort messages, gdb and core dumps, ASan reports, WinDbg, and how to prioritise memory-safety crashes.
How ASan, UBSan, MSan, TSan and HWASan work, which flags and runtime options to use, how to read an ASan report line by line, and how to run sanitizers in CI.
How forward-edge and backward-edge control-flow integrity work, from Clang CFI and Microsoft CFG to Intel CET shadow stacks and Arm pointer authentication, and their limits.
Glosario
Definiciones breves y precisas de los términos que encontrarás en avisos de seguridad, informes de fallos y documentación de compiladores.
Línea editorial
Entender la explotación es lo que da sentido a las mitigaciones. Explicamos los mecanismos al nivel que necesita un programador, un revisor o un equipo de respuesta a incidentes, sin llegar a convertirlos en armas.
Lo que encontrarás
Lo que nunca publicamos