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.