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 ...
随机推荐
- Cisco无线控制器配置Radius
使用Cisco无线控制器管理AP,配置Radius服务器,用于企业加密wifi的认证. 结合上一篇文档进行操作: http://www.cnblogs.com/helloworldtoyou/p/80 ...
- 使用3ds Max制作简单卧室
一.介绍 学习目标:熟练使用“标准基本体”和“扩展基本体”内的按钮来创建对象. 软件环境:3ds Max2015 二.实验步骤 1,启动3ds Max,使用“长方体”工具在场景中创建一个长方体作为空间 ...
- CI框架 -- 附属类
有些时候,你可能想在你的控制器之外新建一些类,但同时又希望 这些类还能访问 CodeIgniter 的资源 任何在你的控制器方法中初始化的类都可以简单的通过 get_instance() 函数来访问 ...
- Linux CPU Load Average
理解Linux系统负荷 LINUX下CPU Load Average的一点研究 Linux load average负载量分析与解决思路 Understanding Linux CPU Load - ...
- Android中的缩略图加载-不浪费一点多余的内存
1. Why,为什么要加载缩略图? 有的时候不需要展示原图,只需展示图片的缩略图,可以节省内存.比如:网易新闻中的图片浏览,左边展示的小狮子图片就是一个缩略图,点击这个图片,才会展示原图. 2. ...
- NPOIHelp 按固定模板导出和直接导出
完整代码如下 using System; using System.Collections.Generic; using System.Data; using System.Text; using N ...
- springmvc和encache集成
虽然目前已经出了 ehcache3.x 了,但是,结合我搜索到的资料,我依旧只能先采用 ehcache2.x 来使用了 首先,在pom 中引入jar <dependency> <gr ...
- js eventLoop (使用chunk 同步变异步)
https://www.cnblogs.com/xiaohuochai/p/8527618.html 线程 javascript是单线程的语言,也就是说,同一个时间只能做一件事.而这个单线程的特性,与 ...
- 【转载】高可用的MongoDB集群详解
1.序言 MongoDB 是一个可扩展的高性能,开源,模式自由,面向文档的数据库. 它使用 C++编写.MongoDB 包含一下特点: l 面向集合的存储:适合存储对象及JSON形式的数据. l ...
- 源码分析五(HashSet的内部实现)
一:首先来看看Hashset的继承体系 public class HashSet<E> extends AbstractSet<E> implements Set<E&g ...