0x0 前言
驱动开发的环境配置,以及入门的hello_world
参考链接: https://qwertwwwe.github.io/windows-driver-develop-setup-environment/
0x1 开发及测试环境
开发机系统 : win10, 64位
测试机系统: win7, 32位
开发软件: visual stdio 2015, (vs2017不支持,反正目前官网上是这么说的)
0x2 安装相应的开发软件
官方开发软件下载链接:
https://developer.microsoft.com/zh-cn/windows/hardware/windows-driver-kit
按照官网的教程:
- 安装vs2015,打开的时候记得安装Visual C++选项。
- 此处可以不选“通用Windows应用开发工具”中的SDK,因为可以从下面的步骤中手动安装。
- 安装 Windows SDK, 直接从官网指定的链接下载安装就行;
- 安装 Windows WDK, 同样直接从官网指定的链接下载安装;
记得安装的SDK 和 WDK 的版本号必须完全相同,所以我选择SDK和WDK都从官网给的链接上下载安装,避免vs2015中安装的SDK和自己下载的WDK版本不同。
当然WDK和SDK下下来的时候是个执行文件,打开后可以选择直接安装或者近下载,反正都行,我选择先下载下来,后面自己安装,比较这么大软件下一次太久~~
我记得WDK安装的时候会提示什么将无法开发现代应用程序之类的提示,直接接受并继续~~,其实对其他程序开发有什么影响我也不太清楚,反正我这个环境只开发windows驱动程序而已。
0x3 hello-world程序
先用vs2015创建一个新项目
然后在Source Files中新建代码文件 DriverEntry.c,
这里注意一定是.c文件。
1 |
|
0x4 修改项目属性
警告等级:
将警告等级改为3;将警告视为错误改为否;修改目标平台属性;
这个属性决定你生成的程序在什么平台上运行;
此处我的测试机器是win7 32位。
0x5 在目标机器上运行
安装必备的软件
将生成的.sys文件拷贝到目标机器;
下载一个InstDrv.exe,用来加载驱动程序;
下载一个Dbgview.exe,用来显示驱动的log;
两个程序都放在测试的机器里。用admin权限打开InstDrv和Dbgview,进行监听。