0Pricing
Cyber Security Academy · Leçon

Analyse dynamique avec GDB et pwndbg

Définissez des points d’arrêt, inspectez la mémoire, tracez les appels système et automatisez les sessions GDB avec pwndbg.

Analyse dynamique avec GDB et pwndbg est une leçon Cyber Security Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Cyber Security Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Cyber Security Academy comprend 4 leçons au total.

Qu'est-ce que l'analyse dynamique ?

L'analyse dynamique exécute un binaire et observe son comportement en temps réel : contenu de la mémoire, valeurs des registres, appels système et connexions réseau. Elle complète l'analyse statique (Ghidra) en affichant les valeurs réelles à l'exécution et le flux de contrôle.

Notions de base de GDB

GDB (débogueur GNU) est le débogueur standard 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

Améliorations apportées par pwndbg

pwndbg est une extension de GDB qui ajoute des assistants pour le développement d'exploits :

  • Affichage visuel de la pile et des registres à chaque arrêt
  • Génération de motifs cyclic
  • Commande heap pour visualiser le tas
  • Outil de recherche de gadgets rop
  • Protections du binaire avec checksec
git clone https://github.com/pwndbg/pwndbg && ./setup.sh

Points d'arrêt et points de surveillance

Contrôler l'exécution :

# 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

Examiner la mémoire et les registres

Inspecter l'état :

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

Parcourir le code pas à pas

Commandes de navigation :

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

Écrire des scripts pour GDB

Automatiser GDB avec Python :

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

Analyser le tas avec pwndbg

Commandes d'inspection du tas dans 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

Tracer les appels système

Utilisez strace pour tracer les appels système sans effectuer un débogage complet :

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

Configurer un environnement de débogage

Configuration importante pour le développement d'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

Déboguer des binaires dépouillés

De nombreux binaires de production ont leurs symboles de débogage supprimés. Techniques :

  • Utilisez file et readelf pour comprendre le binaire
  • Définissez des points d'arrêt sur des adresses plutôt que sur des symboles
  • Utilisez les signatures de fonctions pour identifier les appels courants aux bibliothèques
  • Chargez séparément les symboles de libc s'ils sont disponibles

Vérification rapide : GDB

Quelle commande de GDB définit un point d'arrêt qui ne se déclenche que lorsqu'une condition précise est remplie ?

Récapitulatif de la leçon

GDB avec pwndbg permet l'analyse dynamique : définir des points d'arrêt, examiner les registres et la mémoire, et suivre l'exécution. Commandes essentielles : break, run, ni/si, x/format, info registers. pwndbg ajoute une visualisation du tas, une représentation télescopique de la pile et des outils de génération de motifs. strace/ltrace suivent les appels système et les appels de bibliothèque sans configuration complète du débogage.

Questions Fréquemment Posées

La leçon « Analyse dynamique avec GDB et pwndbg » est-elle gratuite ?

Oui — le texte complet de « Analyse dynamique avec GDB et pwndbg » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Cyber Security Academy, passe à CoddyKit PRO. Le cours Cyber Security Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Analyse dynamique avec GDB et pwndbg » ?

Définissez des points d’arrêt, inspectez la mémoire, tracez les appels système et automatisez les sessions GDB avec pwndbg. Tu pratiques Cyber Security Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Cyber Security Academy ?

Aucune expérience préalable n'est requise. Cyber Security Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « Analyse dynamique avec GDB et pwndbg » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Cyber Security Academy ?

Oui. Chaque leçon Cyber Security Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Ghidra : parcourir et annoter des binaires
  2. Notions essentielles d’assembleur x86/x64 pour la rétro-ingénierie
  3. Analyse dynamique avec GDB et pwndbg
  4. Désobfuscation et techniques anti-analyse
← Retour à Cyber Security Academy