Timing Attack Tabanlı Anti-Debug Teknikleri
Timing attack tabanlı anti-debug teknikleri, programın belirli kod bloklarını çalıştırma süresini ölçerek debugger varlığını anlamaya çalışır. Debugger altında adım adım çalıştırma, breakpoint ve analiz işlemleri yürütme süresini artırabilir. Malware bu zaman farkını kullanarak analiz ortamını tespit edebilir. GetTickCount() GetTickCount()
Giris ve Temel Akis
Timing attack tabanlı anti-debug teknikleri, programın belirli kod bloklarını çalıştırma süresini ölçerek debugger varlığını anlamaya çalışır. Debugger altında adım adım çalıştırma, breakpoint ve analiz işlemleri yürütme süresini artırabilir. Malware bu zaman farkını kullanarak analiz ortamını tespit edebilir. GetTickCount() GetTickCount()
Bu bölümün pratik akışı şu sırayla ilerler:
- Başlangıç Zamanını Al
- Kod Bloğunu Çalıştır
- Bitiş Zamanını Al
- Zaman Farkını Hesapla
- Eşik Değerle Karşılaştır
- DebuggerDetected
- ContinueExecution
Temel Kavram Eslesmeleri
Timing tabanlı anti-debug teknikleri farklı zaman ölçüm API ve komutlarını kullanabilir.
- GetTickCount: Sistem açılışından beri geçen süreyi milisaniye cinsinden verir
- QueryPerformanceCounter: Yüksek hassasiyetli zaman ölçümü sağlar
- RDTSC: CPU time-stamp counter değerini okur
- GetSystemTime: Sistem tarih ve saat bilgisini alır
Ilk Cekirdek Kavram
Bu bölümde öne çıkan çekirdek kavram RDTSC olarak verilir. Debugger altında kodun yavaş çalışması, zaman farkı ölçümleriyle tespit edilebilir.
Arac, Komut veya Inceleme Akisi
Reverse engineer, timing tabanlı anti-debug kontrollerini analiz ederken zaman ölçümü yapılan alanları bulur ve koşullu dallanmayı inceler.
Bu bölümün pratik akışı şu sırayla ilerler:
- Breakpoint Yerleştir
- Zaman API Çağrısını Bul
- İlk Zaman Değerini Kaydet
- İkinci Zaman Değerini Kaydet
- Delta Hesabını İncele
- Koşulu Bypass Et
Kanit ve Bilesen Iliskileri
Timing kontrollerinde ölçülen değerler farklı anlamlara gelir.
- Start Time: Kod bloğu çalışmadan önce alınan zaman
- End Time: Kod bloğu çalıştıktan sonra alınan zaman
- Delta: İki zaman değeri arasındaki fark
- Threshold: Debugger şüphesi için belirlenen eşik
Ikincil Odak Noktasi
Bu bölümde öne çıkan çekirdek kavram Delta olarak verilir. Timing anti-debug yöntemlerinde iki zaman ölçümü arasındaki fark hesaplanır ve eşik değerle karşılaştırılır.
Operasyonel Dogrulama ve Raporlama
Timing tabanlı kontroller debugger tespit ettiğinde malware farklı savunma davranışları gösterebilir.
Bu bölümün pratik akışı şu sırayla ilerler:
- Zaman Farkını Ölç
- Eşik Aşımını Tespit Et
- Debugger Şüphesi Oluştur
- Payload Gizle
- Sahte Akışa Geç
- Programı Sonlandır
Cikti ve Kullanım Amaci
Timing tabanlı anti-debug kontrolleri çeşitli bypass teknikleriyle analiz edilebilir hale getirilebilir.
- API Hooking: Zaman API'lerinin döndürdüğü değeri kontrol etmek
- Patch Threshold: Eşik değerini etkisiz hale getirmek
- NOP Patch: Kontrol talimatlarını geçersizleştirmek
- Conditional Jump Patch: Debugger tespit dallanmasını değiştirmek
Son Kavram ve Cikis
Bu bölümde öne çıkan çekirdek kavram Threshold olarak verilir. Timing attack tabanlı anti-debug tekniklerinin temel amacı, debugger altında oluşan gecikmeyi yakalamaktır.
Bu Egitimden Ne Kazanirsiniz?
Bu icerik, Timing Attack Tabanlı Anti-Debug Teknikleri 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: GetTickCount, QueryPerformanceCounter, RDTSC, GetSystemTime, Start Time, End Time, Delta, Threshold, API Hooking, Patch Threshold. Egitimin mantigi; once temel akis kurmak, sonra eslestirme ve kavram netlestirme yapmak, en sonda ise bulguyu operasyonel bir sonuca baglamaktir.