首页
社区
课程
招聘
关于修复IAT的一个小问题
发表于: 2006-6-25 16:37 4177

关于修复IAT的一个小问题

2006-6-25 16:37
4177
怎样根据dll的函数的地址来判断是不是属于同一个dll的函数?
我不会判断,所以用了一个很笨的方法来分隔,也就在所有函数
之间用0来分隔开来,无论相邻两个函数是不是属于同一个DLL,
虽然修复的程序能够正常运行,但是IAT很难看,像这样子:
OEP: 00006B05        IATRVA: 0003B000        IATSize: 00000188

FThunk: 0003B000        NbFunc: 00000001
1        0003B000        user32.dll        02AB        TranslateMessage

FThunk: 0003B008        NbFunc: 00000001
1        0003B008        user32.dll        0293        ShowWindow

FThunk: 0003B010        NbFunc: 00000001
1        0003B010        user32.dll        023C        SendMessageA

FThunk: 0003B018        NbFunc: 00000001
1        0003B018        user32.dll        0237        SendDlgItemMessageA

FThunk: 0003B020        NbFunc: 00000001
1        0003B020        user32.dll        02BC        UpdateWindow
...................

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

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
2
厉害

只要判断地址>base <base+size就可以认为是某个dll的函数
但是注意类似RtlGetLastError这种转向函数
2006-6-25 18:37
0
雪    币: 304
活跃值: (82)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
3
我只是菜鸟,
那么是否需要把所有可能用到的DLL的基址和大小放到一个数据表里面
用的时候再拿需要判断的地址来一一比较?
2006-6-25 19:22
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
太高深了看不太懂啊。
2006-6-27 10:27
0
雪    币: 214
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
晕  我也看不懂!!!
2006-6-28 02:37
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
完全不懂,不过关注顶一下!
2006-6-28 09:03
0
游客
登录 | 注册 方可回帖
返回
//