0Pricing
Cyber Security Academy · Lección

Análisis dinámico con GDB y pwndbg

Establezca puntos de interrupción, inspeccione la memoria, rastree llamadas al sistema y automatice sesiones de GDB con pwndbg.

Análisis dinámico con GDB y pwndbg es una lección gratuita de Cyber Security Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cyber Security Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cyber Security Academy incluye 4 lecciones en total.

¿Qué es el análisis dinámico?

El análisis dinámico ejecuta un binario y observa su comportamiento en tiempo real: contenido de la memoria, valores de los registros, llamadas al sistema y conexiones de red. Complementa el análisis estático (Ghidra) al mostrar los valores reales en tiempo de ejecución y el flujo de control.

Fundamentos de GDB

GDB (GNU Debugger) es el depurador estándar de Linux:

gdb ./vuln              # load binary
gdb -p 1234             # attach to running process
run [args]              # start execution
break main              # set breakpoint at main
continue (c)            # continue execution
next (n)                # step over
step (s)                # step into

Mejoras de pwndbg

pwndbg es un plugin de GDB que añade utilidades para desarrollar exploits:

  • Visualización de la pila y los registros en cada pausa
  • Generación de patrones con cyclic
  • Comando heap para visualizar el heap
  • Buscador de gadgets rop
  • Protecciones del binario con checksec
git clone https://github.com/pwndbg/pwndbg && ./setup.sh

Puntos de interrupción y watchpoints

Controle la ejecución:

# Break at address:
break *0x401234
# Break at function:
break strncpy
# Watch memory address:
watch *0x7ffd1234     # break when value changes
# Conditional break:
break *0x401234 if $rax == 0
# List and delete:
info break
delete 1

Examinar la memoria y los registros

Inspección del estado:

info registers         # show all registers
print $rax             # print register value
x/10xg $rsp            # examine 10 qwords at RSP
x/s 0x402000           # examine as string
x/20i $rip             # disassemble 20 instructions at RIP
pwndbg: telescope $rsp 20  # smart stack display

Ejecutar el código paso a paso

Comandos de navegación:

ni (nexti)             # step over (instruction level)
si (stepi)             # step into (instruction level)
finish                 # run until function returns
until 0x401234         # run until address

Crear scripts para GDB

Automatice GDB con Python:

# GDB Python script:
gdb ./vuln << EOF
python
for i in range(10):
    gdb.execute("continue")
    gdb.execute("x/4xg $rsp")
end
EOF

Analizar el heap con pwndbg

Comandos de inspección del heap en pwndbg:

heap                   # show all heap chunks
heap -a                # show all allocations
bin                    # show free list bins
tcachebins             # show tcache entries
vis_heap_chunks        # visual heap map

Rastrear llamadas al sistema

Use strace para rastrear llamadas al sistema sin depurar por completo:

strace ./vuln          # trace all syscalls
strace -e trace=open,read,write ./vuln  # filter syscalls
strace -f ./vuln       # follow forks
# ltrace for library calls:
ltrace ./vuln

Configurar un entorno de depuración

Configuración importante para desarrollar exploits:

# Disable ASLR for testing:
echo 0 | sudo tee /proc/sys/kernel/randomize_va_space
# Or per-process:
setarch $(uname -m) -R gdb ./vuln
# Verify with:
ldd ./vuln  # check libc base

Depurar binarios sin símbolos

Muchos binarios de producción tienen los símbolos de depuración eliminados. Técnicas:

  • Use file y readelf para comprender el binario
  • Establezca puntos de interrupción en direcciones, no en símbolos
  • Use firmas de funciones para identificar llamadas habituales a bibliotecas
  • Cargue los símbolos de libc por separado si están disponibles

Comprobación rápida: GDB

¿Qué comando de GDB establece un punto de interrupción que solo se activa cuando se cumple una condición específica?

Resumen de la lección

GDB con pwndbg permite realizar análisis dinámico: establecer puntos de interrupción, examinar registros y memoria y rastrear la ejecución. Comandos clave: break, run, ni/si, x/format, info registers. pwndbg añade visualización del heap, visualización telescópica de la pila y herramientas de patrones. strace/ltrace rastrean llamadas al sistema y llamadas a bibliotecas sin necesidad de configurar una sesión completa de depuración.

Preguntas frecuentes

¿La lección «Análisis dinámico con GDB y pwndbg» es gratis?

Sí — el texto completo de «Análisis dinámico con GDB y pwndbg» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cyber Security Academy, actualiza a CoddyKit PRO. El curso de Cyber Security Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Análisis dinámico con GDB y pwndbg»?

Establezca puntos de interrupción, inspeccione la memoria, rastree llamadas al sistema y automatice sesiones de GDB con pwndbg. Practicas Cyber Security Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Cyber Security Academy?

No se requiere experiencia previa. Cyber Security Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «Análisis dinámico con GDB y pwndbg»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Cyber Security Academy?

Sí. Cada lección de Cyber Security Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Ghidra: navegación y anotación de binarios
  2. Fundamentos de ensamblador x86/x64 para reversing
  3. Análisis dinámico con GDB y pwndbg
  4. Desofuscación y técnicas anti análisis
← Volver a Cyber Security Academy