GDB ve pwndbg ile Dinamik Analiz
Kesme noktaları belirleyin, belleği inceleyin, sistem çağrılarını izleyin ve pwndbg ile GDB oturumlarını otomatikleştirin.
GDB ve pwndbg ile Dinamik Analiz, CoddyKit'te ücretsiz bir Cyber Security Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Cyber Security Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Cyber Security Academy kursu toplamda 4 dersten oluşur.
Dinamik Analiz Nedir?
Dinamik analiz, bir ikili dosyayı çalıştırır ve davranışını gerçek zamanlı olarak gözlemler: bellek içerikleri, yazmaç değerleri, sistem çağrıları ve ağ bağlantıları. Gerçek çalışma zamanı değerlerini ve denetim akışını göstererek statik analizi (Ghidra) tamamlar.
GDB Temelleri
GDB (GNU Hata Ayıklayıcısı), standart Linux hata ayıklayıcısıdır:
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 intopwndbg Geliştirmesi
pwndbg, istismar geliştirmeye yardımcı araçlar ekleyen bir GDB eklentisidir:
- Her duraklamada görsel yığın/yazmaç görüntüsü
cyclicörüntüsü oluşturma- Öbek görselleştirme için
heapkomutu - Rop zinciri parçalarını bulmak için
roparacı - İkili dosya korumaları için
checksec
git clone https://github.com/pwndbg/pwndbg && ./setup.shKesme Noktaları ve İzleme Noktaları
Yürütmeyi denetleyin:
# 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 1Belleği ve Yazmaçları İnceleme
Durumu inceleme:
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 displayKodda Adım Adım İlerleme
Gezinme komutları:
ni (nexti) # step over (instruction level)
si (stepi) # step into (instruction level)
finish # run until function returns
until 0x401234 # run until addressGDB ile Betik Yazma
GDB'yi Python ile otomatikleştirin:
# GDB Python script:
gdb ./vuln << EOF
python
for i in range(10):
gdb.execute("continue")
gdb.execute("x/4xg $rsp")
end
EOFpwndbg ile Öbek Analizi
pwndbg'deki öbek inceleme komutları:
heap # show all heap chunks
heap -a # show all allocations
bin # show free list bins
tcachebins # show tcache entries
vis_heap_chunks # visual heap mapSistem Çağrılarını İzleme
Tam hata ayıklama yapmadan sistem çağrılarını izlemek için strace kullanın:
strace ./vuln # trace all syscalls
strace -e trace=open,read,write ./vuln # filter syscalls
strace -f ./vuln # follow forks
# ltrace for library calls:
ltrace ./vulnHata Ayıklama Ortamı Kurma
İstismar geliştirme için önemli kurulumlar:
# 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 baseSimgeleri Ayıklanmış İkili Dosyalarda Hata Ayıklama
Üretimde kullanılan birçok ikili dosyanın hata ayıklama simgeleri ayıklanmıştır. Teknikler:
- İkili dosyayı anlamak için
filevereadelfkullanın - Simgeler yerine adreslerde kesme noktaları belirleyin
- Yaygın kitaplık çağrılarını belirlemek için işlev imzalarını kullanın
- Varsa libc simgelerini ayrıca yükleyin
Hızlı Kontrol: GDB
GDB'de yalnızca belirli bir koşul karşılandığında tetiklenen kesme noktasını hangi komut ayarlar?
Ders Özeti
pwndbg ile GDB; kesme noktaları ayarlamayı, yazmaçları ve belleği incelemeyi ve yürütmeyi izlemeyi sağlayarak dinamik analizi mümkün kılar. Temel komutlar: break, run, ni/si, x/format, info registers. pwndbg; öbek görselleştirme, yığın içeriğini katmanlı görüntüleme ve örüntü araçları ekler. strace/ltrace, tam bir hata ayıklama kurulumu olmadan sistem çağrılarını ve kitaplık çağrılarını izler.
Sıkça Sorulan Sorular
“GDB ve pwndbg ile Dinamik Analiz” dersi ücretsiz mi?
Evet — “GDB ve pwndbg ile Dinamik Analiz” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Cyber Security Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Cyber Security Academy kursu toplamda 4 dersten oluşur.
“GDB ve pwndbg ile Dinamik Analiz” dersinde ne öğreneceğim?
Kesme noktaları belirleyin, belleği inceleyin, sistem çağrılarını izleyin ve pwndbg ile GDB oturumlarını otomatikleştirin. Cyber Security Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Cyber Security Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Cyber Security Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“GDB ve pwndbg ile Dinamik Analiz” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Cyber Security Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Cyber Security Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Ghidra: İkili Dosyalarda Gezinme ve Açıklama Ekleme
- Tersine Mühendisler için x86/x64 Assembly Temelleri
- GDB ve pwndbg ile Dinamik Analiz
- Karartma Açma ve Analiz Karşıtı Teknikler