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:


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:


4.2 Dinamik Analiz

Program çalıştırılarak davranışı gözlemlenir.

İncelenenler:


5. Assembly Temelleri

Örnek:

mov eax, 1
add eax, 2

Açıklama:


6. Register ve Stack Kavramı

Register’lar:

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:


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


12. Malware Analizinde Reverse Engineering

Süreç:

  1. Dosya alınır

  2. Hash kontrol edilir

  3. Strings analizi yapılır

  4. Disassembly yapılır

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

  1. Zararlı .exe dosyası incelenir

  2. Strings içinde C2 server bulunur

  3. Debug ile API çağrıları analiz edilir

  4. Şifre çözme algoritması anlaşılır

  5. Zararlı davranış ortaya çıkar


15. Zorluklar


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.