背景:在被调试机驱动程序加载前,windbg可通过.kdfiles命令直接将驱动替换为调试主机上驱动文件。
(1).kdfiles命令
在驱动加载前,运行命令如下即可:
.kdfiles -m System32\drivers\test.sys E:\test222.sys
(2)mapfile文件
当然,也可以将kdfiles保存在文件中运行。
例如将如下内容保存到E:\FileMap.ini。
map
System32\drivers\devscan.sys
E:\NewServerWorkSpace\Win10Drivers\trunk\Bin\amd64\devscanDummy.sys
然后运行.kdfiles E:\MapFile.ini,即可加载。
另外,也可以通过设置环境变量来让windbg自动加载MapFile。如设置环境变量为_NT_KD_FILES=E:\MapFile.ini。然后运行windbg时会自动加载该文件。
(3)如何找到被替换驱动的目录
像第(1)像中,System32\drivers\test.sys是被替换驱动的路径,该路径不能随便填写,那该如何确定驱动路径名呢?
其实该路径就是驱动在注册表中ImagePath注册表的值。
在调试时,该注册表值可能不方便查看,没关系,可以用windbg命令来找出。
a. 运行命令:
!reg querykey \REGISTRY\MACHINE\SYSTEM\ControlSet001\services
显示
......
fffff800034eb72c devscan
......
Use '!reg keyinfo fffff8a000024010 <SubKeyAddr>' to dump the subkey details
......
b. 运行命令:
!reg keyinfo fffff8a000024010 fffff800034eb72c
显示
REG_EXPAND_SZ ImagePath System32\drivers\test.sys
那么这里的System32\drivers\test.sys,就是我们想要找的被替换驱动的路径了。