OT:Kernel Debugging sırasında yapacağınız bir şey sisteminize zarar verebilir, bu yüzden sanal makinede ve dikkatli bir şekilde kullanmanız gerekiyor. Bu yazımda kernel fonksiyonlarını nasıl disassemble edileceğini gösteriyorum.
İlk olarak bir kernel debugger’ a ihtiyacımız var. Bunun için Microsoft’un ücretsiz olarak sunduğu “Windbg” debugger’ını kullanacağız.
Buraya tıklayarak Microsoft‘un yazmış olduğu, Windbg‘ın nasıl yükleneceğini anlatan blog yazısına ulaşabilirsiniz.
Windows’u Kernel Debugging’e Hazırlamak
Windbg‘ı yükledikten sonra yapmamız gereken şey Wingdbg‘ın kernel debugging seçeneğini kullanabilmek için Windows‘un kernel debugging ayarını aktif hale getirmek.
Bunun için Command Prompt’u administratör yetkileriyle çalıştırıyoruz ve “bcdedit /debug on
” komutunu çalıştırıyoruz. Ayarlarımızın aktif hala gelmesi için Windows‘u yeniden başlatıyoruz.
Kernel Fonksiyonlarını Disassemble Etme
Windbg‘ı kernel debugging modunda çalıştırmak için Windbg‘ı administratör yetkileriyle çalıştırıyoruz.
Daha sonra File menüsünden Kernel Debug seçeneğini seçiyoruz. Nerede kernel debugging yapacağımızı seçmemiz için ufak bir pencere açılıyor. Biz localde yapacağımız için local i seçiyoruz ve OK‘ e basıp terminalimizi açıyoruz.
Artık terminalimiz açık, kernel fonksiyonlarını disassemble etmeye başlayabiliriz. Fonksiyonları disassemble etmek için yazacağımız komut:
uf nt!FonksiyonIsmi
Bu şekilde uf komutu ile disassemble edebiliyoruz.
Örnek olarak KeInitThread fonksiyonunu disassemble edelim.
Gördüğünüz gibi amacımıza ulaşmış bulunuyoruz. Artık istediğimiz fonksiyonu disassemble edebiliriz. Umarım yardımcı olmuşumdur.
Be First to Comment