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
IDA + VMware 调试win7 x64的更多相关文章
- win7 x64和win10 x64 windbg 本地调试记录
今天看CSDN和某文档看了win7 64位 和win10 64位 的windbg本地调试内核的办法 win7 x64 Step1:kdbgctrl –db Step2:kdbgctrl –e Step ...
- win7 X64可用的单文件IE6
由于日常调试需要用到老版本的ie,没有办法!用ietest老师感觉不好使,动不动就死了.就找到了ie的单文件版,有博主 小明爱切糕制作,IE6.7.8单文件版本 http://www.cnblogs. ...
- [补] 如何在windows下用IDA优雅调试ELF
在windows下如何用IDA优雅调试ELF brief: 构建一个IDA-linux_server-docker镜像,优雅地IDA远程调试 使用传统虚拟机来运行一个linux程序就得跑一个完整的li ...
- 如何在windows下用IDA优雅调试ELF
在windows下如何用IDA优雅调试ELF brief: 构建一个IDA-linux_server-docker镜像,优雅地IDA远程调试 使用传统虚拟机来运行一个linux程序就得跑一个完整的li ...
- [转载] 关于Win7 x64下过TP保护的一些思路,内核层过保护,驱动过保护
首先特别感谢梦老大,本人一直没搞懂异常处理机制,看了他的教程之后终于明白了.在他的教程里我学到了不少东西.第一次在论坛发帖,就说说Win7 x64位下怎么过TP保护.如果有讲错的地方,还望指出.说不定 ...
- [求助] win7 x64 封装 出现 Administrator.xxxxx 的问题
[求助] win7 x64 封装 出现 Administrator.xxxxx 的问题 jacky_qu 发表于 2014-9-3 23:34:37 https://www.itsk.com/thre ...
- MSI Error 1603 installing AppFabric 1.1 / Win7 x64
MSI Error 1603 installing AppFabric 1.1 / Win7 x64 Archived Forums A-B > AppFabric Caching 先说解 ...
- 配置新系统(Win7 x64)
新装了一个Win7 x64系统.总结了一些系统配置需要注意的地方. 1. C盘空间 发现C盘被用去了50G的空间,在什么软件都没装的情况下,被用去这么多,感到不可思议. 打开控制面板->文件夹选 ...
- WIN7 X64 如何运行debug
WIN7 X64 如何运行debug 下载debug.exe 安装dosbox 安装完成后将debug.exe放入某个盘的根目录下(以c盘为例) 然后运行dosbox,输入 mount c c:\ c ...
随机推荐
- 第三百七十四节,Django+Xadmin打造上线标准的在线教育平台—创建课程app,在models.py文件生成4张表,课程表、课程章节表、课程视频表、课程资源表
第三百七十四节,Django+Xadmin打造上线标准的在线教育平台—创建课程app,在models.py文件生成4张表,课程表.课程章节表.课程视频表.课程资源表 创建名称为app_courses的 ...
- 第三百二十七节,web爬虫讲解2—urllib库爬虫—基础使用—超时设置—自动模拟http请求
第三百二十七节,web爬虫讲解2—urllib库爬虫 利用python系统自带的urllib库写简单爬虫 urlopen()获取一个URL的html源码read()读出html源码内容decode(& ...
- e806. 创建进程监听对话框
A common feature of a user interface is to show a progress dialog that visually displays the progres ...
- can 驱动
http://www.cnblogs.com/general001/articles/2342728.html http://blog.csdn.net/luoqindong/article/deta ...
- Git -- 从远程库克隆
上次我们讲了先有本地库,后有远程库的时候,如何关联远程库. 现在,假设我们从零开发,那么最好的方式是先创建远程库,然后,从远程库克隆. 首先,登陆GitHub,创建一个新的仓库,名字叫gitskill ...
- js json日期格式转换日期方法
接收json数据,日期格式为:"\/Date(1414078309687)\/" var value = "/Date(1414078309687)/"; ...
- C#中按模板操作Word —— 如何向Word中插入图片
一.Word对象模型的重叠性分析 本文主要介绍通过书签Bookmark向Word文档中插入图片的方法.在此之前我们先简单讨论下Word对象模型的重叠性.如果你对Word对象模型还不熟悉,请参考本专栏第 ...
- perl 中的引用
perl 语言中的引用共分为两类: 声明引用时只需要在对象的前面加上反斜杠 第一列是数组的引用: 代码示例: , , ); my $array_ref = \@array; 第二种是哈希的引用 代码示 ...
- 每天一个linux命令:traceroute命令
通过traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径.当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一 ...
- u3d静态函数
using UnityEngine; using System.Collections; public class Manager : MonoBehaviour { private static M ...