·汉化新世纪 ·汉化新世纪论坛 ·百家争鸣 ·论坛集萃 ·汉化问答 ·软件介绍
文章首页 >> 汉化教学 >> 汉化脱壳 >> 正常的资源有何特征呢, 脱壳后如何恢复正常的资源布局    Creative Commons License,创作共用协议(中文版)  署名 非商业性使用 禁止演绎

正常的资源有何特征呢, 脱壳后如何恢复正常的资源布局

作者: 曾半仙 来源:BT Home Mirror#2 时间:2007-06-18 点击:13894

标准资源一般用来指PE文件中, 目录中资源目录记录所指向的资源目录和目录中资源项记录所指向的资源项的空间合集.
一般新手和粗心人脱壳后, 以程序能运行作为脱壳成功的信号, 这是不严谨和要死人的...
关于导入表的医错, 在论坛上已经反复的罗嗦过, 后文再补记, 这次就单表资源吧.
一般packer默认的选项都会压缩资源, 而惯用的方式是除第一个图标项目录或者第一个图标项目录的第一个图标项和版本资源外, 其他资源目录指向的都是和原代码段数据段混合在一起的未初始化空间, 由壳在初始化时候, 将压缩过的数据还原到此处的.
在磁盘上的区段排列中, 加壳后的rsrc段, 仅仅包含完整的资源目录和未经压缩的图标/版本信息, 这两个是用来在资源管理器中枚举图标和在左侧卷展栏/鼠标悬浮提示中提示厂商/版本信息等文字的, 因为是静态方式的萃取资料, 所以不能由壳来解压.
而余下的资源项, 其地址通常位于资源目录前的虚胖段, 既占用内存空间远大于磁盘空间的段(按照颗粒对齐后), 在脱壳后, 通常手脱或者通用脱壳机或者专用但是编写者技术一般的脱壳机, 会简单利用内存中解压后的数据, 将此段填实.
而资源编辑器/汉化工具在处理资源时候, 通常有以下行为特征或者完整性检测, 不符合完整性的或者提示, 或者勉强能够编辑资源, 但是保存后, 会覆写到业务数据而甭特.
根据Windows的PE Loader的行为和链接器产生文件的特征, 总结出三个基本条件, 来描述脱壳后的资源修复.
1. 资源目录记录和资源项记录与指向的资源项必须位于同一个区段中, 区段名通常为rsrc/.rsrc, 区段不能具有可执行属性.
2. 资源段必须位于所有不可丢弃段(不可挪动段)的后方, 也就是除了基址重定位表所在的区段外, 资源段后面不能有其他磁盘区段.
3. 资源段里面不能有其他乌七八糟的目录参考到这里, 正如资源目录不能参考到其他乌七八糟的目录一样.
 
正常资源(而不是合法资源)的特征的一个字, 从以上的描述就可以看出来了吧, 没错, 就是美.
要还原也好或者说再造出美的资源, 首先要让资源段独善其身, 而后要让资源段位于可以自由屈伸的后面, 而原所占据的空间最好要推挤填充过去.
当然, 有一些工具可以利用, resfixer, resource binder, presfix, df_fix都可以用来完成一些或者全部重要步骤.
04年左右我也出过一个ReJacker, 不过这个主要的功能并不是修复资源, 而是用作修壳中一些相关的导出和调整.

汉化新世纪 责任编辑: 乾 .:|:. 标签(Tag): 资源 脱壳

·上一篇: 如何用 Passolo 创建多语言目标文件 ·下一篇: 两度抄袭,即日起封杀bbl(blg987)的ID

· 版权申明: 本文引自《BT Home Mirror#2》,如有版权疑问请及时联系本站,以便本站处理。

· 转载申明: 本文引自《BT Home Mirror#2》[ 作者: 曾半仙],如需转载请直接联系原始作者,并请注明原始出处。

相关文章                                                                                发表评论 打印此文 关闭窗口

| 设为首页 | 加入收藏 | 联系我们 | 友情链接
Creative Commons License,创作共用协议(中文版)  署名 非商业性使用 禁止演绎
本站内容,除转载或版权特别申明的内容外,皆遵守 创造共用协议中文版之“署名-非商业性使用-禁止演绎 2.5 中国大陆”条款
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 2.5 China License.
本网站内容源自汉化新世纪论坛的摘录和汉化新世纪成员的原创文章。
凡汉化新世纪论坛的文字皆默认为汉化新世纪与原作者共同拥有并授权发布。
如对本站发布文章有所异议请来信告知,我们将及时删除。
凡商业摘录本站文字请先与我们联系,本站将保留非授权商业发布的追究权利。
凡非商业摘录本站文字请明显注明出处和原作者,并不得改动,凡改动必先征求原作者同意。
苏ICP备05002283号