论坛首页 安全工具分享区 阅读主题

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

373 浏览 7 回复
#1 楼主 2026-06-01 21:08:49
中断现场、KiDispatchException、还有syscall/sysenter的内核入口的调试,似乎对很多新手都造成了不小的困扰。最近突然想到VMware等常见虚拟机都是支持GDB调试的,而这种调试机制,是独立于客户机系统之外的。windbg之所以不能调试中断现场/KiDispatchException主要就是因为这些代码处于异常分发的逻辑之中,而gdb调试不属于这一体系,所以就能绕过这种限制。本文以VMware+IDA为例,VirtualBox、QEMU的大致情况应该也基本一致debugStub.listen.guest??.remote 允许其他机器来远程调试,非必选项monitor.debugOnStartGuest?? 会让客户机开机一瞬间就等待调试器,方便调试BIOS,非必选项
32位客户机,端口是8832
64位客户机,端口是8864附加到虚拟机:
附加成功。但部分内存不能直接跳过去(我也不太清楚IDA为什么这么设计),我们手动设置一下内存区域:右键插入:插入范围为0到FFFFFFFFFFFFFF00将地址Rebase过去,这样所有的符号都能直接用了Rebase的地址就是内核镜像的地址。我这里是0xFFFFF800168A3000


回复或点赞可查看完整内容

---
来源: 看雪论坛
原文链接: https://bbs.kanxue.com/thread-287728.htm
#2 2026-06-01 21:08:49
tthhhttrdeeg
#3 2026-06-01 21:08:49
Thanks for share!
#4 2026-06-01 21:08:49
Thanks
#5 2026-06-01 21:08:49
看看
#6 2026-06-01 21:08:49
感谢分享,学习一下。
#7 2026-06-01 21:08:49
mark
#8 2026-06-01 21:08:49
学习一下。

请登录后参与讨论

立即登录 注册账号