Debugger Tespit Mekanizmaları (IsDebuggerPresent)
Zararlı yazılımlar analiz edilmekten kaçınmak için debugger tespit mekanizmaları kullanır. En yaygın yöntemlerden biri IsDebuggerPresent API'sidir. Bu API çalıştırılan sürecin bir debugger altında olup olmadığını kontrol eder. BOOL result; result = IsDebuggerPresent(); if(result) { } else { RunPayload(); }
Giris ve Temel Akis
Zararlı yazılımlar analiz edilmekten kaçınmak için debugger tespit mekanizmaları kullanır. En yaygın yöntemlerden biri IsDebuggerPresent API'sidir. Bu API çalıştırılan sürecin bir debugger altında olup olmadığını kontrol eder. BOOL result; result = IsDebuggerPresent(); if(result) { } else { RunPayload(); }
Bu bölümün pratik akışı şu sırayla ilerler:
- IsDebuggerPresent()
- Sonucu Kontrol Et
- Debugger Tespit Edildi
- ExitProcess(0)
Temel Kavram Eslesmeleri
Anti-debug teknikleri farklı API ve mekanizmalar kullanabilir.
- IsDebuggerPresent: Debugger varlığını kontrol eder
- CheckRemoteDebuggerPresent: Başka süreçte debugger kontrolü yapar
- NtQueryInformationProcess: Debug bilgilerini sorgular
- OutputDebugString: Debugger davranışını test eder
Ilk Cekirdek Kavram
Bu bölümde öne çıkan çekirdek kavram IsDebuggerPresent olarak verilir. Windows üzerinde çalışan birçok malware ilk olarak standart debugger kontrol API'sini çağırır.
Arac, Komut veya Inceleme Akisi
Bir reverse engineer debugger tespit mekanizmasını analiz ederken API çağrısını ve dönen değeri takip eder.
Bu bölümün pratik akışı şu sırayla ilerler:
- Breakpoint Koy
- API Çağrısını Yakala
- Dönen Değeri İncele
- Koşullu Dallanmayı Analiz Et
- Payload Akışını Takip Et
Kanit ve Bilesen Iliskileri
Debugger tespitinde bazı API dönüş değerleri kritik anlam taşır.
- TRUE: Debugger tespit edildi
- FALSE: Debugger tespit edilmedi
- ExitProcess: Analizi sonlandırma girişimi
- RunPayload: Normal çalışma akışı
Ikincil Odak Noktasi
Bu bölümde öne çıkan çekirdek kavram ExitProcess olarak verilir. Bir malware debugger algıladığında sıklıkla çalışmasını sonlandırır veya sahte kod yollarına yönelir.
Operasyonel Dogrulama ve Raporlama
x64dbg veya WinDbg kullanılarak anti-debug mekanizmaları analiz edilir.
Bu bölümün pratik akışı şu sırayla ilerler:
- Programı Başlat
- Breakpoint Yerleştir
- API Çağrısına Ulaş
- Registerları İncele
- Koşulu Bypass Et
Cikti ve Kullanım Amaci
Reverse engineering sırasında farklı debugger araçları kullanılabilir.
- x64dbg: Kullanıcı modu dinamik analiz
- WinDbg: Kernel ve kullanıcı modu hata ayıklama
- IDA Pro: Statik analiz ve disassembly
- Ghidra: Açık kaynak tersine mühendislik
Son Kavram ve Cikis
Bu bölümde öne çıkan çekirdek kavram Anti-Debug olarak verilir. Bazı malware'ler debugger tespitinden sonra gerçek payload yerine yanıltıcı kod çalıştırır.
Bu Egitimden Ne Kazanirsiniz?
Bu icerik, Debugger Tespit Mekanizmaları (IsDebuggerPresent) konusunu SOC L3 - Tersine Mühendislik - Anti-Debug ve Kernel Analizi baglaminda parcali degil, butunlu bir ogrenme akisina donusturur. Yalnizca kavramlari ezberlemek yerine surec sirasini, bilesenler arasi iliskiyi ve hangi kanitin neden onemli oldugunu kavramayi hedefler.
Ozet
Bu ders kapsaminda one cikan basliklar: IsDebuggerPresent, CheckRemoteDebuggerPresent, NtQueryInformationProcess, OutputDebugString, TRUE, FALSE, ExitProcess, RunPayload, x64dbg, WinDbg. Egitimin mantigi; once temel akis kurmak, sonra eslestirme ve kavram netlestirme yapmak, en sonda ise bulguyu operasyonel bir sonuca baglamaktir.