GDB (GNU Debugger), C ve C++ gibi derlenmiş dillerle yazılmış programları hata ayıklamak için kullanılan güçlü bir araçtır.
GDB’yi Başlatmak
GDB, genellikle terminalden aşağıdaki gibi başlatılır:
gdb ./program

1. help
GDB içindeki komutları ve kategorileri listeler.
(gdb) help
Bu komutla birlikte hangi komutun ne işe yaradığını görebilirsiniz.

2. checksec
Binary’nin güvenlik önlemlerini kontrol etmek için kullanılır. Bu komut gef ya da pwndbg gibi GDB eklentileri yüklü ise çalışır.
(gdb) checksec
Bu özellikler binary’nin istismar edilebilirliğini doğrudan etkiler. Hangi güvenlik kontrollerinin ne anlama geldiğini daha sonra inceleyeceğiz.

3. info functions
Programdaki tüm fonksiyonları listeler.
(gdb) info functions
Bu komut, main gibi giriş fonksiyonlarını bulmak için kullanışlıdır.

4. disassemble main
Belirtilen fonksiyonun assembly kodlarını döker.
(gdb) disassemble main
Bu komutla main fonksiyonunun makine dilinde nasıl yazılmış olduğunu görürüz.

5. r (run)
Programı başlatır.
(gdb) r

6. break *breakpointadress
Belirtilen adresin bulunduğu noktaya durma noktası koyar.
(gdb) break *breakpointadress
Bu sayede kodun yürütülmesini tam olarak istediğiniz adreste durdurabilirsiniz.

7. info breakpoints
Tanımlı tüm breakpoints’leri gösterir.
(gdb) info breakpoints
Buradan aktif/inaktif durumları ve adresleri görebilirsiniz.

8. c (continue)
Kodun yürütülmesini breakpoint’e kadar devam ettirir.
(gdb) c

9. disable 1
Belirtilen ID’ye sahip breakpoint’i devre dışı bırakır.
(gdb) disable 1
1, info breakpoints ile listelenen ID’dir.


10. nexti ve stepi
Assembly seviyesinde adım adım ilerlemeyi sağlar:
nexti(ni): Bir sonraki instruction’a geçer (fonksiyonlara girmez).stepi(si): Bir sonraki instruction’a geçer ve fonksiyon varsa içine girer.
(gdb) nexti
(gdb) stepi
Bu komutlar özellikle fonksiyon çağrılarını analiz etmek için faydalıdır.
11. info registers
Tüm CPU kayıtlarının (registers) mevcut değerlerini gösterir.
(gdb) info registers
Bu komutla EAX, EBX, EIP, ESP gibi kayıtların anlık değerlerini takip edebilirsiniz.

12. info stack
Yığının (stack) içeriğini ve çağrı geçmişini gösterir.
(gdb) info stack
Fonksiyon çağrı sırası ve yığın üzerindeki değerler hakkında bilgi verir.

13. vmmap
Bellek segmentlerinin detaylı haritasını verir. Yalnızca gef veya pwndbg yüklüyse çalışır.
(gdb) vmmap
- Kod segmenti (text)
- Veri segmenti (data)
- Stack, heap Bu alanların adres aralıklarını ve izinlerini gösterir.

Kaynakça:
Exploit Geliştirme 101 (2. Baskı) – M. ALPARSLAN AKYILDIZ
Hacking: The Art of Exploitation, 2nd Edition