Malware Disassembler ve Debugger Kullanımı: Zararlı Yazılımların Davranışını Derinlemesine Anlamak
Zararlı yazılımların ne yaptığını gerçek anlamda kavramanın yolu, onları parçalara ayırıp adım adım incelemekten geçer. Bu noktada disassembler ve debugger araçları, malware analizinin vazgeçilmez iki temelidir. Bu makalede bu araçların ne işe yaradığını, nasıl kullanıldığını ve adli bilişim perspektifinden neden kritik olduklarını anlatıyoruz.
1. Disassembler ve Debugger Nedir?
Disassembler (Ayrıştırıcı)
Derlenmiş makine kodunu (binary) tekrar assembly seviyesine çevirir.
- Kodun genel yapısını görmeyi sağlar
- Fonksiyonlar ve akış mantığı analiz edilir
- Statik analiz için kullanılır
Debugger (Hata Ayıklayıcı)
Programı çalıştırarak, adım adım izlemeye yarar.
- Gerçek zamanlı davranış gözlemlenir
- Bellek, register ve API çağrıları takip edilir
- Dinamik analiz yapılır
2. Malware Analizinde Neden Bu Araçlar Kullanılır?
- Packed ve obfuscated kodları çözmek
- Anti-VM / anti-debug tekniklerini görmek
- Şifreleme, C2 ve persistence mantığını anlamak
- Zararlı davranışı kesin olarak doğrulamak
3. Disassembler ile Statik Analiz Süreci
Disassembler kullanırken tipik adımlar:
1 - Binary dosyayı yükleme
2 - Entry Point tespiti
3 - Fonksiyon keşfi
4 - API çağrılarının analizi
5 - Kontrol akışı (CFG) inceleme
1EntryPoint:2push ebp3mov ebp, esp4call GetModuleHandleA4. Şüpheli API ve Kod Kalıpları
Disassembler’da sık rastlanan tehlikeli API’ler:
- VirtualAlloc
- WriteProcessMemory
- CreateRemoteThread
- WinExec
- InternetOpenUrl
1call VirtualAlloc2call WriteProcessMemory3call CreateRemoteThread5. Debugger ile Dinamik Analiz
Debugger sayesinde malware’i kontrollü ortamda çalıştırırsın.
Yapılabilen işlemler:
- Breakpoint koyma
- Register takibi
- Bellek dump alma
- API çağrılarını yakalama
1bp kernel32!CreateFileA2bp ws2_32!connect6. Packed Malware ve Debugger Kullanımı
Packed malware’lerde:
- Kod başlangıçta anlamsızdır
- Gerçek kod, runtime’da açılır
Çözüm:
- Entry Point’ten sonra jmp / call takip edilir
- Unpack tamamlandığında bellek dump alınır
1dump memory 0x401000 size 0x200007. Anti-Debug ve Anti-Analysis Teknikleri
Malware’ler analizden kaçmak için:
- IsDebuggerPresent
- CheckRemoteDebuggerPresent
- Zaman gecikmeleri
- Exception abuse
kullanabilir.
1call IsDebuggerPresent2test eax, eax3jne exit8. Gerçekçi Analiz Senaryosu
Olay:
Bir EXE dosyası çalıştığında hemen kapanıyor.
Analiz:
Disassembler: Anti-debug kontrolü var
Debugger: IsDebuggerPresent breakpoint’i
Patch: Jump koşulu ters çevrilir
1jne exit → je exit9. Adli Bilişim Açısından Önemi
- Malware’in niyetini kanıta dönüştürür
- C2 adresleri ve şifreleme anahtarları çıkarılabilir
- Hukuki raporlarda teknik doğrulama sağlar
10. İpuçları ve En İyi Uygulamalar
- Analizi mutlaka izole VM’de yap
- Snapshot almadan çalıştırma
- Önce disassembler, sonra debugger kullan
- Her adımı notla ve hash’le
- Anti-debug patch’lerini belgele
Disassembler ve debugger kullanımı, malware analizinin en derin ve en öğretici aşamasıdır. Disassembler ile yapıyı, debugger ile davranışı anlarsın. Özellikle gizlenmiş, packed ve hedefli zararlılarda bu araçlar olmadan yapılan analizler yüzeysel kalır. Doğru tekniklerle kullanıldığında, bu araçlar zararlı yazılımın tüm sırlarını açığa çıkarır ve adli bilişim için güçlü, savunulabilir deliller üretir.
0 yorum