首页
社区
课程
招聘
[原创]利用VMware debugStub机制调试中断现场/KiDispatchException/KiSystemCall64
发表于: 2025-7-23 21:37 1156

[原创]利用VMware debugStub机制调试中断现场/KiDispatchException/KiSystemCall64

2025-7-23 21:37
1156

中断现场、KiDispatchException、还有syscall/sysenter的内核入口的调试,似乎对很多新手都造成了不小的困扰。

最近突然想到VMware等常见虚拟机都是支持GDB调试的,而这种调试机制,是独立于客户机系统之外的。

windbg之所以不能调试中断现场/KiDispatchException主要就是因为这些代码处于异常分发的逻辑之中,而gdb调试不属于这一体系,所以就能绕过这种限制。

本文以VMware+IDA为例,VirtualBox、QEMU的大致情况应该也基本一致

debugStub.listen.guest??.remote 允许其他机器来远程调试,非必选项

monitor.debugOnStartGuest?? 会让客户机开机一瞬间就等待调试器,方便调试BIOS,非必选项


32位客户机,端口是8832
64位客户机,端口是8864

附加到虚拟机:


附加成功。但部分内存不能直接跳过去(我也不太清楚IDA为什么这么设计),我们手动设置一下内存区域:

右键插入:

插入范围为0FFFFFFFFFFFFFF00

将地址Rebase过去,这样所有的符号都能直接用了

Rebase的地址就是内核镜像的地址。我这里是0xFFFFF800168A3000


传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2025-7-24 01:05 被iaoedsz2018编辑 ,原因: 文字
收藏
免费 22
支持
分享
最新回复 (5)
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
tthhhttrdeeg
2025-7-26 05:17
0
雪    币: 188
活跃值: (1691)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
Thanks for share!
2025-7-26 16:13
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
Thanks 
2025-8-19 16:57
0
雪    币: 9890
活跃值: (5604)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
看看
2025-10-8 22:03
0
雪    币: 552
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
666666666666666666666
2025-10-22 01:42
0
游客
登录 | 注册 方可回帖
返回