Kernel Fonksiyonları Nasıl Disassemble Edilir?

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.

Kernel Disassemble

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

Leave a Reply

Your email address will not be published.