IDA + VMware 调试win7 x64

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   つ﹏⊂


jpg改rar

转载于:https://www.cnblogs.com/kuangke/p/9397752.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
IDA(Interactive Disassembler)是一款反汇编工具,版本7.0是其最新版本。动调试安卓应用程序是使用IDA 7.0进行分析和调试。 首先,我们需要准备一个安卓设备(手机或模拟器)和一台运行IDA 7.0的计算机。 1. 在计算机上安装IDA 7.0,并确保它与安卓设备能够进行通信。可以通过连接设备到计算机,或者使用网络调试器,如Frida或Xposed等。 2. 打开IDA 7.0并创建一个新的分析项目。可以选择从APK文件或已经安装在设备上的应用程序进行分析。 3. 如果选择从APK文件进行分析,可以通过"File"菜单下的"Load File"选项加载APK文件。如果选择从已安装应用程序进行分析,则可以通过"File"菜单下的"Attach to process"选项选择目标应用程序。 4. 一旦应用程序被加载或附加,IDA 7.0会自动进行静分析,并将汇编代码显示在界面上。 5. 接下来,可以使用IDA 7.0的动调试功能。通过"Debugger"菜单下的"Debugger options"选项,可以设置断点、单步执行代码、查看和修改寄存器值等。 6. 当应用程序执行到断点处时,IDA 7.0会暂停执行,并显示当前的程序状。此时,可以查看当前的寄存器、内存内容以及堆栈等信息,以帮助分析程序。 7. 可以通过IDA 7.0的调试功能来逐步执行代码,以便分析应用程序的行为和逻辑。可以在特定的代码位置设置断点,并观察寄存器和内存的变化。 8. 在动调试过程中,可以使用IDA 7.0的其他功能,如动数据流分析、函数调用图等来深入分析应用程序。 9. 最后,可以通过"Debugger"菜单下的"Detach"选项或关闭IDA 7.0来结束动调试。 总之,使用IDA 7.0动调试安卓应用程序可以帮助我们深入分析程序的执行过程和逻辑,从而更好地理解和修改应用程序的行为。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值