CyberFlow Logo CyberFlow BLOG
Soc L3 Reverse Engineering

Windows PE Dosya Yapısı ve Loader Analizi

✍️ Ahmet BİRKAN 📂 Soc L3 Reverse Engineering

Windows PE Dosya Yapısı ve Loader Analizi konusunu SOC L3 - Tersine Mühendislik - Anti-Debug ve Kernel Analizi baglaminda blog formatinda ogrenin. Temel akis, kavram eslestirmeleri ve analiz mantigi tek bir yapida birlestirildi.

Windows PE Dosya Yapısı ve Loader Analizi

Portable Executable (PE), Windows işletim sisteminde kullanılan çalıştırılabilir dosya formatıdır. Zararlı yazılım analizi sırasında PE yapısının anlaşılması kritik öneme sahiptir. DOS Header, PE Header, Optional Header ve Section yapıları malware reverse engineering sürecinin temelini oluşturur. import pefile print('Entry Point:', hex(pe.OPTIONAL_HEADER.AddressOfEntryPoint)) print('Image Base:', hex(pe.OPTIONAL_HEADER.ImageBase))

Giris ve Temel Akis

Portable Executable (PE), Windows işletim sisteminde kullanılan çalıştırılabilir dosya formatıdır. Zararlı yazılım analizi sırasında PE yapısının anlaşılması kritik öneme sahiptir. DOS Header, PE Header, Optional Header ve Section yapıları malware reverse engineering sürecinin temelini oluşturur. import pefile print('Entry Point:', hex(pe.OPTIONAL_HEADER.AddressOfEntryPoint)) print('Image Base:', hex(pe.OPTIONAL_HEADER.ImageBase))

Bu bölümün pratik akışı şu sırayla ilerler:

  • pe = pefile.PE('sample.exe')
  • pe.OPTIONAL_HEADER.AddressOfEntryPoint
  • pe.OPTIONAL_HEADER.ImageBase
  • for section in pe.sections
  • section.Name.decode().rstrip('\x00')
  • print(section.Name.decode().rstrip('\x00'))

Temel Kavram Eslesmeleri

PE dosyaları farklı bileşenlerden oluşur. Reverse engineering sırasında bu bileşenlerin görevleri iyi bilinmelidir.

  • DOS Header: Dosyanın PE olduğunu belirten ilk yapı
  • PE Header: Dosya mimarisi ve genel bilgiler
  • Optional Header: Entry Point ve ImageBase bilgileri
  • Section Table: Kod ve veri bölümlerinin tanımları

Ilk Cekirdek Kavram

Bu bölümde öne çıkan çekirdek kavram AddressOfEntryPoint olarak verilir. Bir PE dosyası çalıştırıldığında ilk yürütülecek kodun adresi kritik öneme sahiptir.

Arac, Komut veya Inceleme Akisi

Windows Loader, PE dosyasını belleğe yüklerken belirli aşamaları gerçekleştirir. Malware analizinde bu yükleme sürecinin bilinmesi gerekir.

Bu bölümün pratik akışı şu sırayla ilerler:

  • PE dosyasını okuma
  • Memory alanı ayırma
  • Section yükleme
  • Import çözümleme
  • Relocation işlemleri
  • Entry Point çalıştırma

Kanit ve Bilesen Iliskileri

PE dosyalarında farklı section'lar farklı amaçlara hizmet eder.

  • .text: Çalıştırılabilir makine kodu
  • .data: Başlatılmış veriler
  • .rdata: Salt okunur veriler
  • .rsrc: İkon ve kaynak dosyaları

Ikincil Odak Noktasi

Bu bölümde öne çıkan çekirdek kavram .text olarak verilir. Zararlı yazılımlar sıklıkla çalıştırılabilir kodlarını belirli bir section içerisine yerleştirir.

Operasyonel Dogrulama ve Raporlama

PE dosyasındaki import edilen API'lerin incelenmesi malware davranışlarını anlamada önemli rol oynar. for entry in pe.DIRECTORY_ENTRY_IMPORT: print(entry.dll.decode()) for imp in entry.imports:

Bu bölümün pratik akışı şu sırayla ilerler:

  • pe.DIRECTORY_ENTRY_IMPORT
  • entry.dll.decode()
  • entry.imports
  • imp.address
  • imp.name
  • print(hex(imp.address), imp.name)

Cikti ve Kullanım Amaci

Bazı Windows API'leri malware analizi sırasında özellikle dikkat çeker.

  • CreateProcess: Yeni süreç oluşturma
  • VirtualAlloc: Bellek ayırma
  • WriteProcessMemory: Başka sürece veri yazma
  • LoadLibrary: DLL yükleme

Son Kavram ve Cikis

Bu bölümde öne çıkan çekirdek kavram EntryPoint olarak verilir. Windows Loader çalıştırma aşamasında program kontrolünü belirli bir adrese devreder.

Bu Egitimden Ne Kazanirsiniz?

Bu icerik, Windows PE Dosya Yapısı ve Loader Analizi 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: DOS Header, PE Header, Optional Header, Section Table, .text, .data, .rdata, .rsrc, CreateProcess, VirtualAlloc. Egitimin mantigi; once temel akis kurmak, sonra eslestirme ve kavram netlestirme yapmak, en sonda ise bulguyu operasyonel bir sonuca baglamaktir.