Tersine Mühendislik (Reverse Engineering)
1. Giriş
Tersine mühendislik, bir yazılımın veya sistemin nasıl çalıştığını anlamak için iç yapısının analiz edilmesidir. Siber güvenlikte özellikle zararlı yazılımların (malware) davranışını çözmek, lisans mekanizmalarını incelemek ve güvenlik açıklarını tespit etmek için kullanılır.
2. Tersine Mühendislik Nedir?
Tersine mühendislik, derlenmiş (compiled) bir programın kaynak kodu olmadan analiz edilerek işleyişinin anlaşılması sürecidir.
Amaçlar:
-
Zararlı yazılım analizi
-
Güvenlik açıklarını bulma
-
Yazılım davranışını anlama
-
Lisans ve koruma mekanizmalarını çözme
3. Temel Kavramlar
3.1 Binary (İkili Dosya)
Makine dilinde derlenmiş programdır (.exe, .elf)
3.2 Assembly
İşlemcinin anlayabileceği düşük seviyeli programlama dili.
3.3 Disassembly
Binary kodun assembly’ye çevrilmesi.
3.4 Debugging
Programın adım adım çalıştırılarak analiz edilmesi.
4. Statik ve Dinamik Analiz
4.1 Statik Analiz
Program çalıştırılmadan incelenir.
Yapılan işlemler:
-
Strings analizi
-
Import/Export inceleme
-
Kod akışı analizi
4.2 Dinamik Analiz
Program çalıştırılarak davranışı gözlemlenir.
İncelenenler:
-
API çağrıları
-
Dosya aktiviteleri
-
Network bağlantıları
5. Assembly Temelleri
Örnek:
mov eax, 1
add eax, 2
Açıklama:
-
eaxregister’ına 1 atanır -
2 eklenir → sonuç: 3
6. Register ve Stack Kavramı
Register’lar:
-
EAX, EBX, ECX, EDX → genel amaçlı
-
ESP → stack pointer
-
EIP → instruction pointer
Stack:
Fonksiyon çağrıları ve değişkenler burada tutulur.
7. Fonksiyon Analizi
Bir fonksiyon genellikle şu yapıya sahiptir:
push ebp
mov ebp, esp
sub esp, 10
Bu yapı stack frame oluşturur.
8. Strings Analizi
Binary içinde bulunan string’ler çok önemli ipuçları verir.
Örnek:
http://malicious.com
password=1234
Bu bilgiler zararlı davranışları ortaya çıkarabilir.
9. Anti-Debug ve Anti-VM Teknikleri
Zararlı yazılımlar analiz edilmemek için çeşitli teknikler kullanır:
-
Debugger tespiti
-
Sanal makine kontrolü
-
Zaman geciktirme (sleep)
-
Obfuscation (kod karmaşıklaştırma)
10. Obfuscation ve Packing
Packing:
Kod sıkıştırılır ve gizlenir.
Obfuscation:
Kod anlaşılmaz hale getirilir.
Amaç:
Analizi zorlaştırmak
11. Kullanılan Araçlar
-
IDA Pro
-
Ghidra
-
x64dbg
-
OllyDbg
-
Radare2
12. Malware Analizinde Reverse Engineering
Süreç:
-
Dosya alınır
-
Hash kontrol edilir
-
Strings analizi yapılır
-
Disassembly yapılır
-
Davranış analiz edilir
13. Crackme ve Lisans Analizi
Tersine mühendislik genellikle lisans bypass için de kullanılır.
Örnek:
if (password == "1234")
Bu kontrol bypass edilebilir.
14. Gerçek Senaryo
-
Zararlı .exe dosyası incelenir
-
Strings içinde C2 server bulunur
-
Debug ile API çağrıları analiz edilir
-
Şifre çözme algoritması anlaşılır
-
Zararlı davranış ortaya çıkar
15. Zorluklar
-
Assembly karmaşıklığı
-
Anti-debug teknikleri
-
Büyük kod tabanı
-
Zaman alıcı analiz
16. Sonuç
Tersine mühendislik, siber güvenlikte en ileri seviye teknik alanlardan biridir. Derin teknik bilgi, sabır ve pratik gerektirir. Özellikle malware analizi ve exploit geliştirme süreçlerinde kritik rol oynar.
[0] Yorum
Henüz yorum yapılmamış. İlk yorumu sen yap.
root@terminal:~# Yorum Gönder