0Pricing
Cyber Security Academy · Lektion

Dynamische Analyse mit GDB und pwndbg

Setzen Sie Breakpoints, untersuchen Sie Speicher, verfolgen Sie Systemaufrufe und automatisieren Sie GDB-Sitzungen mit pwndbg.

Dynamische Analyse mit GDB und pwndbg ist eine kostenlose Cyber Security Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Cyber Security Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Cyber Security Academy-Kurs umfasst insgesamt 4 Lektionen.

Was ist dynamische Analyse

Dynamische Analyse führt ein Binärprogramm aus und beobachtet sein Verhalten in Echtzeit: Speicherinhalte, Registerwerte, Systemaufrufe und Netzwerkverbindungen. Sie ergänzt die statische Analyse (Ghidra), indem sie tatsächliche Laufzeitwerte und den Kontrollfluss zeigt.

GDB-Grundlagen

GDB (GNU Debugger) ist der Standard-Debugger unter 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

pwndbg-Erweiterung

pwndbg ist ein GDB-Plugin, das Hilfsfunktionen für die Exploit-Entwicklung ergänzt:

  • Visuelle Anzeige von Stack und Registern bei jedem Breakpoint
  • Erzeugung von cyclic-Mustern
  • heap-Befehl zur Heap-Visualisierung
  • rop-Gadget-Finder
  • Binärprogrammschutz mit checksec
git clone https://github.com/pwndbg/pwndbg && ./setup.sh

Breakpoints und Watchpoints

Ausführung steuern:

# 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

Speicher und Register untersuchen

Zustand untersuchen:

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

Schrittweise durch den Code gehen

Navigationsbefehle:

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

GDB skripten

GDB mit Python automatisieren:

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

Heap mit pwndbg analysieren

Befehle zur Heap-Inspektion in 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

Systemaufrufe verfolgen

Verwenden Sie strace, um Systemaufrufe ohne vollständiges Debugging zu verfolgen:

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

Debugging-Umgebung einrichten

Wichtige Einrichtungsschritte für die Exploit-Entwicklung:

# 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

Stripped Binaries debuggen

Bei vielen Produktions-Binärprogrammen wurden die Debug-Symbole entfernt. Techniken:

  • Verwenden Sie file und readelf, um das Binärprogramm zu untersuchen
  • Setzen Sie Breakpoints an Adressen statt an Symbolen
  • Verwenden Sie Funktionssignaturen, um gängige Bibliotheksaufrufe zu identifizieren
  • Laden Sie libc-Symbole separat, falls verfügbar

Schnelltest: GDB

Welcher Befehl in GDB setzt einen Breakpoint, der nur ausgelöst wird, wenn eine bestimmte Bedingung erfüllt ist?

Zusammenfassung der Lektion

GDB mit pwndbg ermöglicht dynamische Analyse: Breakpoints setzen, Register und Speicher untersuchen und die Ausführung verfolgen. Wichtige Befehle: break, run, ni/si, x/format, info registers. pwndbg ergänzt Heap-Visualisierung, Stack-Telescoping und Musterwerkzeuge. strace/ltrace verfolgen Systemaufrufe und Bibliotheksaufrufe ohne vollständige Debugging-Einrichtung.

Häufig gestellte Fragen

Ist die Lektion „Dynamische Analyse mit GDB und pwndbg“ kostenlos?

Ja — der vollständige Text von „Dynamische Analyse mit GDB und pwndbg“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Cyber Security Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Cyber Security Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Dynamische Analyse mit GDB und pwndbg“?

Setzen Sie Breakpoints, untersuchen Sie Speicher, verfolgen Sie Systemaufrufe und automatisieren Sie GDB-Sitzungen mit pwndbg. Du übst Cyber Security Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Cyber Security Academy zu starten?

Keine Vorkenntnisse erforderlich. Cyber Security Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Dynamische Analyse mit GDB und pwndbg“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Cyber Security Academy-Lektion Code schreiben und ausführen?

Ja. Jede Cyber Security Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Ghidra: Binärdateien navigieren und annotieren
  2. Grundlagen der x86/x64-Assembly für Reverse Engineers
  3. Dynamische Analyse mit GDB und pwndbg
  4. Deobfuscation und Anti-Analyse-Tricks
← Zurück zu Cyber Security Academy