0Pricing
Cyber Security Academy · Ders

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 into

pwndbg 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 heap komutu
  • Rop zinciri parçalarını bulmak için rop aracı
  • İkili dosya korumaları için checksec
git clone https://github.com/pwndbg/pwndbg && ./setup.sh

Kesme 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 1

Belleğ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 display

Kodda 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 address

GDB 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
EOF

pwndbg 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 map

Sistem Ç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 ./vuln

Hata 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 base

Simgeleri 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 file ve readelf kullanı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

  1. Ghidra: İkili Dosyalarda Gezinme ve Açıklama Ekleme
  2. Tersine Mühendisler için x86/x64 Assembly Temelleri
  3. GDB ve pwndbg ile Dinamik Analiz
  4. Karartma Açma ve Analiz Karşıtı Teknikler
← Cyber Security Academy Sayfasına Dön