Cyber Security Academy · Pelajaran

Analisis Dinamis dengan GDB dan pwndbg

Atur titik henti, periksa memori, lacak panggilan sistem, dan otomatisasikan sesi GDB dengan pwndbg.

Pelajaran 3 dari 413 langkah

Analisis Dinamis dengan GDB dan pwndbg adalah pelajaran Cyber Security Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Cyber Security Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Cyber Security Academy mencakup 4 pelajaran total.

Apa itu Analisis Dinamis

Analisis dinamis menjalankan biner dan mengamati perilakunya secara waktu nyata: isi memori, nilai register, panggilan sistem, dan koneksi jaringan. Analisis ini melengkapi analisis statis (Ghidra) dengan menampilkan nilai serta alur kontrol yang sebenarnya saat berjalan.

Dasar-Dasar GDB

GDB (GNU Pengawakutu) adalah pengawakutu Linux standar:

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

Peningkatan pwndbg

pwndbg adalah pengaya GDB yang menambahkan bantuan untuk pengembangan eksploitasi:

  • Tampilan visual tumpukan/register setiap kali eksekusi berhenti
  • Pembuatan pola cyclic
  • Perintah heap untuk visualisasi memori heap
  • Pencari potongan kode ROP
  • Pemeriksaan perlindungan biner dengan checksec
git clone https://github.com/pwndbg/pwndbg && ./setup.sh

Titik Henti dan Titik Pantau

Kendalikan eksekusi:

# 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

Memeriksa Memori dan Register

Memeriksa keadaan:

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

Menelusuri Kode Langkah demi Langkah

Perintah navigasi:

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

Membuat Skrip GDB

Otomatiskan GDB dengan Python:

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

Menganalisis Memori Heap dengan pwndbg

Perintah pemeriksaan memori heap dalam 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

Melacak Panggilan Sistem

Gunakan strace untuk melacak panggilan sistem tanpa pengawakutuan penuh:

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

Menyiapkan Lingkungan Pengawakutuan

Penyiapan penting untuk pengembangan eksploitasi:

# 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

Mengawakutu Biner Tanpa Simbol

Banyak biner produksi tidak memiliki simbol debug karena telah dihapus. Tekniknya:

  • Gunakan file dan readelf untuk memahami biner
  • Tetapkan titik henti pada alamat, bukan simbol
  • Gunakan tanda tangan fungsi untuk mengidentifikasi panggilan pustaka umum
  • Muat simbol libc secara terpisah jika tersedia

Pemeriksaan Singkat: GDB

Perintah apa dalam GDB yang menetapkan titik henti yang hanya aktif ketika kondisi tertentu terpenuhi?

Ringkasan Pelajaran

GDB dengan pwndbg memungkinkan analisis dinamis: menetapkan titik henti, memeriksa register dan memori, serta melacak eksekusi. Perintah utama: break, run, ni/si, x/format, info registers. pwndbg menambahkan visualisasi memori heap, penelusuran tumpukan, dan alat pola. strace/ltrace melacak panggilan sistem dan panggilan pustaka tanpa penyiapan pengawakutuan penuh.

Gratis untuk memulai

Belajar Cyber Security Academy dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
76
Pelajaran
303

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Analisis Dinamis dengan GDB dan pwndbg” gratis?

Ya — teks lengkap “Analisis Dinamis dengan GDB dan pwndbg” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Cyber Security Academy, upgrade ke CoddyKit PRO. Kursus Cyber Security Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Analisis Dinamis dengan GDB dan pwndbg”?

Atur titik henti, periksa memori, lacak panggilan sistem, dan otomatisasikan sesi GDB dengan pwndbg. Kamu berlatih Cyber Security Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Cyber Security Academy?

Tidak diperlukan pengalaman sebelumnya. Cyber Security Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Analisis Dinamis dengan GDB dan pwndbg” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Cyber Security Academy ini?

Ya. Setiap pelajaran Cyber Security Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Ghidra: Menavigasi dan Memberi Anotasi pada Biner
  2. Dasar-Dasar Assembly x86/x64 untuk Reverse Engineer
  3. Analisis Dinamis dengan GDB dan pwndbg
  4. Dek obfuskasi dan Trik Antianalisis
← Kembali ke Cyber Security Academy