x64驅動基礎教程 03
當配置好開發環境後,就要配置測試環境了。不瞞大家說,寫這章的心裡壓力最大,如果後面的章節沒寫好,大家也就是一個知識點沒學會,如果這章沒寫好,大家肯定要罵我了。因為這章的內容是講解如何在 WIN64 系統上玩驅動,如果沒搞好,就徹底沒法玩了。
廢話不多說,先說今天的各個主角:
1.VMWARE 。 VMWARE 是虛擬機器軟體,相信這個大家都知道,因為版權的關係,我不能把它的下載地址和註冊碼等資訊放在文章裡,這個可以大家去各種知名軟體站點搜尋。建議下載
VMWARE 9.0 (雖然最近已經出到了 10.0 )。
2.WINDBG 。 WINDBG 是微軟出品的偵錯程式,比起 OD 等常用偵錯程式,就是支援核心除錯。
它的下載地址是: ofollow,noindex" target="_blank">http://www.windbg.org/X64%20Debuggers%20And%20Tools-x64_en-
us.msi ( 不過其實大家不用下載,因為安裝 WDK 時已經自帶了)。
3.VirtualKD 。方便與進行虛擬機器雙機除錯的工具,免去手動設定的麻煩。下載地址: http://virtualkd.sysprogs.org
接下來分別說『安裝虛擬機器』、『進行雙機核心除錯』和『進行本地核心除錯』的步驟。
請大家一步一步進行操作,順序絕對不能弄亂,否則必定失敗。
『安裝虛擬機器』的步驟:
1. 安裝 VMWARE 。
2. 安裝 WIN7X64 虛擬機器(當然你也可以把其他 WIN64 系統都安裝好)。
3. 在虛擬機器裡關閉 UAC (方便測試驅動!這步一定要做,否則後續步驟會失敗)。
Tools
。5. 在虛擬機器裡安裝 .NET FRAMEWORK4 ( 如果是 WIN7X64 以後的系統則跳過這步)。 6. 備份虛擬機器的當前狀態。 如果不瞭解虛擬機器的使用,請自行百度,講解虛擬機器的使用方法不是課程重點。
『進行雙機核心除錯』的步驟:
1. 把 VirtualKD 的 target 資料夾弄進虛擬機器裡。
2. 在虛擬機器裡安裝 VirtualKD (開啟 VirtualKD 目錄下的 target 資料夾,以管理員許可權執行 vminstall.exe )。【見下圖】
3. 在真機執行 VMMON64.exe ,設定偵錯程式路徑。點選 VMMON 介面下面的『 Debugger path 』按鈕,選擇 WINDBG 路徑。一般路徑是: C:\WinDDK\7600.16385.1\Debuggers\windbg.exe 。
【見下圖】
4. 重啟虛擬機器,進入這個核心啟動項。【見下圖】
5. 進入不久之後, WINDBG 會自動啟動(實際上是 VMMON.EXE 啟動的),出現類似這樣的畫面
(見下圖)。按下 F5 ,繼續讓系統執行。
6. 當虛擬機器進入系統後,在真機 WINDBG 獲得焦點的時候,按下 Ctrl+Break ,記得隨時除錯虛擬機器。按下 Ctrl+Break 後,會出現類似的畫面:
7. 這個時候先不急著除錯,先在真機安裝符號包。 WINDOWS 系統符號的官方下載地址是: http://msdn.microsoft.com/en-us/windows/hardware/gg463028.aspx , 因為我們要除錯的目標系統是 WIN7X64 ,所以去頁面上選擇『 Windows+7/">Windows 7 RTM x64 retail symbols, all languages 』或『 Windows 7 Service Pack 1 x64 retail symbols, all languages 』下載
(根據你安裝了 WIN7X64SP1 還是 WIN7X64RTM )。下載完畢後安裝。安裝過程就是一路 NEXT ,記得在安裝過程中選擇把符號安裝到 c:\symbols ,否則會影響後面的符號載入!
8. 設 置 WINDBG 的
符 號 。 點 擊
File->Symbol File Path
, 輸 入
【 SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols 】,再按下確定即可。若
在按下確定前,勾選一下 Reload 複選框, WINDBG 則會自動過載符號。
9.讓 WINDBG 過載符號。在 WINDBG 的命令列上輸入 .reload 即可(注意 reload 前面有個點)。
10. 測試 WINDBG 是否載入符號成功。輸入 u KiInsertQueueApc ,如果出現類似以下的結果,就證明今天的課程學完了!