使用vs2017+wdk10+vitualKD搭建驅(qū)動開發(fā)環(huán)境

環(huán)境

  • win10 x64
  • vmware workstation 14 pro
  • win 7 旗艦版 x64 虛擬機
  • visual studio2017 社區(qū)版
  • WDK 10
  • virtual KD3
  • DrvInst.exe
  • DbgView.exe

安裝visual studio2017

在微軟的官網(wǎng)下載visual studio2017的安裝文件
下載地址為
https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community&rel=15

在這里插入圖片描述

安裝過程中 工作負(fù)載 勾選 使用C++桌面開發(fā)

安裝成功后,需要在vs2017社區(qū)版中登陸微軟賬號,不然只能用30天

安裝 wdk 10

在微軟的官網(wǎng)上下載wdk安裝包
注意vs2017中SDK和wdk的安裝版本要一致,不然會導(dǎo)致驅(qū)動程序編譯失敗


在這里插入圖片描述

WDK安裝完成后 會自動安裝wdk的vs擴展

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

打開windows控制面板中的卸載程序,查看windows SDK 和 windows Driver Kits的版本號是否一致,如果不一致的話,需要安裝與wdk版本一致的sdk,在VS的


在這里插入圖片描述

在開始菜單中找到 visual studio installer


在這里插入圖片描述

點擊修改
在這里插入圖片描述

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


在這里插入圖片描述

安裝vassistx插件

VAssistX是visusal studio的一個插件,可以實現(xiàn)代碼高亮、自動折疊等功能
下載地址
鏈接: 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創(chuàng)建和編譯第一個驅(qū)動程序

在vs中創(chuàng)建一個新的工程,選擇Empty WDM Driver模板,如下圖所示


在這里插入圖片描述

添加一個c文件


在這里插入圖片描述

添加一個最簡單的驅(qū)動驅(qū)動
#include<ntddk.h>

VOID DriverUnload(PDRIVER_OBJECT drivrObject);

NTSTATUS DriverEntry(PDRIVER_OBJECT driverObject,
    PUNICODE_STRING regPath)
{
    KdPrint(("helloworld"));
    KdBreakPoint();//設(shè)置一個斷點
    driverObject->DriverUnload = DriverUnload;//設(shè)置驅(qū)動卸載的回調(diào)函數(shù)
    return STATUS_SUCCESS;
}

//驅(qū)動的卸載函數(shù)
VOID DriverUnload(PDRIVER_OBJECT drivrObject)
{
    KdPrint(("DriverUnload\n"));
}

在項目的屬性中作如下的設(shè)置 如下圖所示

Debug x

在這里插入圖片描述

編譯,如下圖所示


在這里插入圖片描述

配置雙機調(diào)試環(huán)境

原來一般使用串口來調(diào)試虛擬機中的驅(qū)動程序,但是串口的速率比較低,當(dāng)使用windbg.exe單步調(diào)試時比較卡頓,使用virtualKD可以破解串口速率的限制
在virtualKD官網(wǎng)上下載,地址為https://sysprogs.com/legacy/virtualkd/download/

在這里插入圖片描述

下載完成,雙擊解壓
在這里插入圖片描述

解壓 后的目錄結(jié)構(gòu)如下圖
在這里插入圖片描述

將target拷貝到虛擬機中安裝,其中有一個vminstall.exe程序,一路點下一步即可,重啟虛擬機
這里使用的虛擬機系統(tǒng)為windows7 x64 旗艦版
重啟虛擬機,選擇 windows7[VirtualKD][啟用調(diào)試程序]的啟動項
在這里插入圖片描述

在宿主機上啟動vmmon.exe,設(shè)置windbg.exe的路徑,啟動調(diào)試器,會自己打開windbg
在這里插入圖片描述

在這里插入圖片描述

將驅(qū)動程序拷貝至虛擬機中,使用DrvIns.exe安裝驅(qū)動,使用dbgview.exe查看驅(qū)動程序的輸出結(jié)果。
在這里插入圖片描述

啟動驅(qū)動程序,會在windbg中看到斷點,輸入g將繼續(xù)運行

在這里插入圖片描述

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

參考資料

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容