天天看點

使用vs2017+wdk10+vitualKD搭建驅動開發環境環境安裝visual studio2017安裝 wdk 10檢查wdk和win10 SDK的版本是否一緻安裝vassistx插件使用VS2017建立和編譯第一個驅動程式配置雙機調試環境注意參考資料

環境

  • win10 x64
  • vmware workstation 14 pro
  • win 7 旗艦版 x64 虛拟機
  • visual studio2017 社群版
  • WDK 10
  • virtual KD3
  • DrvInst.exe
  • DbgView.exe

安裝visual studio2017

在微軟的官網下載下傳visual studio2017的安裝檔案

下載下傳位址為

https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community&rel=15

使用vs2017+wdk10+vitualKD搭建驅動開發環境環境安裝visual studio2017安裝 wdk 10檢查wdk和win10 SDK的版本是否一緻安裝vassistx插件使用VS2017建立和編譯第一個驅動程式配置雙機調試環境注意參考資料

安裝過程中 工作負載 勾選 使用C++桌面開發

安裝成功後,需要在vs2017社群版中登陸微軟賬号,不然隻能用30天

安裝 wdk 10

在微軟的官網上下載下傳wdk安裝包

注意vs2017中SDK和wdk的安裝版本要一緻,不然會導緻驅動程式編譯失敗

使用vs2017+wdk10+vitualKD搭建驅動開發環境環境安裝visual studio2017安裝 wdk 10檢查wdk和win10 SDK的版本是否一緻安裝vassistx插件使用VS2017建立和編譯第一個驅動程式配置雙機調試環境注意參考資料

WDK安裝完成後 會自動安裝wdk的vs擴充

檢查wdk和win10 SDK的版本是否一緻

打開windows控制台中的解除安裝程式,檢視windows SDK 和 windows Driver Kits的版本号是否一緻,如果不一緻的話,需要安裝與wdk版本一緻的sdk,在VS的

使用vs2017+wdk10+vitualKD搭建驅動開發環境環境安裝visual studio2017安裝 wdk 10檢查wdk和win10 SDK的版本是否一緻安裝vassistx插件使用VS2017建立和編譯第一個驅動程式配置雙機調試環境注意參考資料

在開始菜單中找到 visual studio installer

使用vs2017+wdk10+vitualKD搭建驅動開發環境環境安裝visual studio2017安裝 wdk 10檢查wdk和win10 SDK的版本是否一緻安裝vassistx插件使用VS2017建立和編譯第一個驅動程式配置雙機調試環境注意參考資料

點選修改

使用vs2017+wdk10+vitualKD搭建驅動開發環境環境安裝visual studio2017安裝 wdk 10檢查wdk和win10 SDK的版本是否一緻安裝vassistx插件使用VS2017建立和編譯第一個驅動程式配置雙機調試環境注意參考資料

在 單個元件 SDK中勾選與WDK版本一緻的SDK安裝即可

使用vs2017+wdk10+vitualKD搭建驅動開發環境環境安裝visual studio2017安裝 wdk 10檢查wdk和win10 SDK的版本是否一緻安裝vassistx插件使用VS2017建立和編譯第一個驅動程式配置雙機調試環境注意參考資料

安裝vassistx插件

VAssistX是visusal studio的一個插件,可以實作代碼高亮、自動折疊等功能

下載下傳位址

連結: https://pan.baidu.com/s/1MN_Bs0qf6XdbYpJ0y_KPbw 密碼: ykr8

安裝檔案中有一個VA_X.dll,替換下面這個檔案,即可完成破解

C:\Users\使用者名\AppData\Local\Microsoft\VisualStudio\15.0_e517f3de\Extensions\tvelb2zk.4nn\VA_X.dll

           

安裝并破解成功後,打開visual studio2017,上面的菜單欄會有一個VAssitX的菜單項

使用VS2017建立和編譯第一個驅動程式

在vs中建立一個新的工程,選擇Empty WDM Driver模闆,如下圖所示

使用vs2017+wdk10+vitualKD搭建驅動開發環境環境安裝visual studio2017安裝 wdk 10檢查wdk和win10 SDK的版本是否一緻安裝vassistx插件使用VS2017建立和編譯第一個驅動程式配置雙機調試環境注意參考資料

添加一個c檔案

使用vs2017+wdk10+vitualKD搭建驅動開發環境環境安裝visual studio2017安裝 wdk 10檢查wdk和win10 SDK的版本是否一緻安裝vassistx插件使用VS2017建立和編譯第一個驅動程式配置雙機調試環境注意參考資料

添加一個最簡單的驅動驅動

#include<ntddk.h>

VOID DriverUnload(PDRIVER_OBJECT drivrObject);

NTSTATUS DriverEntry(PDRIVER_OBJECT driverObject,
	PUNICODE_STRING regPath)
{
	KdPrint(("helloworld"));
	KdBreakPoint();//設定一個斷點
	driverObject->DriverUnload = DriverUnload;//設定驅動解除安裝的回調函數
	return STATUS_SUCCESS;
}

//驅動的解除安裝函數
VOID DriverUnload(PDRIVER_OBJECT drivrObject)
{
	KdPrint(("DriverUnload\n"));
}
           

在項目的屬性中作如下的設定 如下圖所示

使用vs2017+wdk10+vitualKD搭建驅動開發環境環境安裝visual studio2017安裝 wdk 10檢查wdk和win10 SDK的版本是否一緻安裝vassistx插件使用VS2017建立和編譯第一個驅動程式配置雙機調試環境注意參考資料
使用vs2017+wdk10+vitualKD搭建驅動開發環境環境安裝visual studio2017安裝 wdk 10檢查wdk和win10 SDK的版本是否一緻安裝vassistx插件使用VS2017建立和編譯第一個驅動程式配置雙機調試環境注意參考資料

編譯,如下圖所示

使用vs2017+wdk10+vitualKD搭建驅動開發環境環境安裝visual studio2017安裝 wdk 10檢查wdk和win10 SDK的版本是否一緻安裝vassistx插件使用VS2017建立和編譯第一個驅動程式配置雙機調試環境注意參考資料

配置雙機調試環境

原來一般使用序列槽來調試虛拟機中的驅動程式,但是序列槽的速率比較低,當使用windbg.exe單步調試時比較卡頓,使用virtualKD可以破解序列槽速率的限制

在virtualKD官網上下載下傳,位址為https://sysprogs.com/legacy/virtualkd/download/

使用vs2017+wdk10+vitualKD搭建驅動開發環境環境安裝visual studio2017安裝 wdk 10檢查wdk和win10 SDK的版本是否一緻安裝vassistx插件使用VS2017建立和編譯第一個驅動程式配置雙機調試環境注意參考資料

下載下傳完成,輕按兩下解壓

使用vs2017+wdk10+vitualKD搭建驅動開發環境環境安裝visual studio2017安裝 wdk 10檢查wdk和win10 SDK的版本是否一緻安裝vassistx插件使用VS2017建立和編譯第一個驅動程式配置雙機調試環境注意參考資料

解壓 後的目錄結構如下圖

使用vs2017+wdk10+vitualKD搭建驅動開發環境環境安裝visual studio2017安裝 wdk 10檢查wdk和win10 SDK的版本是否一緻安裝vassistx插件使用VS2017建立和編譯第一個驅動程式配置雙機調試環境注意參考資料

将target拷貝到虛拟機中安裝,其中有一個vminstall.exe程式,一路點下一步即可,重新開機虛拟機

這裡使用的虛拟機系統為windows7 x64 旗艦版

重新開機虛拟機,選擇 windows7[VirtualKD][啟用調試程式]的啟動項

使用vs2017+wdk10+vitualKD搭建驅動開發環境環境安裝visual studio2017安裝 wdk 10檢查wdk和win10 SDK的版本是否一緻安裝vassistx插件使用VS2017建立和編譯第一個驅動程式配置雙機調試環境注意參考資料

在主控端上啟動vmmon.exe,設定windbg.exe的路徑,啟動調試器,會自己打開windbg

使用vs2017+wdk10+vitualKD搭建驅動開發環境環境安裝visual studio2017安裝 wdk 10檢查wdk和win10 SDK的版本是否一緻安裝vassistx插件使用VS2017建立和編譯第一個驅動程式配置雙機調試環境注意參考資料
使用vs2017+wdk10+vitualKD搭建驅動開發環境環境安裝visual studio2017安裝 wdk 10檢查wdk和win10 SDK的版本是否一緻安裝vassistx插件使用VS2017建立和編譯第一個驅動程式配置雙機調試環境注意參考資料

将驅動程式拷貝至虛拟機中,使用DrvIns.exe安裝驅動,使用dbgview.exe檢視驅動程式的輸出結果。

使用vs2017+wdk10+vitualKD搭建驅動開發環境環境安裝visual studio2017安裝 wdk 10檢查wdk和win10 SDK的版本是否一緻安裝vassistx插件使用VS2017建立和編譯第一個驅動程式配置雙機調試環境注意參考資料

啟動驅動程式,會在windbg中看到斷點,輸入g将繼續運作

使用vs2017+wdk10+vitualKD搭建驅動開發環境環境安裝visual studio2017安裝 wdk 10檢查wdk和win10 SDK的版本是否一緻安裝vassistx插件使用VS2017建立和編譯第一個驅動程式配置雙機調試環境注意參考資料

windbg的使用可參考https://docs.microsoft.com/zh-cn/windows-hardware/drivers/debugger/getting-started-with-windbg

注意

對于 vmware 15以上的版本virtualKD3會出現相容性問題

建立使用 VirtualKD-Redux的最新版本

可在github上下載下傳

https://github.com/4d61726b/VirtualKD-Redux/releases

參考資料

  • https://docs.microsoft.com/zh-cn/windows-hardware/drivers/other-wdk-downloads