环境
VMware® Workstation 16 Pro
Microsoft Windows 7家庭普通版 Service Pack 1 32-bit 6.1.7601
Windbg Preview1.2206.19001.0
PS:该教程讲的是虚拟机与物理机的调试配置
步骤
- 虚拟机中开启串口
- 配置串口
- 打开Win7虚拟机,以管理员身份启动命令行窗口,创建一个开机启动模式,并设置开机时延时10秒选择。
bcdedit /copy {current} /d "Win7-双机调试模式"
bcdedit /timeout 10
- 重启虚拟机,使用自建的启动模式开启系统
- PS:可以看到我为了演示多建了一个,可以用
bcdedit /delete {90937b7c-f5b9-11ec-a9fe-9f8e1d4fd11f}
命令删除,其中{90937b7c-f5b9-11ec-a9fe-9f8e1d4fd11f}
为创建时生成的GUID,如果不记得可以用bcdedit /enum
进行查看。
- 进入自建的开机模式中,然后可以进行具体的配置了。
a. 关闭数字签名校验
bcdedit -set loadoptions DDISABLE_INTEGRITY_CHECKS
ps:开启数字签名校验命令
bcdedit -set loadoptions DENABLE_INTEGRITY_CHECKS
b. 开启系统测试模式
bcdedit /set testsigning on
ps:关闭系统测试模式
bcdedit /set testsigning off
c. 开启调试功能
bcdedit /debug ON
bcdedit /bootdebug ON
d. 查看调试配置
bcdedit /dbgsettings
- 用
msconfig
的图形化配置的话长这样
8.显示如下图就是成功了
Windbg连接
- 配置如下 PS:默认会把符号文件配置到C盘下,自个改空间大的文件夹进行缓存
- 点击kernel中的开始键,windbg就会等待连接了,重启虚拟机进入调试模式后看到下图就是成功了
关注的点
- windbg双击调试成功后一共会经历以下几次断点:
winload!RtlpBreakWithStatusInstruction
windows加载
winload!DbgLoadImageSymbols+0x44
加载nt
nt!DbgLoadImageSymbols+0x47
加载内核驱动
nt!RtlpBreakWithStatusInstruction
系统入口点
如果是需要调试系统中某个内核模块的话,直接在第四个断点断下来的时候下断就好了。
网友评论