İçeriğe atla
0 XP 0
0/6

Puan ders bitince hesaba yazılır. Bu dersi tamamlayınca +55 XP alacaksın. Giriş yapmadan ilerlersen puan yalnız bu tarayıcıda durur.

9 dk · 55 XP · 6 etkinlik

Disassembler ile akış okumak

Disassembler baytları komutlara çevirir. Sonra o komutları bloklara böler ve bloklar arası atlamaları çizer. Ortaya çıkan grafiğe akış grafiği denir ve programın karar yapısını gösterir.

Araç seçimi zevk meselesidir. Ghidra ücretsizdir ve güçlü bir geri derleyici taşır. IDA ticari standarttır. radare2 ile devamı olan rizin komut satırında çalışır ve betiklemeye çok uygundur.

$ r2 -A -q -c 'afl' ornek.bin | head
0x00401136  42  1  main
0x004011a0  86  3  sym.yapilandirma_coz
0x00401220  120 5  sym.baglan

$ r2 -A -q -c 'pdf @ sym.yapilandirma_coz' ornek.bin
afl yordamları listeler, pdf seçilen yordamı basar.

Assembly satırları yordamlar arası aktarımı gösterir. mov bir değeri bir kayıtçıya taşır, cmp iki değeri karşılaştırır, test bit düzeyinde karşılaştırma yapar. Karşılaştırma sonrası gelen atlama komutu (je, jne, jle) bayrak kaydına bakar ve akışı ona göre böler.

Bir yordam çağrısından sonra dönen değer genelde eax kayıtçısında durur. strcmp gibi karşılaştırma çağrıları eşitlikte sıfır döndürür. Sonraki test ve atlama komutu bu sıfırı okuyarak doğru ya da yanlış yola karar verir.