Yürütülebilir Dosya ve PE Formatı Analizi: Windows Malware

Windows işletim sistemlerinde çalışan zararlı yazılımların büyük bölümü PE (Portable Executable) formatındadır. Bu nedenle yürütülebilir dosyaların (EXE, DLL) yapısını anlamak, malware analizi ve adli bilişim çalışmalarının temelini oluşturur. Bu makalede PE formatının yapısını, analiz adımlarını ve pratik inceleme yöntemlerini detaylı şekilde ele alıyoruz.

1. Yürütülebilir Dosya Nedir?

Yürütülebilir dosya; işletim sistemi tarafından doğrudan çalıştırılabilen, makine kodu içeren dosyalardır.

Windows’ta yaygın yürütülebilir türler:

1.exe
2
3.dll
4
5.sys
6
7.scr
Malware’lerin %90’dan fazlası standart PE formatını kullanır veya taklit eder.

2. PE (Portable Executable) Formatı Nedir?

PE formatı, Windows’un çalıştırılabilir dosyalar için kullandığı standart dosya yapısıdır. EXE ve DLL dosyaları bu formatı temel alır.

PE yapısı üç ana katmandan oluşur:

- DOS Header
- NT Header
- Section (Bölümler)

3. DOS Header (MZ Header)

Her PE dosyası MZ imzası ile başlar.

Önemli alanlar:

- e_magic → MZ
- e_lfanew → NT Header’ın offset’i

14D 5A 90 00 03 00 00 00
2M Z
MZ imzası yoksa dosya standart bir PE değildir veya bozulmuştur.

4. NT Header (PE Header)

DOS Header’dan sonra gelen ana yapıdır.

Bileşenleri:

- PE Signature (PE\0\0)
- File Header
- Optional Header (adı opsiyonel ama zorunludur)

150 45 00 00
2P E

Optional Header’da Önemli Alanlar

- Entry Point
- ImageBase
- SectionAlignment
- Import Table RVA

Entry Point, malware analizinde ilk bakılması gereken noktadır.

5. Section (Bölüm) Yapısı

PE dosyası, farklı amaçlara hizmet eden bölümlere ayrılır.

Yaygın section’lar:

1| Section | Amaç |
2| -------- | ------------------ |
3| `.text` | Çalışan kod |
4| `.data` | Global değişkenler |
5| `.rdata` | Sabit veriler |
6| `.rsrc` | Kaynaklar |
7| `.idata` | Import tabloları |
1.text → Executable
2.data → Read/Write
3.rsrc → Resources
Anormal section isimleri (.xyz, .crypt) obfuscation veya packer göstergesidir.

6. Import ve Export Tabloları
Import Table

Programın hangi Windows API fonksiyonlarını kullandığını gösterir.

1KERNEL32.dll
2CreateFileA
3WriteFile
4CreateProcessA
CreateRemoteProcess, VirtualAlloc, WriteProcessMemory gibi API’ler yüksek risklidir.

Export Table

DLL dosyalarında dışarı açılan fonksiyonları listeler.

7. Statik PE Analizi (Çalıştırmadan)

Statik analiz ile:

- Dosya yapısı incelenir
- Şüpheli API’ler belirlenir
- Obfuscation tespit edilir

Kullanılan araçlar:

- PE-bear
- CFF Explorer
- Detect It Easy (DIE)

1file malware.exe
2pe-bear malware.exe
Statik analiz, ilk ve güvenli adımdır.

8. Packer ve Obfuscation Tespiti

Packer kullanımı belirtileri:

- Yüksek entropy
- Tek section
- Import tablosu boş
- Runtime API çözümleme

1Entropy: 7.9 → High
Packed dosya ≠ Malware, ancak analizi zorlaştırır.

9. Gerçekçi Analiz Senaryosu

Olay:
Bir EXE dosyası antivirüs tarafından tanınmıyor.

İnceleme:

- MZ ve PE header mevcut
- .text section çok küçük
- Import tablosu boş
- Entropy yüksek

Sonuç:
Muhtemelen packed ve gizlenmiş malware.

Normal yazılımlarda import tablosu genellikle zengindir.

10. İpuçları ve En İyi Uygulamalar

- Entry Point her zaman kontrol et
- Section izinlerini incele (RWX)
- Import tablosunu whitelist ile karşılaştır
- Hash (SHA-256) mutlaka al
- Packed dosyaları önce unpack et

Yürütülebilir dosya ve PE formatı analizi, Windows malware incelemenin omurgasını oluşturur. PE yapısını iyi anlayan bir analist; zararlı yazılımın ne yaptığını, nasıl gizlendiğini ve hangi yeteneklere sahip olduğunu büyük ölçüde çalıştırmadan tespit edebilir. Statik PE analizi; dinamik analiz, sandbox ve tersine mühendislik süreçlerinin sağlam bir başlangıç noktasıdır.

konu hakkında tepkinizi verebilirsiniz