İçeriğe geç
SOFTPUSULATeknoloji • Bilim • Yaşam • Deneyim

Tersine Mühendislik Engelleme ve İkili Kod Gizleme (Binary Obfuscation) Teknikleri

Zararlı yazılımların ve telif hakkı korumalı uygulamaların analiz edilmesini zorlaştıran gelişmiş kod karartma ve sanallaştırma teknikleri.

Tersine Mühendislik Engelleme ve İkili Kod Gizleme (Binary Obfuscation) Teknikleri
✓ Kaynak kontrolü✓ Güncel içerik

Tersine Mühendislik Engelleme ve İkili Kod Gizleme

Özellik ne işe yarar?

Yazılım üreticileri fikri mülkiyetlerini (IP) korumak, oyun geliştiricileri hileleri engellemek, güvenlik araştırmacıları ise zararlı yazılımları analiz etmek için Tersine Mühendislik (Reverse Engineering) tekniklerine başvururlar. Saldırganlar IDA Pro, Ghidra veya x64dbg gibi hata ayıklayıcı (debugger) ve dekompile araçlarıyla derlenmiş ikili dosyaları (EXE, DLL, ELF) açarak kaynak kodu neredeyse orijinal haline getirebilirler. İkili Kod Gizleme (Binary Obfuscation), derlenmiş makine kodunun işlevselliğini ve çıktısını kesinlikle bozmadan, tersine mühendislik araçlarının ve analistlerin kodu anlamasını matematiksel olarak imkansız hale getirme işlemidir. Bu teknoloji, denetim akışını karmaşıklaştırır (Control Flow Flattening), ölü kodlar (junk code) ekler, sabit string ifadelerini şifreler ve uygulamanın kendi içinde küçük bir sanal makine (Control Flow Virtualization) çalıştırarak kodun klasik dekompile araçlarında açılmasını engeller.

Nasıl uygulanır?

Kod karartma işlemleri doğrudan derleme aşamasında (LLVM tabanlı araçlarla – OLLVM) veya derleme sonrasında (Post-processing araçlarıyla – VMProtect, Themida) uygulanır. LLVM tabanlı derleyici seviyesinde gizleme uygulamak için özel geçişler (passes) tanımlanır. Bu adımlarda fonksiyon isimleri anlamsız sembollerle değiştirilir (symbol stripping), IF-ELSE blokları karmaşık matris denklemlerine dönüştürülür ve bellek adresi üzerindeki kontrol akışları rastgele sıçramalarla (indirect jumps) karartılır. Ayrıca uygulamanın çalışma zamanında (runtime) bir hata ayıklayıcı (debugger) altında çalışıp çalışmadığını kontrol eden Anti-Debugging ve Anti-VM kod blokları uygulamanın giriş noktasına (Entry Point) yerleştirilir.

İyi sonuç için ipuçları

Tüm uygulamayı ağır sanallaştırma ve karartma algoritmalarıyla kaplamak işlemci yükünü artırabilir ve uygulamanın çalışma performansını %30-50 oranında düşürebilir. Bu nedenle karartma işlemini uygulamanın tamamına değil, sadece lisans doğrulama, şifreleme anahtar yönetimi ve kritik algoritma bloklarına uygulayın. Şifrelenmiş string ifadelerini belleğe sadece kullanılacağı milisaniyede çıkarıp işlem biter bitmez bellekten güvenle silen (zeroing) dinamik çözücüler kullanın.

Dikkat edilmesi gerekenler

Aşırı düzeyde uygulanan kod karartma teknikleri, antivirüs ve EDR (Endpoint Detection and Response) yazılımlarının uygulamanızı \’şüpheli / zararlı yazılım\’ (heuristic detection) olarak işaretlemesine neden olabilir. Uygulama ikili dosyalarınızı dağıtmadan önce kod imzalama (Code Signing) sertifikaları ile dijital olarak doğrulayın ve antivirüs laboratuvarlarına önceden bildirim yapın.

SELÇUK profil fotoğrafı
İÇERİĞİ HAZIRLAYAN

SOFTPUSULA YAZARI
SoftPusula Editörü

Teknoloji, yazılım ve dijital dünyadaki gelişmeleri güvenilir kaynaklarla inceleyerek anlaşılır Türkçe ile aktarıyor.

330 yayınlanmış içerik
Kaynak ve alıntı bilgisi Orijinal kaynak Orijinal haberi aç ↗
BU İÇERİK NASILDI?

Görüşünüz bize yol gösterir.

Tek dokunuşla değerlendirin. Kişisel bilgi toplanmaz.

Yorum Yap

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir