Kernel Fonksiyonları Nasıl Disassemble Edilir?

Posted by Umut on

NOT:Kernel Debugging sırasında yapacağınız bir şey sisteminize zarar verebilir, o yüzden Sanal Makinede ve dikkatli bir şekilde kullanmanız gerekiyor. Sisteminizde oluşan sorunlar için sorumluluk kabul etmiyorum, bu yazımda sadece 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.

bcdedit /debug on

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.

sample-kernel-debugging

Gördüğünüz gibi amacımıza ulaşmış bulunuyoruz. Artık istediğimiz fonksiyonu disassemble edebiliriz. Umarım yardımcı olmuşumdur.


Umut

http://www.umuttosun.com

Siber güvenlik alanında çalışan ve araştırmayı seven bir vatandaş ;)

Comment ( 1 )

  1. Practical Reverse Engineering Solution(Page 123-124) – Umut Tosun
    […] disassemble edileceğini bilmiyorsanız, nasıl yapılacağını anlattığım bir önceki yazıma buradan […]