windbg源碼驅動調試
環境信息
虛擬機:win7 32位
windbg:6.12(版本不存在太大影響)
設置過程
- 配置windbg
配置好雙機調試后,點擊windbg菜單欄的debug->Break產生中斷,控制權交給windbg
中斷產生后,點擊File->Open Sourse File(Ctrl+O)打開源碼文件,就會顯示出代碼窗口
因為有驅動源碼,可以直接在驅動入口處下斷點進行調試,格式為"bu 驅動名!DriverEntry",這里調試的驅動名為Clear,所以輸入調試命令"bu Clear!DriverEntry",最后輸入"g"把運行權交回給虛擬機
- 虛擬機加載驅動,windbg觸發中斷即可進行源碼調試
使用驅動加載工具加載驅動,正常情況下會觸發中斷並把控制權交給windbg
如果看到下面這些信息,說明成功中斷在驅動的入口點處,可以開始源碼調試
無源碼驅動調試
- 定位驅動入口點
使用CFF Explorer打開驅動文件,查看Option Header里AddressOfEntryPoint的值
通過驅動名+入口點偏移的方式可以定位到驅動的入口點,這里驅動名為cscc,所以應該下斷點的位置為cscc+0x2920
- 入口點處下斷點
使用驅動加載工具在虛擬機中加載驅動,加載完后點擊windbg菜單欄的debug->Break產生中斷,把控制權交給windbg,然后在調試窗口輸入命令bp cscc+0x2920,這里可以使用lmvm+驅動名(列出驅動信息)和bl(列出斷點信息)來查看斷點是否正確設置
最后點擊windbg的GO(F5)跑起來,這時候就會中斷到驅動入口處