CyberFlow Logo CyberFlow BLOG
Soc L3 Reverse Engineering

Shellcode Reverse Engineering ve Emülasyon

✍️ Ahmet BİRKAN 📂 Soc L3 Reverse Engineering

Shellcode Reverse Engineering ve Emülasyon 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.

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.