首页
社区
课程
招聘
[分享]IDA + VMware 调试win7 x64
发表于: 2017-10-18 14:21 17381

[分享]IDA + VMware 调试win7 x64

2017-10-18 14:21
17381

IDA+gdb配合VMware调试windows已经不是什么新鲜事了,但是之所以要发这篇帖子是因为我按照之前的帖子还有网上其他的教程设置调试环境,结果遇到了各种问题,所以仅仅是更新一下,各位轻拍。

环境:IDA6.9 + VMware12 + win10_host + win7x64_guest

一、更改VMX配置文件,开启VMware内的gdb stub

(1)在你的虚拟机对应的 *.vmx文件末尾加上如下三行并保存,:

debugStub.listen.guest64 = "TRUE"

debugStub.hideBreakpoints= "TRUE"

debugStub.listen.guest64.remote = "TRUE"

如果你的VM是32 bit的,将64换成32即可。

(2)然后启动虚拟机,如果虚拟机的日志文件中有如下字样,则说明gdb stub开启成功

二、配置IDA

(1)启动IDA64,选择Debugger -> Attach -> Remote GDB Debugger

(2)选择Debug options -> set specific option,将处理器改成与自己调试目标相匹配的处理器

(3)然后一路OK ,会出现如下图所示对话框,选择PID为0的进程attach,就会出现attach success的提示,此时会出现IDA的调试窗口。

(3)设置内存范围,选择Debugger -> Mannul Memory Regions,然后在空白处右键点击Insert,设置内存范围为0 - -2,如图


(4)设置完成后我们run (F9),然后suspend,可以发现IDA已经断下,但是仅仅这样还不够我们还需要添加符号信息,这样才能更方便的调试

三、添加符号信息

IDA可以手动添加符号文件,但是我们需要知道内核加载模块的基址,才能将符号信息加载到指定的位置,比较通用的方法是通过idtr,获取idt表的地址,然后根据中断处理函数的地址信息搜索内存,然后特征码匹配MZ头,从而定位nt基址

(1)在gdb command 窗口内输入 r idtr,可以得到idt表的地址,我们取idt表的第一个函数地址作为搜索起始,配合IDA python脚本(脚本会给出链接),可以得到如下结果:

(2)然后从虚拟机中拷贝出nt文件,选择file -> load file -> PDB file,填入基址,等待一段时间后,符号信息即加载成功。

四、其他模块信息

nt符号信息加载成功后,我们可以通过PsLoadedModuleList继续得到其他模块基址信息,过程类似,脚本链接:https://github.com/Cr4sh/IDA-VMware-GDB/blob/master/IDA-VMware-GDB.py,如果时间太长的话,建议把符号自动加载部分去掉,根据自己需要手动加载也未尝不可,有了符号信息后就可以比较方便的调试VMM了。

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

最后贴上一个我之前发的问题的链接,还请诸位大神可以指点小菜一二https://bbs.pediy.com/thread-221825.htm   つ﹏⊂


[课程]Android-CTF解题方法汇总!

收藏
免费 4
支持
分享
最新回复 (10)
雪    币: 2038
活跃值: (6373)
能力值: ( LV7,RANK:102 )
在线值:
发帖
回帖
粉丝
2
此贴必火,MARK一下
2017-10-18 19:22
0
雪    币: 9
活跃值: (319)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
符号加载不上的锅晕,方便远程指点下嘛我的qq2762713521
2017-10-19 13:25
0
雪    币: 544
活跃值: (264)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
4
IDA  +  VMware调调MBR什么的还好。

调Windows内核、驱动之类的,还是VirutalKD+WinDBG吧。
2017-10-19 20:01
0
雪    币: 4495
活跃值: (1556)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
表示看不懂
2017-10-19 20:19
0
雪    币: 3
活跃值: (39)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
KiDebug IDA + VMware调调MBR什么的还好。 调Windows内核、驱动之类的,还是VirutalKD+WinDBG吧。
是的,如果只是调试驱动、内核,windbg是首选,但是如果调试VMM的话就不行了,所以才有了以上的方法
2017-10-20 10:32
0
雪    币: 14
活跃值: (126)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
0到-2的地址,我这里无法设置
2022-10-26 14:11
0
雪    币: 138
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
8
我丢,改了一下直接字典错误还不能还原
2023-4-23 08:29
0
雪    币: 1952
活跃值: (30566)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
感谢分享
2023-4-23 09:30
1
雪    币: 138
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
10
IDA麻烦到批爆只能说
2023-4-23 12:04
0
雪    币: 467
活跃值: (1773)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
VMWARE16不能用了??内存读不出来,全是问号
2024-5-31 00:49
0
游客
登录 | 注册 方可回帖
返回
//