Shellcode Reverse Engineering ve Emülasyon
Shellcode, doğrudan bellek içerisinde çalıştırılmak üzere hazırlanmış makine kodudur. Modern malware'ler shellcode kullanarak payload çalıştırabilir, process injection gerçekleştirebilir veya ikinci aşama zararlı kodları indirebilir. Reverse engineering sırasında shellcode'un davranışı analiz edilir ve emüle edilir.
Giris ve Temel Akis
Shellcode, doğrudan bellek içerisinde çalıştırılmak üzere hazırlanmış makine kodudur. Modern malware'ler shellcode kullanarak payload çalıştırabilir, process injection gerçekleştirebilir veya ikinci aşama zararlı kodları indirebilir. Reverse engineering sırasında shellcode'un davranışı analiz edilir ve emüle edilir.
Bu bölümün pratik akışı şu sırayla ilerler:
- Shellcode Tespit Et
- Belleğe Yükle
- Entry Noktasını Bul
- Assembly Akışını İncele
- API Çağrılarını Analiz Et
- Davranışı Belirle
Temel Kavram Eslesmeleri
Shellcode analizinde kullanılan temel kavramlar farklı amaçlara hizmet eder.
- Shellcode: Bellekte çalıştırılabilen makine kodu
- NOP Sled: Kod başlangıcına ulaşmayı kolaylaştıran alan
- Payload: Gerçekleştirilecek asıl işlem
- Decoder Stub: Şifrelenmiş shellcode'u açan kod
Ilk Cekirdek Kavram
Bu bölümde öne çıkan çekirdek kavram Shellcode olarak verilir. Shellcode analizinde ilk amaç çalıştırılabilir makine kodunun başlangıç noktasını bulmaktır.
Arac, Komut veya Inceleme Akisi
Encoded shellcode'lar analizden kaçmak için önce şifrelenir, ardından çalışma anında çözülür.
Bu bölümün pratik akışı şu sırayla ilerler:
- Encoded Shellcode Yüklenir
- Decoder Stub Çalışır
- Anahtar Kullanılır
- Shellcode Çözülür
- Payload Çalıştırılır
Kanit ve Bilesen Iliskileri
Shellcode içerisinde sık görülen davranışlar farklı amaçlara işaret edebilir.
- VirtualAlloc: Bellek ayırma
- LoadLibrary: DLL yükleme
- GetProcAddress: API çözümleme
- CreateThread: Yeni thread oluşturma
Ikincil Odak Noktasi
Bu bölümde öne çıkan çekirdek kavram GetProcAddress olarak verilir. Birçok shellcode, API adreslerini çalışma anında çözmek için belirli bir Windows API kullanır.
Operasyonel Dogrulama ve Raporlama
Shellcode emülasyonu, gerçek sistemi etkilemeden davranışı gözlemlemeyi sağlar.
Bu bölümün pratik akışı şu sırayla ilerler:
- Shellcode Yüklenir
- Emülatör Başlatılır
- Komutlar Çalıştırılır
- Registerlar İzlenir
- API Çağrıları Analiz Edilir
- Davranış Raporlanır
Cikti ve Kullanım Amaci
Shellcode analizinde kullanılan araçlar farklı seviyelerde görünürlük sağlar.
- scdbg: Shellcode emülasyonu
- x64dbg: Dinamik analiz
- IDA Pro: Statik disassembly
- Ghidra: Decompilation ve kod analizi
Son Kavram ve Cikis
Bu bölümde öne çıkan çekirdek kavram scdbg olarak verilir. Shellcode analizinde gerçek sistemi etkilemeden davranışı gözlemlemek için emülasyon araçları kullanılabilir.
Bu Egitimden Ne Kazanirsiniz?
Bu icerik, Shellcode Reverse Engineering ve Emülasyon 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: Shellcode, NOP Sled, Payload, Decoder Stub, VirtualAlloc, LoadLibrary, GetProcAddress, CreateThread, scdbg, x64dbg. Egitimin mantigi; once temel akis kurmak, sonra eslestirme ve kavram netlestirme yapmak, en sonda ise bulguyu operasyonel bir sonuca baglamaktir.