脱壳时附加数据处理

Eddy 发布于2010-8-14 20:54:51 分类: 技术心得 已浏览loading 网友评论0条 我要评论

最近脱个简单的壳,还忙活了好一会,后来发现是附加数据的问题,顺便记录下,给用的着的人作为一些参考。

不明白附加数据是什么的,先Google下吧……

简单说就是查壳时会显示overlay!

ASPack 2.12 -> Alexey Solodovnikov [Overlay]

这种情况脱壳后需要把附加数据补到脱壳修复后的文件尾即可,有工具可以做这个活,当然手动在winhex中操作亦可。找附加数据位置就是最后一个区段完,然后一直到文件尾即为附加数据。

上面是一般的处理方法。有时这样还不行,脱壳后的文件在读取附加数据时因为附加数据的地址变了,所以会出现读取错误而造成无法运行。这是我们只需要找到新的附加数据地址,然后OD载入修复后的脱壳程序,对SetFilePointer下断,等文件指针移到原附加数据地址时patch成新地址即可。

0012FB0C   00000178  |hFile = 00000178 (window)
0012FB10   000DFA00  |OffsetLo = DFA00 (915968.)
0012FB14   00000000  |pOffsetHi = NULL
0012FB18   00000000  \Origin = FILE_BEGIN

堆栈中看到关键地址(红色部分),也就是原来的附加数据地址,alt+f9返回,找到此地址的来源处,patch成新地址即可。

记得KeyMake生成的注册机脱壳用此种办法就可以解决,不过它那个里面地址是常数……

已经有(0)位网友发表了评论,你也评一评吧!
原创文章如转载,请注明:转载自Eddy Blog
原文地址:http://www.rrgod.com/technique/510.html     欢迎订阅Eddy Blog

记住我的信息,下次不用再输入 欢迎给Eddy Blog留言