首页
社区
课程
招聘
[下载]分享一个ida脚本,非常方便
发表于: 2013-9-5 13:32 31909

[下载]分享一个ida脚本,非常方便

2013-9-5 13:32
31909

平日分些一个函数的功能时,为了弄清楚该函数的功能,总是必须先行分析该函数调用的那些子函数的功能,跳转到子函数去分析时,又要先行分析
该子函数调用的那些子函数,如此循环下去,不胜其烦。于是通常的办法都是从该函数的调用树最底层的函数(我称为叶节点函数)开始,一层一层往上分析。
然而找到该函数最终调用的那些叶节点函数又不方便,IDA倒是自带提供了一个交叉引用外部图形工具,可将一个函数的调用树直接画出来,然而画出来的图形
一团糟,很不清晰,所以我想到了用脚本代替,一次性直接找到那些叶节点函数

另一个需求是:一旦找到了那些叶节点函数,比如找到一个叶节点函数sub_44444,该函数除了调用一些知名的库函数外,不再调用其他函数。我习惯将所有找到
的分析完毕的所有叶节点函数更名为xy前缀形式的函数名,这样,下次再重复寻早那个高层函数的所有叶节点函数,这些所有已更名为xy前缀的原叶节点函数
就不再是叶节点了。

脚本使用方法:
将附件中的ida.idc文件放在ida安装目录下的idc目录中,替换即可(你自己先备份一下原来的ida.idc吧),然后启动IDA,将光标放在一个函数内部,按下Shift
+Alt+L快捷键,就可以一次性列举出该函数调用的所有叶节点函数了,当你逐个分析完那些叶节点函数后,更名为xy前缀,然后回到原高层函数内部,再次按快捷键
Shift+Alt+L,这个时候列举出的叶节点函数就是先前那些叶节点函数的上层函数了,如此循环,各个击破,嘿嘿

另外附带的一个功能是:像VC一样,按 Ctrl+[ 快捷键可以一下子跳转到函数开头处,Ctrl+] 快捷键可以一下子跳转到函数结尾处

献给大家喽,有什么好的功能,自己完善去吧,求致谢~


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 7
支持
分享
最新回复 (54)
雪    币: 102
活跃值: (2080)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
好东西,上次也有个哥们有一个类似的脚本
2013-9-5 13:50
0
雪    币: 306
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
哈,这个要顶啊
2013-9-5 14:10
0
雪    币: 1327
活跃值: (370)
能力值: ( LV11,RANK:190 )
在线值:
发帖
回帖
粉丝
4
好东西啊,谢谢
2013-9-5 14:21
0
雪    币: 185
活跃值: (477)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
好东西 收藏之
2013-9-5 15:31
0
雪    币: 623
活跃值: (40)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
6
make
2013-9-5 15:51
0
雪    币: 27
活跃值: (127)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
7
一个不错的工具,呵呵
2013-9-5 15:58
0
雪    币: 360
活跃值: (127)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
8
妈妈再也不用担心我找不着函数了
2013-9-5 16:12
0
雪    币: 70
活跃值: (74)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
不错,赞一个
2013-9-5 16:19
0
雪    币: 70
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
这东西不错,工欲善其事必先利其器
2013-9-5 16:39
0
雪    币: 414
活跃值: (987)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
11
果然是好东西
2013-9-5 16:42
0
雪    币: 297
活跃值: (265)
能力值: ( LV4,RANK:55 )
在线值:
发帖
回帖
粉丝
12
顶一个 试了下还不错
2013-9-5 17:03
0
雪    币: 118
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
测试了一下 不太好使啊 一直提示runing
2013-9-5 17:10
0
雪    币: 1560
活跃值: (1806)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wbs
14
收藏这么nb的东西
2013-9-5 17:22
0
雪    币: 813
活跃值: (175)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
15
一直都那样吗?有可能有bug,有些函数可能不适用,没细测
2013-9-5 18:57
0
雪    币: 357
活跃值: (3473)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
16
楼主说明看得云里雾里,自己反复研读后,概括一下

查找函数的所有最深层函数,然后手动改名xy_xx

再查找函数所有非xy_xx的最深层函数,再手动改名xy_xx

重复直到函数本身,至此函数的意思就明白了

代码写得很粗糙,想法不错

替换ida.idc做法不可取

叶节点函数不如叫叶尾函数或者叶顶点函数更能表达意思
2013-9-5 21:44
0
雪    币: 150
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
有人要注册,我回一个
2013-9-6 09:22
0
雪    币: 10
活跃值: (231)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
18
我也是一直running  一点没反应, 等半天了,不过那说明我真有点看的云里雾里,
2013-9-6 09:32
0
雪    币: 118
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
是啊,反复测试了好几次,都是这样,卡在那不动了,一直提示running,估计是有bug。
2013-9-6 09:41
0
雪    币: 116
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
好东西,支持
2013-9-6 13:45
0
雪    币: 813
活跃值: (175)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
21
首次上传的ida.idc脚本有点小问题,现已纠正
V1.1版修正以下两个问题:
1、在个别函数内部运行脚本会出现一直runing的情况
2、有的函数体内部就一条jmp指令这种特殊函数引起的问题(Debug版的程序这种函数尤其多)

非常感谢以上各位道友反馈出的问题,各位相互转告下,下载V1.1版本
上传的附件:
2013-9-6 13:54
0
雪    币: 813
活跃值: (175)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
22
看到大家支持,很开心~
2013-9-6 13:56
0
雪    币: 19
活跃值: (74)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
支持一下,share spirit值得肯定!
2013-9-6 14:01
0
雪    币: 645
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
果断顶起 果断下载 多谢LZ
2013-9-6 21:33
0
雪    币: 1088
活跃值: (30)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
25
这个脚本好使
2013-9-6 22:14
0
游客
登录 | 注册 方可回帖
返回
//