首页
社区
课程
招聘
[原创]在exsi上同时使用windbg和vs双虚拟机调试内核和用户态的2种方法
发表于: 2019-6-14 22:55 7197

[原创]在exsi上同时使用windbg和vs双虚拟机调试内核和用户态的2种方法

王cb 活跃值
11
2019-6-14 22:55
7197

先介绍一下我的调试环境,物理机win10上安装vs2013,调试端内核计算机(win7x64)和被调试端机(win7x64,ip:10.120.1.128)都在exsi上,3台主机都在同意网段

在被调试端内核计算机,编辑配置->添加串行端口

启动msconfig->引导->高级选项

在调试端内核计算机->添加串行端口

然后运行windbg->KernelDebug

成功连上调试

接下来在vs目录找到Remote Debugger文件夹复制到被调试端计算机,启动里面的msvsmon.exe


选择工具->选项,如图配置

vs自动部署项目可以使用这种方法

然后项目->右键->部署,
在vs项目代码开始处加入以下这段,确保被调试程序启动后挂起,等待输入


在物理机vs中选择菜单,调试->附加到进程->查找

然后选择在调试端计算机,如果无法找到目标,请先确保关闭防火墙并启用windows网络发现


选择被调试程序进程点击附加

在被调试端计算机程序待用户输入后,vs成功触发断点

此时vs用于调试用户态程序和windbg调试内核态,读者是不是觉得内核研究调试环境方便了许多

使用vs自带的调试引擎有个严重问题,在内核态下断点或者其他操作后vs的调试连接会因为超时丢失,直接退出调试,很不方便,现在用WindbgForVS引擎wdk插件在vs中调试,没有这个问题
安装wdk8.1下载地址链接:

下载这个版本的windbg链接,其实就是wdk8.1自带版本,装了wdk8.1就不需要了:

在被调试端内核计算机,启动以下命令,我使用的调试端口是8456,也可以指定其他的

在物理机vs中选择菜单,调试->附加到进程->选择windows user mode debugger->查找


点击add new computer

输入被调试端内核计算机ip地址

在usermode一栏选择tcp端口号和dbgsrv端口号一致,点击下一步
,
注意被调试机安装的windbg版本必须和物理机一致,版本号6.3.9600.16384,位于


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2020-4-2 15:01 被王cb编辑 ,原因: 添加vs自动部署项目
收藏
免费 4
支持
分享
最新回复 (7)
雪    币: 2107
活跃值: (1429)
能力值: ( LV8,RANK:126 )
在线值:
发帖
回帖
粉丝
2
图都挂完了
2019-6-15 10:56
0
雪    币: 11697
活跃值: (7194)
能力值: ( LV13,RANK:550 )
在线值:
发帖
回帖
粉丝
3
现在图片有了
2019-6-15 21:26
0
雪    币: 2375
活跃值: (433)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
楼主的esxi哪个版本的?
2019-6-15 21:35
0
雪    币: 11697
活跃值: (7194)
能力值: ( LV13,RANK:550 )
在线值:
发帖
回帖
粉丝
5
6.7
2019-6-15 21:42
0
雪    币: 14539
活跃值: (17553)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
6
mark,楼主辛苦了
2019-6-17 21:44
0
雪    币: 1491
活跃值: (985)
能力值: (RANK:860 )
在线值:
发帖
回帖
粉丝
7
为什么要用exsi来做 内核调试啊
给楼主的思路点赞
2019-6-18 18:23
0
雪    币: 11697
活跃值: (7194)
能力值: ( LV13,RANK:550 )
在线值:
发帖
回帖
粉丝
8
物理机装不了那么多虚拟机,所以反正exsi上
2019-6-19 11:02
1
游客
登录 | 注册 方可回帖
返回
//