ios下载

Itellyou

虚拟机

VMware

安装vmware tools

虚拟机整个安装好之后(进入桌面)

image-20250305212801916

没有安装的话不会是重新安装,点击后,按虚拟机中的提示安装即可。

激活

管理员powershell:

1
irm https://get.activated.win | iex

连接主机网络

虚拟机网络选择net模式、关闭虚拟机防火墙

win+x然后i执行ipconfig:Ethernet0就是虚拟机本地ip

主机用同理方法可以得到ip地址,相互ping来测试

或者直接ping 计算机名 也可以

配置虚拟机wdk和连接

预配计算机以便进行驱动程序部署和测试 (WDK 10) - Windows drivers | Microsoft Learn

在虚拟机中安装wdk,执行C:\Program Files (x86)\Windows Kits\10\Remote\x64\WDK Test Target Setup x64-x64_en-us.msi这个文件

然后vs打开项目的扩展-driver-Test-Configure Devices…添加对应主机名或ip

然后设置为目标计算机

image-20250306153628068

调试

虚拟机中开启测试模式

对于上面显示的key和port,宿主机中

1
./Windbg -k net:port=xxx,key=xxx

在C:\Program Files (x86)\Windows Kits\10\Debuggers\x64下执行

关于部署驱动和在vs中调试的报错

编译期报错:需要缓解库或者语法错误

确保缓解库版本和工具链版本一致,如果是最新,需要在项目属性中找到MVCS版本,调整为所有可选版本中最新的版本,而不是默认

语法错误需要检查编码,尝试以UTF8存储或者GBK,多试几个应该就好了

报错:第三方inf不包含数字签名信息

需要生成crt证书文件,项目,属性,Inf2Cat,Run Inf2Cat 改为是
属性,Driver Signing中Sign Mode改为Test Sign
虚拟机开启测试模式

Windbg无法调试,打开一直显示Waiting to reconnect…

首先确保虚拟机调试模式一打开,如果vs中设置好了port和key,且虚拟机中
bcdedit /dbgsettings查看设置是否相同,如果相同,尝试关闭虚拟机的调试模式再打开,重复两三次,然后再尝试(这个被坑了好久,最后还是学长帮我配好的)

driverquery无法看到对应的驱动

查看当前驱动是不是硬件驱动,在设备管理器中选择按驱动分类,可以找到自己安装的驱动,想要看这种驱动的值,可以通过驱动注入程序强制安装,然后在dbgview中看到效果。如果是微软写的抽象helloworld代码,因为没写卸载函数,所以不能卸载。不如用下面这个做测试(用wdm项目)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <ntifs.h>


VOID DriverUnload(PDRIVER_OBJECT pdriverObject)
{
DbgPrint("DriverUnload\r\n");
}



NTSTATUS DriverEntry(PDRIVER_OBJECT pDriverObject,
PUNICODE_STRING pRegPath//注册表路径
)
{
DbgPrint("DriverEntry\r\n");


pDriverObject->DriverUnload = DriverUnload;//指定驱动卸载函数
return STATUS_SUCCESS;
}

太抽象了,这个环境配了6天TAT,感谢 学长 帮我。