vs2019+wdk10开发 xp, win7, win10 驱动
一、安裝WDK10
https://docs.microsoft.com/zh-cn/windows-hardware/drivers/download-the-wdk
首先下載wdk10,并安裝,安裝過程中會提示你當前sdk版本和wdk不匹配,所以還需要先把sdk裝上。這些步驟比較簡單略過了,記得安裝wdk時勾上安裝插件的選項,如下圖:
二、編寫 WIN7 X64 驅動
wdk10裝好之后,可以直接開發win7的驅動,下面構建一個空WDM驅動項目:
#include <ntddk.h>VOID DriverUnload(PDRIVER_OBJECT pDriver) {UNREFERENCED_PARAMETER(pDriver);DbgPrint("Goodbye~\n"); }NTSTATUS DriverEntry(PDRIVER_OBJECT pDriver, PUNICODE_STRING pRegPath) {UNREFERENCED_PARAMETER(pRegPath);pDriver->DriverUnload = DriverUnload;DbgPrint("Hello Driver!\n");return STATUS_SUCCESS; }然后修改項目配置:
如果編譯報錯 “error MSB8040: 此項目需要緩解了 Spectre 漏洞的庫”,則需要添加單個組件,注意版本要和當前msvc版本一致,我這里是14.27,然后我不需要ARM的,所以只勾了這三個:
如果報錯 “error 1297: Device driver does not install on any devices”,就把inf文件下圖選中的內容刪掉,即可編譯成功。
三、運行 WIN7 X64 驅動
把驅動復制到WIN7上,用KMD工具加載:
如果發現Dbgprint沒有輸出,我的解決方法是修改注冊表,在 "HKLM/SYSTEM/CCS/Control/Session Manager/Debug Print Filter“路徑下新建一個名為”DEFAULT“的鍵值,類型為DWORD,值為 8或0xF
四、編譯 XP X86 驅動
我以前使用 vs2010 + wdk7600 寫過 xp 驅動,今天嘗試一下用 vs2019+wdk10。
按照剛才 X64 的套路,修改項目屬性,主要就是把 inf 關掉,然后目標平臺設置成 WIN7 DESKTOP:
然后就可以編譯了:
拿到 xp 試試能不能用,發現是OK的。
五、編譯 WIN10 X64 驅動
如果要編譯運行WIN10驅動,我這里提供一種方法:
首先要把項目屬性的簽名設置改成 test sign
目標平臺改成win10
然后和WIN7一樣的方法,修改注冊表打開 DbgPrint 輸出:
然后管理員控制臺運行這個命令來允許測試簽名加載驅動:
bcdedit /set testsigning on
重啟電腦后右下角有提示的字樣,表明支持測試簽名了:
然后就可以了,管理員運行加載程序,就能在 dbgview 看到輸出:
六、符號文件環境變量
在物理機設置環境變量,使用IDA和WINDBG時就可以自動從微軟服務器上下載符號文件。
_NT_SYMBOL_PATH SRV*E:\Win10Symbols*http://msdl.microsoft.com/download/symbols/總結
以上是生活随笔為你收集整理的vs2019+wdk10开发 xp, win7, win10 驱动的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (75)内核APC执行过程,分析 KiD
- 下一篇: WIN10 关闭驱动签名