CyberFlow Logo CyberFlow BLOG
Soc L3 Reverse Engineering

PEB Tabanlı Anti-Debug Teknikleri

✍️ Ahmet BİRKAN 📂 Soc L3 Reverse Engineering

PEB 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.

PEB Tabanlı Anti-Debug Teknikleri

Process Environment Block (PEB), Windows süreçleri hakkında önemli bilgileri tutar. Malware'ler debugger tespiti yapmak için doğrudan PEB içerisindeki BeingDebugged alanını kontrol edebilir. Bu yöntem IsDebuggerPresent API'sinden daha düşük seviyede çalıştığı için sık kullanılır. mov rax, gs:[60h] mov al, [rax+2] test al, al jne DebuggerDetected jmp ContinueExecution

Giris ve Temel Akis

Process Environment Block (PEB), Windows süreçleri hakkında önemli bilgileri tutar. Malware'ler debugger tespiti yapmak için doğrudan PEB içerisindeki BeingDebugged alanını kontrol edebilir. Bu yöntem IsDebuggerPresent API'sinden daha düşük seviyede çalıştığı için sık kullanılır. mov rax, gs:[60h] mov al, [rax+2] test al, al jne DebuggerDetected jmp ContinueExecution

Bu bölümün pratik akışı şu sırayla ilerler:

  • PEB Adresini Al
  • BeingDebugged Alanını Oku
  • Değeri Kontrol Et
  • DebuggerDetected
  • ContinueExecution

Temel Kavram Eslesmeleri

PEB içerisinde reverse engineering açısından önemli alanlar bulunur.

  • BeingDebugged: Debugger varlığını belirtir
  • ImageBaseAddress: Programın bellek başlangıç adresi
  • ProcessHeap: Sürecin heap yapısı
  • Ldr: Yüklenen modüllerin listesi

Ilk Cekirdek Kavram

Bu bölümde öne çıkan çekirdek kavram BeingDebugged olarak verilir. Malware'ler debugger kontrolü için sıklıkla PEB içerisindeki belirli bir byte değerini inceler.

Arac, Komut veya Inceleme Akisi

Reverse engineer'lar PEB tabanlı anti-debug kontrollerini analiz ederken belirli adımları izler.

Bu bölümün pratik akışı şu sırayla ilerler:

  • PEB Adresini Bul
  • BeingDebugged Alanına Git
  • Byte Değerini Oku
  • Koşullu Dallanmayı İncele
  • Bypass Uygula

Kanit ve Bilesen Iliskileri

PEB tabanlı anti-debug analizinde kullanılan yapılar farklı bilgiler sağlar.

  • PEB: Süreç bilgilerini tutar
  • TEB: Thread bilgilerini tutar
  • LDR_DATA_TABLE_ENTRY: Yüklenen modülleri tanımlar
  • ProcessHeap: Heap yönetimini sağlar

Ikincil Odak Noktasi

Bu bölümde öne çıkan çekirdek kavram GS olarak verilir. x64 mimarisinde PEB adresine erişmek için özel bir segment register kullanılır.

Operasyonel Dogrulama ve Raporlama

Bazı malware örnekleri debugger tespit ettikten sonra çalışmasını durdurur veya sahte kod yollarına yönelir.

Bu bölümün pratik akışı şu sırayla ilerler:

  • PEB Kontrolü
  • Debugger Tespit Et
  • Sahte Akışa Git
  • Payload Gizle
  • Programı Sonlandır

Cikti ve Kullanım Amaci

PEB tabanlı kontroller analiz sırasında farklı sonuçlar üretebilir.

  • BeingDebugged = 1: Debugger tespit edildi
  • BeingDebugged = 0: Debugger tespit edilmedi
  • JNE: Debugger durumuna göre dallanma
  • NOP Patch: Anti-debug bypass yöntemi

Son Kavram ve Cikis

Bu bölümde öne çıkan çekirdek kavram PEB olarak verilir. PEB tabanlı anti-debug mekanizmalarının amacı malware analizini zorlaştırmaktır.

Bu Egitimden Ne Kazanirsiniz?

Bu icerik, PEB 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: BeingDebugged, ImageBaseAddress, ProcessHeap, Ldr, PEB, TEB, LDR_DATA_TABLE_ENTRY, BeingDebugged = 1, BeingDebugged = 0, JNE. Egitimin mantigi; once temel akis kurmak, sonra eslestirme ve kavram netlestirme yapmak, en sonda ise bulguyu operasyonel bir sonuca baglamaktir.