驅(qū)動(dòng)逆向開發(fā)之驅(qū)動(dòng)開發(fā)編譯環(huán)境搭建
驅(qū)動(dòng)開發(fā)與編譯環(huán)境的搭建,首先需要確認(rèn)自己的操作系統(tǒng)的版本,方法如下 命令行CMD窗口打出 winver 查看,比如我的電腦

??我的版本是1803,所以 可以百度 WDK(windows driver kit) 去微軟官網(wǎng)下載 對應(yīng)的WDK,這里附上網(wǎng)址https://learn.microsoft.com/zh-cn/windowshardware/drivers/other-wdk-downloads

? 這里就下載1803對應(yīng)的,下載好后按照順序安裝就好 記住一個(gè)細(xì)節(jié),確保VS沒啟動(dòng),不然他插件裝不進(jìn)去

??
? ??如果你VS的進(jìn)程沒關(guān)閉 或者安裝錯(cuò)誤 這個(gè)VSIX就不會(huì)出來,這種情況可以 手動(dòng)安裝,可以用everthing搜素到這個(gè)vsix 然后點(diǎn)擊安裝。上面這個(gè)安裝完成后 windows的設(shè)置-》應(yīng)用里面查看SDK的版本


點(diǎn)擊菜單欄的工具 -》獲取工具和功能

? 點(diǎn)擊單個(gè)組件 選擇咱們的SDK 版本得一致,然后點(diǎn)修改等安裝好

然后咱們就可以新建驅(qū)動(dòng)項(xiàng)目了,如上圖1 2得順序,這樣就新 建了一個(gè)空項(xiàng)目,然后在項(xiàng)目上右鍵 -》屬性 如下圖 修改SDK:

接下來,咱們再新建個(gè).c文件,因?yàn)樵蹅冃枰獙懸粋€(gè)入口函數(shù),可以理解為 3環(huán)的 mian函數(shù)?

寫上如下的代碼,即可編譯通過:
?#include <ntddk.h>
?NTSTATUS DriverEntry(
?_In_ PDRIVER_OBJECT DriverObject,
?_In_ PUNICODE_STRING RegistryPath
?){?
DriverObject;
?RegistryPath;
?return STATUS_SUCCESS;
?}?
其中#include <ntddk.h>是寫驅(qū)動(dòng)需要包含的頭文件,DriverEntry就是 驅(qū)動(dòng)函數(shù)的函數(shù)入口類似3環(huán)的DriverEntry.DriverObject是驅(qū)動(dòng)對象, 以后我們經(jīng)常會(huì)用到,RegistryPath是注冊表的路徑,STATUS_SUCCESS是 一個(gè)宏,點(diǎn)進(jìn)去看 他其實(shí)就是0,在驅(qū)動(dòng)層 0才是成功