栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

(14)[驱动开发]配置环境 VS2019 + WDK10 写 xp驱动

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

(14)[驱动开发]配置环境 VS2019 + WDK10 写 xp驱动

文章目录
  • 安装SDK和WDK
  • 创建项目
  • 编写程序
  • 其他工具

参考: 参考博客

安装SDK和WDK

我这里用的是VS2019。环境其实是早就配好了,只不过写一下而已。后来VS2019不能被visual studio installer识别,又要装新东西,然后官网下了个vs下载器只有VS2022,想着要不干脆更新了吧,于是便重新配置了一遍,由于C盘紧缺,就把VS2019给完全卸载了。谁想,VS2022不再支持win10的WDK(那个扩展装不了),而2022的WDK驱动根本没有x86版本的,搞来搞去。好吧,又重新装了VS2019。

友情提示:版本不是越新越好的

安装器里把这个勾上


WDK安装链接

我用的好像是2004版的,下完居然还是10.19041.1,有点神奇

最后,VS20xx不重要,装哪个都不重要,重要的是记得把SDK和WDK版本对应上


装完WDK后提示是否安装VS2019扩展程序,点击安装即可
没弹窗也没关系,动手找一下


双击这个文件,安装即可(如果你没有用默认安装位置的话,那就自己想想放哪了吧)


创建项目

新建一个 Kernel Mode Driver, empty (KMDF) 的项目

名字随便起起就行



右键==>属性,那个菜单太长了,不截图了
新建一个xxx.c文件,千万不要xxx.cpp





如果报错说:此项目需要缓解了 Spectre 漏洞的库
那么请勾选

如果你非要折腾,那么请移步vs安装器里找一个对应版本的缓解库装上,反正我装了好几个没对上版本,懒得弄了

编写程序
//相当于普通程序的 windows.h
#include 

//卸载函数
void DriverUnload(PDRIVER_OBJECT object) {
	//打印一句话,方便观察
    DbgPrint("hello world: driver is unloading...");
}

//主函数,相当于main
//driver里有些信息,就是关于本驱动的
NTSTATUS DriverEntry(PDRIVER_OBJECT driver, PUNICODE_STRING reg_path) {
	//驱动使用DbgPrint(),普通程序用printf(),你懂我意思
    DbgPrint("hello world");
    //你可以认为我们赋值给了一个回调函数指针
    //恰当的时机(在卸载这个驱动的时候),就会调用这个函数指针
    driver->DriverUnload = DriverUnload;
    //就是return 0而已,只是好看点
    return STATUS_SUCCESS;
}

编译,然后拉到winxp里试试
dbgView我也勾选了监视核心,但是时灵时不灵的,就不献丑了
反正不灵的时候windbg也会打印的
我勾选了监视核心,但是俩都没打印,真实怪异


其他工具

有个双机调试工具叫做VirtualKD-Reduxz,比windbg裸连快很多,github上就有,直接搜就完事了
安装教程和使用教程也有的,傻瓜式操作,就不细说了
如果配置的时候出了问题,可以参考一下我之前写的
Virtual KD 出现 Still cannot find RPC dispatcher table


好久没更新了,没人看,没动力了。就写给自己看吧

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1019161.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号