首页
论坛
课程
招聘
答fxbzn:DUMP出来的程序如何优化 之 一些建议
2005-3-10 23:04 6019

答fxbzn:DUMP出来的程序如何优化 之 一些建议

2005-3-10 23:04
6019
PE脱壳后,文件长度一般会增大,原因有以下几点:

1、脱壳后,壳的尸体依然存在;
2、脱壳后,重新建立了新的Import节、Reloc节等;
3、有些加壳程序,将原程序的某些节跟外壳增加的某些节合并后,搬移到了其他位置。
4、脱壳时候,因为采用的是dump内存,所以,在内存中对齐的PE镜象一般也会大于原始的PE文件,各个节的dump实际尺寸也会较原始PE文件的实际尺寸大。

解决方案:
    (1) 脱壳后,将各个有效的节分别转存到临时文件中。如:将“.text节,单独转存到一个text_tem.bin中”,其它节也是同样暂存到各个文件中,没有用的节(如壳尸体),抛弃掉。
    (2) 首先将text_tmp.bin等节中没有用的多余部分去掉,一般是最后对齐的内存镜象的多余部分。可以通过2进制编辑器,查看最后部分,一般是全00的部分。
    (3) 对应有多少个有效section,重新构造PE头,尽量做到最小。
    (4) 重新构造PE:将新的PE头、.text、.Import、.Export、.Data、..reloc等一次连接起来到一个新的PE文件。如果为了尽量缩小PE尺寸,连接前还可以考虑将某些节合并成一个节(如:将.Data,.Import,.Export,.Reloc等合并到一个节中)。
    (5) 按照PE格式,调整新的PE文件。这个过程比较复杂,包括:
        1、按照新的PE头中节的队齐要求对齐各个节的起始RVA
        2、对于各个节中RVA相关的地方,根据新的PE头重新计算并调整。如
           资源节中的各个RVA,Reloc中对应的重定位项,import和export中
           的某些地址指针等。
        3、按照文件对齐要求对齐新的PE文件。
    (6) 测试新的PE,如果有错误,通过跟踪调试,重新执行第(5)步骤,直到正常运行。

    对于(5)中调整相关的RVA,可以通过写一个工具完成,如计算调整资源节、Reloc节等,如果调整的比较好,新的PE一般跟原来的几乎一样,甚至会更小。我曾经作过一些调整工具,可以将:资源节、Reloc节等自动调整,并可以搬移到新的PE的任何可用的节空余部分,这些工具写起来很简单,可以根据需要自行编写,同时通过编写这些工具,可以大大增加对PE格式的认识。需要说明的是:大部分表(节)的起始地址一般要求双字边界的地址(即起始地址为4的整数倍,如0x634b4有效,0x634b1-0x634b3无效),如资源表、Reloc表等。其他没有什么可注意的,只要细心就完全可以做到。

                                              Spring.W
                                              2005.3.10

【看雪培训】《Adroid高级研修班》2022年夏季班招生中!

收藏
点赞0
打赏
分享
最新回复 (7)
雪    币: 203
活跃值: 活跃值 (10)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
clide2000 活跃值 7 2005-3-10 23:16
2
0
学习了,强啊
雪    币: 180
活跃值: 活跃值 (15)
能力值: ( LV12,RANK:370 )
在线值:
发帖
回帖
粉丝
newsearch 活跃值 9 2005-3-11 00:42
3
0
的确是高手啊!
雪    币: 126
活跃值: 活跃值 (445)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
daxia200N 活跃值 6 2005-3-11 10:50
4
0
老大要是举个例子,就更好啦。
雪    币: 454
活跃值: 活跃值 (22)
能力值: ( LV12,RANK:660 )
在线值:
发帖
回帖
粉丝
prince 活跃值 16 2005-3-11 11:53
5
0
学习!
雪    币: 19
活跃值: 活跃值 (10)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
pendan2001 活跃值 4 2005-3-11 12:45
6
0
学习!
雪    币: 231
活跃值: 活跃值 (126)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
liuyilin 活跃值 2005-3-11 18:14
7
0
还没有到刻意追求体积的境界
雪    币: 235
活跃值: 活跃值 (27)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
ah007 活跃值 2 2005-3-11 20:52
8
0
这篇文章太好了,希望有更好的同类文章出现,让我等菜鸟赏眼!
游客
登录 | 注册 方可回帖
返回