首页
论坛
课程
招聘
[原创]两种使用IDA进行内核调试的方法
2011-5-6 18:36 46660

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

obaby 活跃值
20
2011-5-6 18:36
46660
以前总想知道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

第五届安全开发者峰会(SDC 2021)议题征集正式开启!

上传的附件:
收藏
点赞0
打赏
分享
最新回复 (56)
雪    币: 214
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
meakhella 活跃值 2011-5-6 18:40
2
0
第一个顶,太好了
雪    币: 76
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hzHC 活跃值 2011-5-6 19:02
3
0
本帖必火,
正在研究这个,  
过来占座
雪    币: 161
活跃值: 活跃值 (15)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
thinkSJ 活跃值 4 2011-5-6 19:38
4
0
先留名,有空试试,谢LZ了~
雪    币: 316
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
佛雷姆 活跃值 2011-5-6 19:44
5
0
tag:IDA 内核 驱动
雪    币: 1834
活跃值: 活跃值 (15)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
yingyue 活跃值 2011-5-6 19:47
6
0
顶一下,路过
雪    币: 478
活跃值: 活跃值 (604)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
sudami 活跃值 25 2011-5-6 19:56
7
0
配置挺麻烦的,已习惯windbg,浮云浮云...
雪    币: 1108
活跃值: 活跃值 (10)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
dreamzgj 活跃值 2 2011-5-6 20:28
8
0
Mark

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

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