首页
社区
课程
招聘
请问import_Rec是怎么自动寻找IAT
发表于: 2004-11-13 15:17 6042

请问import_Rec是怎么自动寻找IAT

2004-11-13 15:17
6042
以前有人曾回答我说是根据跳转表,但是我做了以下实验,把NOTEPAD的跳转表全部nop掉,但是import_Rec他还是能找到IAT。于是我怀疑这个结论,而且对于NOTEPAD的跳转表也很简单只是comdlg32的部分。
00404FAA     - FF25 1C654000     jmp dword ptr ds:[<&comdlg32.Comm>;  comdlg32.CommDlgExtendedError
00404FB0     - FF25 18654000     jmp dword ptr ds:[<&comdlg32.GetS>;  comdlg32.GetSaveFileNameA
00404FB6     - FF25 14654000     jmp dword ptr ds:[<&comdlg32.Page>;  comdlg32.PageSetupDlgA
00404FBC     - FF25 10654000     jmp dword ptr ds:[<&comdlg32.Find>;  comdlg32.FindTextA
00404FC2     - FF25 0C654000     jmp dword ptr ds:[<&comdlg32.Choo>;  comdlg32.ChooseFontA
00404FC8     - FF25 08654000     jmp dword ptr ds:[<&comdlg32.GetO>;  comdlg32.GetOpenFileNameA
00404FCE     - FF25 20654000     jmp dword ptr ds:[<&comdlg32.GetF>;  comdlg32.GetFileTitleA
00404FD4       00                db 00
00404FD5       00                db 00
00404FD6       00                db 00
如果说import_Rec只是根据跳转表的长度确定IAT的大小是肯定不对的,那他是通过什么办法的呢?

另外还有一个问题,在OEP的地方不一定要填入OEP,可以添其他的地址,对于stolen code的FOEP就是最好的例子。是不是说填写的OEP只是让import_Rec知道应该在这个区段寻找JMP TABLE呢?至少现在我是这么认为的,不知道是不是正确!

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 1
支持
分享
最新回复 (7)
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
怎么没人回答呢?
2004-11-13 22:01
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
再顶一起一次~如果还没人回答我就算了!
2004-11-14 17:15
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
4
没研究过importRec

BTW:并不是所有的问题都有人可以回答
大家是乐意回答自己知道的问题的
2004-11-14 17:17
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
个人认为对于importRec研究对出学者很重要,且不说如何理解IAT加密这个概念,就说方法来也可以说是多一种~
既然大家都不“乐意”回答,那我就不再问了!
btw:虽然没有得到答案,但是还是谢谢斑竹的回答!
2004-11-14 17:32
0
雪    币: 154
活跃值: (216)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
对应两种情况,一种是:自动搜索IAT范围。首先从EIP处反汇编程序代码,找到CALL DWORD PTR [API]或者JMP DWORD PTR [API]这两种形式的调用。来确定API的大致位置。然后以此向后向前寻找00000000 00000000 两个全零DWORD,来确定IAT的范围。
第二种情况:自己手动输入IAT起始地址和SIZE,这比第一种方法实现起来简单多了,不讲了。我想应该是这样的吧!当然仅止于我想
2004-11-15 00:19
0
雪    币: 16
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
7
嘿嘿,刚才找到一个好工具~~整屏的图片才30k~~~以后俺不打字了~



2004-11-15 03:51
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
最初由 采臣・宁 发布
对应两种情况,一种是:自动搜索IAT范围。首先从EIP处反汇编程序代码,找到CALL DWORD PTR [API]或者JMP DWORD PTR [API]这两种形式的调用。来确定API的大致位置。然后以此向后向前寻找00000000 00000000 两个全零DWORD,来确定IAT的范围。
第二种情况:自己手动输入IAT起始地址和SIZE,这比第一种方法实现起来简单多了,不讲了。我想应该是这样的吧!当然仅止于我想

首先感谢兄弟的回复。
兄弟的想法我也考虑过,虽基本上赞成你的观点,但在有些时候还是存在问题。发现有些壳在加密JMP table了以后,会导致import rec找不到IAT或者是找错,所以发问,再次感谢!
2004-11-15 15:36
0
游客
登录 | 注册 方可回帖
返回
//