使用WinDbg核心除錯

2021-09-06 01:58:34 字數 1922 閱讀 5175

看雪學院,笨笨翻譯《使用windbg核心除錯》。很有用的資料,由於太長,加上很多,偷懶,留個鏈結在這裡。這裡簡要做一些我測試時候的筆記:

首先你要配置好測試環境:參考vmware+windgb+win7 核心驅動除錯

在你的主機上配置symbols

接著檢查是否已經載入sys.dbg,命令為: kd> !lmi ndislwf

loaded module info: [nt]

module: ntoskrnl     base address: 80a02000

symbol type: pdb      – symbols loaded successfully from symbol server.

d:\debugsymbols\ndislwf.pdb\ec9b7590d1bb47a6a6d5383538c2b31a1\ntoskrnl.pdb

compiler: c – front end [13.10 bld 2179] – back end [13.10 bld 2190]      load report: public symbols

d:\debugsymbols\ndislwf.pdb\ec9b7590d1bb47a6a6d5383538c2b31a1\ndislwf.pdb

接著如果出現如上的結果,表明可以手動設定斷點,否則(個人經驗總是不能設定)。假設在ndislwf 的driverentry 設定斷點。在啟動驅動之前,中斷在windbg的命令視窗,輸入:bu ndislwf!driverentry

接下來開始安裝測試驅動。若執行到driverentry該函式,就會停下來,並且會在**框中對應的**中用紅色標誌,然後按f10可以單步除錯。

如果檢視已經設定哪些斷點: kd> bl

0 e [d:\winddk\3790\src\general\ioctl\sys\filter.c @ 123]    0001 (0001) ndislwf!driverentry

1 e [d:\winddk\3790\src\general\ioctl\sys\filter.c @ 338]    0001 (0001) ndislwf!sioctldevicecontrol+0×103

注意兩件事: 每個斷點都有乙個號碼並且顯示出斷點狀態,「e」是「enabled」,而「d」是「disabled」。假設你希望臨時停止使用某個斷點。bd (「disable breakpoint」) 將會完成它。你只需指定斷點號碼:

kd> bd 1

kd> bl

0 e [d:\winddk\3790\src\general\ioctl\sys\filter.c @ 123]    0001 (0001) ndislwf!driverentry

1 d [d:\winddk\3790\src\general\ioctl\sys\filter.c @ 338]    0001 (0001) ndislwf!sioctldevicecontrol+0×103  ·

相似的方法,永久移除斷點號碼,使用bc 1 (「clear breakpoint」)。現在該斷點將會從斷點列表中消除。

假設你希望臨時停止使用某 個斷點。bd(「disable breakpoint」) 將會完成它。你只需指定斷點號碼:

kd> bd 1

kd> bl

0 e [d:\winddk\3790\src\general\ioctl\sys\sioctl.c @ 123] 0001 (0001) sioctl!driverentry

1 d [d:\winddk\3790\src\general\ioctl\sys\sioctl.c @ 338] 0001 (0001) sioctl!sioctldevicecontrol+0×103

就先寫這麼寫。怕到時候測試又忘記了。

使用windbg進行核心除錯

1.因為核心除錯涉及到的是windows系統,所以只能在windows上執行,首先安裝xp虛擬機器 2.然後配置boot.ini檔案,由於boot.ini檔案在xp系統中是被隱藏的,所以需要先取消xp的隱藏資料夾選項,具體步驟 1 開啟的 我的電腦選項 選擇 工具 中的 資料夾選項 2 開啟之後選擇...

Windbg除錯核心驅動方法

一般說來,調速驅動程式分為兩種 1.存在pdb檔案的除錯 這裡的pdb檔案其實就是除錯符號檔案,假如我們除錯的這樣的檔案,我們可以再windbg中使用 bp 驅動名 driverentry,這個時候當載入驅動的時候,程式就會斷在入口了。2.沒有pdb檔案的除錯 在除錯別人的驅動程式時,也就是自己只有...

Windbg除錯核心驅動方法1

一般說來,調速驅動程式分為兩種 1.存在pdb檔案的除錯 這裡的pdb檔案其實就是除錯符號檔案,假如我們除錯的這樣的檔案,我們可以再windbg中使用 bp 驅動名 driverentry,這個時候當載入驅動的時候,程式就會斷在入口了。2.沒有pdb檔案的除錯 在除錯別人的驅動程式時,也就是自己只有...