CyberFlow Logo CyberFlow BLOG
Soc L3 Reverse Engineering

Kernel Driver Dispatch ve IOCTL Analizi

✍️ Ahmet BİRKAN 📂 Soc L3 Reverse Engineering

Kernel Driver Dispatch ve IOCTL 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.

Kernel Driver Dispatch ve IOCTL Analizi

Windows kernel driver'ları user-mode uygulamalarla genellikle IOCTL (Input Output Control) mekanizması üzerinden haberleşir. Reverse engineering sırasında driver'ın dispatch tablosu ve IOCTL kodları incelenerek erişilebilir fonksiyonlar ortaya çıkarılır.

Giris ve Temel Akis

Windows kernel driver'ları user-mode uygulamalarla genellikle IOCTL (Input Output Control) mekanizması üzerinden haberleşir. Reverse engineering sırasında driver'ın dispatch tablosu ve IOCTL kodları incelenerek erişilebilir fonksiyonlar ortaya çıkarılır.

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

  • CreateFile
  • DeviceIoControl
  • IRP Oluştur
  • Dispatch Fonksiyonu Çalıştır
  • IOCTL İşle
  • Sonucu Döndür

Temel Kavram Eslesmeleri

Driver iletişiminde kullanılan temel yapılar farklı görevler üstlenir.

  • IRP_MJ_DEVICE_CONTROL: IOCTL isteklerini işler
  • DeviceIoControl: User-mode'dan IOCTL gönderir
  • IRP: I/O isteğini taşır
  • Dispatch Routine: İsteği işleyen driver fonksiyonu

Ilk Cekirdek Kavram

Bu bölümde öne çıkan çekirdek kavram DeviceIoControl olarak verilir. User-mode uygulamaların driver'a özel komut göndermesini sağlayan Windows API bulunmaktadır.

Arac, Komut veya Inceleme Akisi

Reverse engineer bir driver analiz ederken dispatch tablosunu inceleyerek hangi IRP isteklerinin işlendiğini belirler.

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

  • DriverEntry Bul
  • MajorFunction Tablosunu Bul
  • Dispatch Fonksiyonlarını Çözümle
  • IOCTL Handler Bul
  • Akışı Analiz Et

Kanit ve Bilesen Iliskileri

IRP Major Function kodları farklı türdeki istekleri temsil eder.

  • IRP_MJ_CREATE: Device açılış isteği
  • IRP_MJ_CLOSE: Device kapatma isteği
  • IRP_MJ_READ: Veri okuma isteği
  • IRP_MJ_DEVICE_CONTROL: IOCTL işleme isteği

Ikincil Odak Noktasi

Bu bölümde öne çıkan çekirdek kavram IRP_MJ_DEVICE_CONTROL olarak verilir. Driver analizlerinde en kritik dispatch fonksiyonlarından biri IOCTL işlemlerini yöneten fonksiyondur.

Operasyonel Dogrulama ve Raporlama

Bir IOCTL isteği driver'a ulaştığında belirli alanlar üzerinden işlenir.

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

  • IOCTL Kodu Al
  • Switch Yapısına Gir
  • Handler Seç
  • İşlemi Gerçekleştir
  • Sonucu Döndür

Cikti ve Kullanım Amaci

Kernel driver analizinde kullanılan araçlar farklı amaçlara hizmet eder.

  • WinDbg: Kernel debugging
  • IDA Pro: Dispatch fonksiyonlarını analiz etme
  • Ghidra: Decompiler ile driver inceleme
  • Process Monitor: Driver etkileşimlerini gözlemleme

Son Kavram ve Cikis

Bu bölümde öne çıkan çekirdek kavram IOCTL olarak verilir. Driver içerisinde user-mode'dan gelen özel komutlar genellikle sayısal kontrol kodları ile ayrıştırılır.

Bu Egitimden Ne Kazanirsiniz?

Bu icerik, Kernel Driver Dispatch ve IOCTL 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: IRP_MJ_DEVICE_CONTROL, DeviceIoControl, IRP, Dispatch Routine, IRP_MJ_CREATE, IRP_MJ_CLOSE, IRP_MJ_READ, WinDbg, IDA Pro, Ghidra. Egitimin mantigi; once temel akis kurmak, sonra eslestirme ve kavram netlestirme yapmak, en sonda ise bulguyu operasyonel bir sonuca baglamaktir.