Skip to content

Latest commit

 

History

History
67 lines (48 loc) · 3 KB

File metadata and controls

67 lines (48 loc) · 3 KB

Hacking: The Art of Exploitation — apuntes en español

Apuntes y código derivados del libro Hacking: The Art of Exploitation de Jon Erickson (2ª edición, No Starch Press).

Repositorio de estudio personal. El contenido se escribe leyendo el libro, reproduciendo los ejemplos en una máquina propia y anotando lo aprendido.

Estructura

.
├── capitulos/      # apuntes en Markdown, uno por capítulo
├── codigo/         # código C de los ejemplos, agrupado por sección
├── Makefile        # compila todos los ejemplos
└── README.md       # este archivo

Cada subdirectorio en codigo/ corresponde a una sección del libro. Los archivos siguen el patrón <seccion>_<nombre>.c (por ejemplo codigo/0x260/0x261_char_array.c).

Compilar y ejecutar

make            # compila todo
make 0x320      # compila solo una sección
make run-0x320  # compila y ejecuta los binarios de esa sección
make clean      # borra binarios
make help       # lista targets disponibles

Algunos ejemplos (overflows, shellcode) requieren desactivar protecciones modernas (-fno-stack-protector -z execstack -no-pie). El Makefile lo hace automáticamente para esas secciones. Para reproducir fielmente los ejemplos del libro también conviene desactivar ASLR temporalmente:

echo 0 | sudo tee /proc/sys/kernel/randomize_va_space   # desactiva ASLR
echo 2 | sudo tee /proc/sys/kernel/randomize_va_space   # restaura (default)

Índice

Capítulo Título Apuntes
0x100 Introducción capitulos/0x100_introduccion.md
0x200 Programación capitulos/0x200_programacion.md
0x300 Exploitation capitulos/0x300_exploitation.md
0x400 Networking capitulos/0x400_networking.md
0x500 Shellcode capitulos/0x500_shellcode.md
0x600 Countermeasures capitulos/0x600_countermeasures.md
0x700 Cryptology capitulos/0x700_cryptology.md
0x800 Conclusión capitulos/0x800_conclusion.md

Entorno de pruebas

Los ejemplos se prueban en:

  • Linux x86-64 (Kali / Debian)
  • gcc 12+
  • gdb 13+ con sintaxis Intel (echo "set disassembly intel" > ~/.gdbinit)

El libro original usa x86 32-bit. Los apuntes adaptan los ejemplos a x86-64, indicando las diferencias relevantes (registros rXX en vez de eXX, calling convention System V AMD64, etc.).

Avisos

  • Todo el código se ejecuta en máquinas propias o entornos de laboratorio aislados.
  • Algunos ejemplos abren puertos o crean shellcode; nunca se prueban contra sistemas que no sean propios.
  • El binario compilado con flags inseguros (-z execstack) no debe distribuirse ni ejecutarse en sistemas en producción.

Licencia

Ver LICENSE.