双机调试环境搭建
0x00 WinDbg安装及符号配置
WinDbg安装
官方版
首先可以从微软官方下载WDK,WDK会自带WinDbg
调试器。微软WDK官方下载链接:https://docs.microsoft.com/zh-cn/windows-hardware/drivers/download-the-wdk。下载完之后一路默认下一步即可,如图:
微软商城版
上面下载的是WDK自带的调试器,其实在微软应用商店也是可以下载到WinDbg Preview版本的,只需要打开商城搜索WinDbg Preview
,下载便是,并且这个版本的界面会更加舒适些。如图:
配置符号路径
按上面的步奏安装即可,安装完之后便需要配置==符号路径==。
第一步,添加WinDbg
的路径到主Path
环境变量中,将WinDbg的主路径C:\Program Files (x86)\Windows Kits\10\Debuggers
,添加进环境变量Path
中,如图:
第二步,新建一个环境变量名为_NT_SYMBOL_PATH
,并设置其值为:
1 | SRV*C:\Symbol*http://msdl.microsoft.com/download/symbols |
其中路径<C:Symbol>
可随意设置,看你想把下载到的符号放在那里。如图:
弄完上面两步,符号路径就配置好了,附加一下计算器查看一下效果。附加上计算器后,在WinDbg
最上处便会显示配置好的符号路径,如图:
加载需要的模块符号
由于微软的符号链接服务器 http://msdl.microsoft.com/download/symbols被墙了,因此要从微软下载符号文件时,需要开代理。
命令LD
然后可以通过命令lm
查看当前加载的模块以及加载的符号文件,如图:
如若想在添加某个模块的符号文件,可使用命令ld <Moudle>
来加载,例如加载Calcuator模块,如图:
symchk.exe命令行下载
找到WinDbg
的目录下,打开CMD输入
1 | symchk [/r] [/q] [Input options] <Filename> [/s <SymbolPath>] [options] |
要下载如图:
0x01 VirtualKD安装配置
从VirtualKD官网https://sysprogs.com/legacy/virtualkd/,进行下载(只支持VM15.5以下版本,VM15.5以上的可以使用`VirtualKD-redux`后面有介绍)。下载后解压即可,如图:
然后将解压后的target
文件夹,拖入虚拟机中,如图:
然后在虚拟机中运行vminstall.exe
,来安装VirtualKD。安装完会提示重启,直接重启就好。
在重启之前,在本机上运行vmmon.exe
(vmmon.exe调试32位虚拟机,vmmon64.exe调试64位虚拟机)。然后在配置WinDbg的路径,选中windbg的路径即可,如图:
补充WinDbg调试器版本选择:
1.×86-based Host Computer
在x86处理器平台上,即使调试的目标操作系统是x64版本的,也应该使用x86版本的WinDhg。
2.x64-based Host Computer
在x64处理器平台上,需要按如下规则来选择版本。
- 在分析Dump文件时(不管是用户模式Dump,还是内核模式Dump),如果Dump文件是在Windows XP及更新版本的操作系统上生成的,那么x86或x64版本的WinDbg均可使用;如果Dump文件是在Windows2000或更早版本的操作系统上生成的,就只能使用x86版本的WinDbg了。
- 在进行双机实时调试时,如果目标系统是Windows XP及更新版本的操作系统,那么×86或x64版本的WinDbg均可使用,WinDbg会自动适应;如果目标系统是Windows2000或更早版本的操作系统,就只能使用x86版本的WinDhg进行调试了。
- 在进行用户态实时调试时,如果目标程序是原生64位程序,则只能使用x64版本的WinDbg进行调试;如果目标程序是32位程序,那么既可以使用×86版本,也可以使用x64版本,但因为x86版本只能调试32位代码,所以与在x86平台上调试32位程序没有区别;如果使用x64版本,可以额外调试WOW64部分的代码,这对研究WOW64机制非常有用。不过,除了研究WOW64机制,在其他情况下还是应该直接根据目标程序的类型选择相应的WinDbg版本。
然后等虚拟机重启起来之后,在进入系统之前选择如图选项:
就能实现用WinDbg+VirtualKD进行双击调试了,如图:
注:由于VirtualKD不再维护了,因此对于VM15.5以后的版本不再适用,这里可以适用大神编写的VirtualKD-Redux版,连接为:https://github.com/4d61726b/VirtualKD-Redux。由于是开源的因此在选择suffix(开机启动项)时,需要F8禁用强制签名,便可正常使用。
win10 virtual KD 配置
近期工作需要,需要双机调试WIN10虚拟机,在调试时发现virtualKD怎么都安装不上,查了相关资料后才解决,这里简单说明记录一下。
首先打开虚拟机的设置,选择选项中的固件类型,将UEFI的启用安全引导
选项关闭,如图:
然后在开机,装virtualKD就可以进行双机调试了。