NtGlobalFlag Anti-Debug Kontrolleri
NtGlobalFlag, Windows Process Environment Block (PEB) içerisinde bulunan ve süreç davranışlarını etkileyen bir alandır. Bir süreç debugger altında başlatıldığında belirli NtGlobalFlag bitleri aktif hale gelir. Malware'ler bu değeri kontrol ederek analiz ortamlarını tespit etmeye çalışır. mov rax, gs:[60h] mov eax, [rax+0BCh] and eax, 70h cmp eax, 70h je DebuggerDetected jmp ContinueExecution
Giris ve Temel Akis
NtGlobalFlag, Windows Process Environment Block (PEB) içerisinde bulunan ve süreç davranışlarını etkileyen bir alandır. Bir süreç debugger altında başlatıldığında belirli NtGlobalFlag bitleri aktif hale gelir. Malware'ler bu değeri kontrol ederek analiz ortamlarını tespit etmeye çalışır. mov rax, gs:[60h] mov eax, [rax+0BCh] and eax, 70h cmp eax, 70h je DebuggerDetected jmp ContinueExecution
Bu bölümün pratik akışı şu sırayla ilerler:
- PEB Adresini Al
- NtGlobalFlag Alanını Oku
- 70h Maskesi Uygula
- Sonucu Karşılaştır
- DebuggerDetected
- ContinueExecution
Temel Kavram Eslesmeleri
NtGlobalFlag içerisinde debugger varlığını gösterebilen çeşitli bayraklar bulunur.
- FLG_HEAP_ENABLE_TAIL_CHECK: Heap sonu kontrolünü etkinleştirir
- FLG_HEAP_ENABLE_FREE_CHECK: Heap serbest bırakma kontrollerini etkinleştirir
- FLG_HEAP_VALIDATE_PARAMETERS: Heap parametre doğrulaması yapar
- NtGlobalFlag: Debug ortamı göstergeleri içerir
Ilk Cekirdek Kavram
Bu bölümde öne çıkan çekirdek kavram NtGlobalFlag olarak verilir. Birçok malware örneği debugger altında çalıştırılıp çalıştırılmadığını anlamak için NtGlobalFlag alanını kontrol eder.
Arac, Komut veya Inceleme Akisi
Reverse engineer'lar NtGlobalFlag tabanlı anti-debug mekanizmalarını analiz ederken belirli bir metodoloji uygular.
Bu bölümün pratik akışı şu sırayla ilerler:
- PEB Bul
- NtGlobalFlag Ofsetine Git
- Değeri Oku
- Bit Maskesi Uygula
- Koşullu Dallanmayı İncele
Kanit ve Bilesen Iliskileri
NtGlobalFlag kontrolleri farklı sonuçlar üretebilir.
- 0x70: Debugger altında başlatılmış süreç göstergesi
- 0x00: Normal süreç çalışması
- JE: Eşitlik durumunda debugger akışına geçiş
- JMP: Normal çalışma akışına geçiş
Ikincil Odak Noktasi
Bu bölümde öne çıkan çekirdek kavram 70h olarak verilir. NtGlobalFlag kontrollerinde genellikle belirli bitler kontrol edilerek debugger varlığı anlaşılır.
Operasyonel Dogrulama ve Raporlama
Anti-debug bypass işlemlerinde NtGlobalFlag kontrolü genellikle patch edilerek etkisiz hale getirilir.
Bu bölümün pratik akışı şu sırayla ilerler:
- Breakpoint Yerleştir
- NtGlobalFlag Kontrolüne Ulaş
- CMP Talimatını Bul
- Koşulu Patch Et
- Programı Devam Ettir
Cikti ve Kullanım Amaci
Reverse engineering sırasında çeşitli anti-debug bypass yöntemleri uygulanabilir.
- NOP Patch: Kontrol talimatını etkisiz hale getirir
- Flag Modification: Debugger göstergelerini değiştirir
- Memory Patching: Bellekteki değerleri değiştirir
- Conditional Jump Patch: Dallanma mantığını değiştirir
Son Kavram ve Cikis
Bu bölümde öne çıkan çekirdek kavram PEB olarak verilir. NtGlobalFlag, debugger tespiti için kullanılan birçok PEB tabanlı mekanizmadan biridir.
Bu Egitimden Ne Kazanirsiniz?
Bu icerik, NtGlobalFlag Anti-Debug Kontrolleri 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: FLG_HEAP_ENABLE_TAIL_CHECK, FLG_HEAP_ENABLE_FREE_CHECK, FLG_HEAP_VALIDATE_PARAMETERS, NtGlobalFlag, 0x70, 0x00, JE, JMP, NOP Patch, Flag Modification. Egitimin mantigi; once temel akis kurmak, sonra eslestirme ve kavram netlestirme yapmak, en sonda ise bulguyu operasyonel bir sonuca baglamaktir.