CyberFlow Logo CyberFlow BLOG
Soc L3 Reverse Engineering

Timing Attack Tabanlı Anti-Debug Teknikleri

✍️ Ahmet BİRKAN 📂 Soc L3 Reverse Engineering

Timing Attack Tabanlı Anti-Debug Teknikleri konusunu SOC L3 - Tersine Mühendislik - Anti-Debug ve Kernel Analizi baglaminda blog formatinda ogrenin. Temel akis, kavram eslestirmeleri ve analiz mantigi tek bir yapida birlestirildi.

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.