首页
社区
课程
招聘
[原创]两种使用IDA进行内核调试的方法
发表于: 2011-5-6 18:36 50781

[原创]两种使用IDA进行内核调试的方法

obaby 活跃值
20
2011-5-6 18:36
50781

以前总想知道IDA是否能够实现内核调试,后来找了一段时间没什么结果就暂时放弃了。今天在国外的一个博客上偶然看到了用IDA实现内核调试的方法,其实现在国内也有很多文章介绍了IDA通过串口进行调试的文章,如果大家想看的话可以搜索下。
这里只是参考原文把实现的方法大体的用中文表述了一下。在调试之前需要安装如下的软件:
1.  IDA PRO这个我想大家都应该有了;
2.  Windbg如果调试过驱动或者系统内核的话这个东西也应该有了;
3.  VirtualKd 这个东西我想大家如果没有做过使用IDA调试内核的话这个东西应该是还没有。
安装VirtualKD
首先从官方网站上下载VirtualKd。将程序解压到任意目录下,将程序目录下的Target文件夹拷贝到虚拟机系统中运行(如果是VirtualBox则安装比较麻烦),运行之后将会出现如下的界面:
 
点击Install之后将会在系统的启动菜单中创建一个新的启动项,如下图所示:
 
如果使用设置Windbg调试器的方法来设置pipe在使用IDA调试的时候是无法正常连接调试器的(话说这个东西我测试了好久,囧)。
另外如果不使用上面的工具进行安装设置启动项的话可以手工设置,不过过程比较繁琐:
1)  拷贝kdvm.dll到你的客户机系统的system32目录下,在这个目录下应该可以找到KDCOM.DLL 和KD1394.DLL文件;
2)  打开并且编辑boot.ini文件添加一项新的启动项如下:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /DEBUG /DEBUGPORT=VM
如果是windows  vista或者win7 则需要手工执行bcdedit命令来激活kdvm.dll
bcdedit /set dbgtransport kdvm.dl
3)  重新启动虚拟机并且运行vmmon.exe进行监视。(这一步与自动安装是相同的)
Vmmon运行界面如下所示:
 
程序列出了当前运行中(其实有的是已经结束了)的虚拟机的状态,这里需要记住需要调试的虚拟机的pipe name.,在这里是kd_Windows_xp。

设置IDA/Windbg
运行IDA不要选择任何输入数据库,执行菜单中的Debugger/Attach/Windbg debugger,如下图所示:
 
打开如下图所示的设置窗口:
 
在Connection string中输入管道的名称com:port=\\.\pipe\kd_Windows_xp,pipe,这里需要将kd_Windows_xp修改为你的虚拟机对应的名称。
设置完成之后点击Debug Options打开选项窗口,如下图所示:

点击Set specific options,打开特殊选项窗口,如下所示:

输入Debugging tools folder(调试器路径),并且勾选下面的Kernel mode debugging(内核调试模式)然后确定即可。
关闭所有的设置窗口之后将会打开如下图所示的附加进程列表:

此时只有一个进程id为0的进程,选择这个进程ok之后就可以进行内核的调试了。不过这个进程的附加会异常的痛苦,尤其是下载符号库的时候,并且将进程挂起的时候可能会让ida假死掉,因而可以多等待一会儿,直到所有的符号库下载并且识别之后就可以真正的中断在系统的int3断点上了(这个过程简直是一种折磨啊)。
 
挂载之后就是上面的效果,看起来还是不错的。
另外还有一种方法可以不使用virtualkd进行调试,方法可以查看下面的电子书,设置基本是一样的。
IDA调试内核.pdf
IDA调试驱动.pdf


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 7
支持
分享
最新回复 (56)
雪    币: 214
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
第一个顶,太好了
2011-5-6 18:40
0
雪    币: 76
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
本帖必火,
正在研究这个,  
过来占座
2011-5-6 19:02
0
雪    币: 196
活跃值: (135)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
4
先留名,有空试试,谢LZ了~
2011-5-6 19:38
0
雪    币: 316
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
tag:IDA 内核 驱动
2011-5-6 19:44
0
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
6
顶一下,路过
2011-5-6 19:47
0
雪    币: 709
活跃值: (2420)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
7
配置挺麻烦的,已习惯windbg,浮云浮云...
2011-5-6 19:56
0
雪    币: 1137
活跃值: (10)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
8
Mark

谢谢楼主分享:)
2011-5-6 20:28
0
雪    币: 678
活跃值: (101)
能力值: ( LV2,RANK:150 )
在线值:
发帖
回帖
粉丝
9
试试是可以的,我觉得工具应该用适合自己的才会发挥自己的优势。
2011-5-6 20:57
0
雪    币: 14
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
符号库可以预先打包下载的
2011-5-6 21:29
0
雪    币: 220
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
非常感谢,支持一下
2011-5-10 15:24
0
雪    币: 121
活跃值: (22)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
非常感谢 支持一下~
2011-5-10 16:34
0
雪    币: 985
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
学习中
2011-5-10 23:16
0
雪    币: 23
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
不错,长见识!
2011-5-11 09:15
0
雪    币: 91
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
现在用win7了. olly要启动不了 , 试试看这个了
2011-5-11 09:34
0
雪    币: 485
活跃值: (78)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
16
mark,很好,不错,感谢分享
2011-5-11 22:40
0
雪    币: 71
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
谢谢共享

好教材
2011-5-12 20:38
0
雪    币: 563
活跃值: (95)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
学习!!
2011-5-12 22:02
0
雪    币: 29
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
不错,又找到了一种新方法了。
2011-5-13 01:33
0
雪    币: 585
活跃值: (568)
能力值: ( LV13,RANK:290 )
在线值:
发帖
回帖
粉丝
20
还是坚持用WINDBG,,
2011-5-17 21:54
0
雪    币: 221
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
留名在此好回找!
2011-5-17 22:01
0
雪    币: 6976
活跃值: (1472)
能力值: ( LV11,RANK:180 )
在线值:
发帖
回帖
粉丝
22
感觉还是不太习惯这个界面, windbg以前看着特别丑. 不过好像现在习惯了!
2011-5-22 20:35
0
雪    币: 1644
活跃值: (53)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
多谢分享,很详细,学习。
2011-5-23 00:45
0
雪    币: 146
活跃值: (182)
能力值: ( LV13,RANK:220 )
在线值:
发帖
回帖
粉丝
24
擦 ida还可以调驱动哈 试下
2011-5-23 10:58
0
雪    币: 112
活跃值: (51)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
学习。。感谢LZ的分享
2011-5-23 11:44
0
游客
登录 | 注册 方可回帖
返回
//