Windows双机内核调试环境配置
Windows双机内核调试环境配置
前言
配置环境是因为参加了2026腾讯游戏安全技术竞赛,发现往年题目均多为虚拟驱动环境,所以就必须构建一个安全的调试环境,为了避免在物理机上发生一些错误导致被数据被破坏(物理机给我蓝屏咋办)。
1.VMware与Win系统安装
VMware安装:略(可以从网上找教程去装,VMware下载链接: https://pan.baidu.com/s/1OY2pFlNazFOcfWXuiq_nZQ?pwd=72mx)
Win系统:这里我看了cc老师的视频,里面是使用的是Windows 10 1709 x32版本,由于迅雷x86版本实在是太难下了(等不及),所以我这里用的是x64版本,97小时吗有点意思

1
Windows 10 x64 1709版本链接:https://pan.baidu.com/s/1fDswyXxyx7zeojDKDqZMaA?pwd=ukk8

2
首先我们要关闭防火墙

3
关闭自动更新

4
以及这是什么我也不知道hh,反正是个移除

5
(管理员运行)工具地址:Windows-Driver/Tool at main · cnHHHHHcn/Windows-Driver
其次关闭虚拟机,给虚拟机添加一个串行端口

6

7
添加管道\\.\pipe\com_1

8
打开虚拟机,管理员运行cmd输入下面命令
bcdedit /copy {current} /d "Debug" # 创建调试启动项
bcdedit /timeout 10 # 设置启动菜单等待时间
9
重启后你就能发现,多出一个Debug引导项,进入Debug引导项,回车

10
接下来输入三条命令
bcdedit /dbgsettings serial debugport:1 baudrate:115200 # 配置串口调试参数
bcdedit /bootdebug ON # 启用启动阶段
bcdedit /debug ON # 启用内核调试
11
输入msconfig你就能看到这里调试✔

12
#以下是可选命令,可自己添加
bcdedit /set testsigning on # 启用测试签名模式
bcdedit -set loadoptions DDISABLE_INTEGRITY_CHECKS # 禁用驱动完整性检查
# 验证配置是否正确
bcdedit /enum # 查看所有启动项
bcdedit /dbgsettings # 查看调试设置接下来重启你将会卡死在黑屏界面,不用担心这是正常的
2.Windbg安装
直接从微软官方下载即可
安装 WinDbg - Windows drivers | Microsoft Learn
安装后打开windbg,单击Home 打开Settings,下面的Default symbos path 修改如下 *号之间路径可随意修改,只是用来缓存符号表用的
srv*D:\Symbols*http://msdl.microsoft.com/download/symbols
13
之后打开文件,选择Attach to kernel

14
改成我这个样子再点击右下角Ok

15
之后就可以了

16
接下来输入g kd> g 只要它断下来就输g 直到进入系统,期间会下载pdb文件

17
你也可以单击Windbg 的Break 随便输入点命令例如!idt 会出现dumping IDT即宣告结束

18
3.驱动WDK工具包安装
驱动环境必须与SDK WDK一致

19
这里我的SDK是从Visual Studio 2019下载的10.0.19041.0版本

20
所以WDK也需要选择19041版本

21
下载链接:https://wwaob.lanzouw.com/i1vwz3nszate
管理员打开安装

22
由于我之前装过,所以我这里就演示一遍

23
漫长的等待.............................................出现这个就行了

24
会出现,这里一定确保没有vs2019运行 单击install

25
稍微的漫长等待...........................

26
此时我们的Visual Studio 2019就会出现 驱动项目

27
4.创建例子调试
前提需要做出如下配置

28

29

30
我们需要写一个开启驱动与停止驱动
#include <ntifs.h>
//删除驱动
VOID DriverUnload(PDRIVER_OBJECT DriverObject) {
DbgPrint("DriverUnload\r\n");
}
//加载驱动
NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject , PUNICODE_STRING RegPath) {
DbgPrint("DriverEntry\r\n");
DriverObject->DriverUnload = DriverUnload;
return STATUS_SUCCESS;
}
31

32
加个断点也是可以的(中文乱码了。。)

33
以上便是整个驱动环境,记得打个快照!
总结
驱动环境的配置在我看来还是比较好配置的,只是需要特定的SDK和WDK版本一致.
最后我测试的时候
我是64位系统,用的32位编译的sys 驱动无法启动,而转换成64位就能启动了,奇怪改日再研究一下