首页
社区
课程
招聘
[翻译]QuietRIATT:通过HOOK DLL函数重建IAT
发表于: 2010-2-11 10:24 10162

[翻译]QuietRIATT:通过HOOK DLL函数重建IAT

2010-2-11 10:24
10162

QuietRIATT:通过HOOK DLL函数重建IAT

作者:Jason Raber (jraber@rri-usa.org)
Brian Krumheuer (bkrumheuer@rri-usa.org)
译者:riusksk (泉哥:http://riusksk.blogbus.com)

前言
对于逆向工程师而言,重建一份庞大的输入地址表(Import Address Table)可能是个很耗时又很单调的过程。当IAT完全被hash或者munge(译注:进行大面积改动)时,目前的一些IAT重建工具可能无法解析出相关的输入函数,这时我们可以采用其它方法来手工重建输入表。随着输入表大小的不同,重建它可能得花耗数天,甚至数周。当然,如果手工重建的话,还可能会产生一些错误。本文讲到的QuietRIATT是作为IDA Pro插件来使用的,当目前的一些IAT工具无法重建IAT时,就可以使用它来自动重建IAT。这样不但可以大大地缩短所花费的时间,而且可以免除一些手工修复的错误。

详细资料
QuietRIATT不像目前的一些IAT重建工具那样,它并非简单地读取进程的IAT,而是超出这些工具所含有的各种追踪方法。QuietRIATT所与众不同之处,在于它通过HOOK DLL(Kernel32.dll,User32dll等等)函数的方法,为进程中所使用的每个DLL函数创建一份函数名与返回地址列表,这份列表用于创建一份新的IAT。当其它工具重建失败时,我们就可以使用这种方法来重建IAT。除非恶意软件检测到DLL函数的踪迹,进而导致进程终止运行。
        QuietRIATT是为了方便逆向分析恶意软件而设计的,其中主要是针对那些通过修改或重定向IAT以防止ImpREC重建IAT的恶意软件。通常,像ImpREC这样的工具都是使用自动追踪的方式来自动修复IAT,但如果当IAT被完全重定向,或者当使用哈希函数来解析外部引用地址时,这些工具将无法修复IAT,而QuietRIATT就是用于处理这些情况的程序。
QuietRIATT主要有三个处理过程:
1)        作为Microsoft Detours的修改版来hook DLL函数。当附加进程时,它将记录DLL函数的创建时间,并生成一个文本文件,以记录函数名及返回地址。
2)        QuietRIATT分析这一文本文件,并将这些信息注释到IDA Pro数据库中。通过这一数据库,它又创建了另一包含IAT详细信息的文本文件。
3)        将这一新文件加载到ImpREC中,以便为原始程序的dump添加新的IAT。

…………
具体内容参见附件:


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 7
支持
分享
最新回复 (5)
雪    币: 1407
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
支持一下 好像是去年blackhat-usa的某篇
2010-2-11 11:02
0
雪    币: 433
活跃值: (1870)
能力值: ( LV17,RANK:1820 )
在线值:
发帖
回帖
粉丝
3
对,确实是BH上面的文章,呵呵
2010-2-11 12:24
0
雪    币: 5327
活跃值: (3719)
能力值: ( LV13,RANK:283 )
在线值:
发帖
回帖
粉丝
4
很好的资料,楼主辛苦了
2010-2-24 13:59
0
雪    币: 67
活跃值: (1601)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
这个插件在哪可以下载QuietRIATT
thank you!
2010-3-10 09:07
0
雪    币: 433
活跃值: (1870)
能力值: ( LV17,RANK:1820 )
在线值:
发帖
回帖
粉丝
6
我也没找到,BH上面没有提供下载
2010-3-11 21:20
0
游客
登录 | 注册 方可回帖
返回
//