首页
社区
课程
招聘
知道OEP怎么确定IAT地址呢?
发表于: 2005-8-3 11:21 8782

知道OEP怎么确定IAT地址呢?

2005-8-3 11:21
8782
我现在在学习用vc编写OD的plugin,目前的目标是尝试写Armadillo标准壳的自动脱壳插件。遇到两个技术上的问题请教各位。

1、已经得到OEP,如何确定IAT的offset和size?(ImportREC的autosearch IAT功能)
2、如何判断IAT中的某个thunk是否有效?看偏移么?(ImportREC的cut thunk功能)

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

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 383
活跃值: (786)
能力值: ( LV12,RANK:730 )
在线值:
发帖
回帖
粉丝
2
给个思路不知会能怎样的

IAT应该是没有加密的(你应该有避开加密的设计吧)
1.获取进程的加载模块.
2.从OEP处搜索Call[] 或 Call Jmp [] ,找出 IAT
3.比较Thunk的地址是否在加载模块内,是则按函数地址搜索输出表,一般能找到的,除0之外,不能找到的是垃圾

你要做的是完全修复脱壳吗?不然我觉得似乎没什么好用的...
2005-8-3 17:13
0
雪    币: 270
活跃值: (312)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
3
肯定要避开加密的,如果还要手动修复就不叫自动脱壳了:D
尽量减少需要手动干预的成分吧,我对壳还了解不深,很难保证可以做出什么样子。

直接找call[]似乎变型太多,比如我可以写成
mov eax,[]
call eax

这种就不能简单通过一个指令的格式来判断,需要牵涉到指令之间的逻辑关系,会比较繁琐(电脑毕竟不是人,一眼就能够看出是变型)

不过你提供的思路提醒了我,不知道如果我直接在00401000段找FF 25(jmp dword ptr[])是否可行。关键是我还缺乏经验,不知道是否有特例。
2005-8-3 19:33
0
雪    币: 270
活跃值: (312)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
4
2005-8-3 20:57
0
雪    币: 383
活跃值: (786)
能力值: ( LV12,RANK:730 )
在线值:
发帖
回帖
粉丝
5
呵呵,不最所有的加壳程序都采用 Jmp [] 的...
学ImpRec不是很好的说...还会有垃圾的
我不知你作何种程序的修复,修复的事有人要求能运行就行了,有人要接近完美(我也玩过,就有点烦锁已而)

你真是笨得很特别,既然要做成Ollydbg的插件,就要好好利用OD提供的功能,要做就要有10足的把握比较好

tips:

要获取正确的IAT,有点简便的方法,你可以拦截 “写入 IAT 的 指令”,从而获取正份IAT表,当然有很多冗余[自己排除都很方便](自己做比较代码,你所得到的应该是最准确的IAT结构),可看一下我在脱壳论坛的有关Arm的脚本包(如果你会看OS的话)
2005-8-4 11:14
0
雪    币: 270
活跃值: (312)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
6
最初由 askformore 发布
呵呵,不最所有的加壳程序都采用 Jmp [] 的...

我可没说我这个是通用脱壳器啊,是脱armadillo的,努力下水平提高后再考虑通用的问题

学ImpRec不是很好的说...还会有垃圾的
我不知你作何种程序的修复,修复的事有人要求能运行就行了,有人要接近完美(我也玩过,就有点烦锁已而)

自然是可以运行,不影响静态反汇编就够了,要求完美的可能大多都需要手工参与,机器的判断比人脑来说还是比较差的。


你真是笨得很特别,既然要做成Ollydbg的插件,就要好好利用OD提供的功能,要做就要有10足的把握比较好
........

咔咔,你呢句系赞定系弹啊?ollyscript我看过一下,也知道可以直接用来实现脱壳功能,不过我想学的是plugin的编写。恰好选了个比较大众化的题目而已。没什么特别的目标和想法,不去跌跌撞撞碰下钉子又怎么学得会东西?
2005-8-4 12:12
0
雪    币: 383
活跃值: (786)
能力值: ( LV12,RANK:730 )
在线值:
发帖
回帖
粉丝
7
机器从来就只会判断 0 和 1, 怪机器就好像在怪人脑笨和懒(个人观点,不可当真)

能不能运行还不要这么肯定的说,玩过脱壳的都知。。。如果你不能肯定脱壳上不会出问题,哈哈..出起问题来就有你够忙的...(标准壳已经算简单的了)

如果你觉得我有语言问题,

放心,不是要损你,我是不会左右批定你的选择的

既然你要跌跌撞撞,那你就去跌跌撞撞

即使你做好了,我也没打算用(心理一直是这么想的,没来做个Dumper工具方便)!...打算自用的更无话可说

就算是学写插件,也最好把基本功能做一下熟练熟练,不然你的思维不太可能活起来,再想这个吧...

算了,说多错多...不说就不来错...忘了我说的...我没有来过这里
2005-8-4 15:45
0
雪    币: 270
活跃值: (312)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
8
呵呵,我来这里是求教,不是讨骂的,上面的带有火药味的字句我当通通看不到,您可以来指导我的设计思路我还是十分感激您的

客观来讲,我对脱壳之类的是不在行,这就是我来看雪不断学习的原因。每个人有他成长的经历,您也许觉得我连壳都不会脱就写plugin是步子太大了,不过我的开发经验足以让我考虑各种情况,应付各种复杂的程序。

我对计算机的理解未必就在您之下。多说无益,让事实说话。

另外,jmp []的方法非我独创,我后来在kanxue老师的《加密与解密》11.5.3节也找到相同的解决办法,您可以认为我见世面少,不过以密界各高手联手参与的经典教程,我相信还是有足够的代表性的。应对现在大部分软件(而非匠心独运的crackme)足以。
2005-8-4 19:17
0
雪    币: 383
活跃值: (786)
能力值: ( LV12,RANK:730 )
在线值:
发帖
回帖
粉丝
9
冤枉啊...

我个人比较喜欢直话直说,用词可能快里忙准,但我翻看我的对话,除了个“笨”字用得比较异惑之外都没什么问题?因为我们都是讨论见解和感受而已,哪来的“讨骂”“火药”,或许你的自尊心太强...要别人用词要正正规规吧...

客观和实际(事实)来讲,我并没有对你的脱壳水平和计算机水平作出过任何实质性的评价,

或许你很少到脱壳论坛溜,像Loveboom(在背后说你,请不要打哈啾)那样的脱壳高级分子都经常在文章里以“菜鸟”自居,

我已经习惯了这种说法,你说你“我对壳还了解不深”,我是不以为言的,除非你经常发布你的作品,我才会对你的实力有所评价,

所以你的假想“您也许觉得我连壳都不会脱就写plugin是步子太大了”“我对计算机的理解未必就在您之下”,

我真的想都没有想过你的水平到达哪里这个问题,“就算是学写插件,也最好把基本功能做一下熟练熟练,

不然你的思维不太可能活起来,再想这个吧...”,这只是我的一个劝告而已,很平常呀,我相信熟悉能生巧,温古而知新。

至于“算了,说多错多...不说就不来错...忘了我说的...我没有来过这里”,我是认为,我都不会编程的,你不给我看到你的实物或设计框架,

我的什么意见都是空谈(比如说,你决定用这个,我提议你这个,不就白说),不知你决定向什么方向走,正所谓,条条大路通罗马,你要决定坐飞机我要坐饱马,难道我要跟你飞!

那个 5楼 的“笨”字恰巧没有太多的贬义,我是认为你要写插件对壳都你跟踪过,为什么不去用直接的方法,你应该会想到的,

而去用学ImpRec的传统方法,难道要做直接的比做传统的要更有价值?既然你决定了,我都没什么意见好给的,闪人去...

    这次澄清写得比较多,希望你会明白,我对人实力的评价是不会看口舌之说的...希望你能做出你自己的满意的作品,我也时间跟你聊了,祝你成功!
2005-8-6 16:05
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
我发现很多编程高手似乎对网络中的言语“感冒”,可能这些高手没有时间泡BBS。
记得上次看到有人在某编程高手的贴后说BT,结果此楼主以为别人在骂他 呵呵
2005-9-16 16:41
0
雪    币: 316
活跃值: (336)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
楼主,我支持你。涵养还是不错的
2005-11-1 21:36
0
游客
登录 | 注册 方可回帖
返回