首页
社区
课程
招聘
[旧帖] [原创]一个菜鸟的普通方法减小PE的操作 0.00雪花
2013-1-17 10:37 3033

[旧帖] [原创]一个菜鸟的普通方法减小PE的操作 0.00雪花

2013-1-17 10:37
3033
最近一直在研究怎么改动pe文件,上网查了一些资料发现大部分是都是增加一些PE节的资料,很少有减小PE的资料。于是自己动手也尝试了一下减小PE,写出来供和我一样菜的一起进步。
我以C++写的一个简单的HelloWorld程序为例对操作步骤进行讲解。菜鸟一个其中不足之处还请大家谅解。
减小PE的操作
1.确定内存中的节的对齐粒度和文件中的节的对齐粒度,如图所示:

也就是说 内存和文件的对齐粒度都是1000h.由于要我们的目的是要减小PE文件的大小因此我们只用修改文件中的对齐粒大小  这里我们修改为200h。如图所示:

2.此时我们可以动手删除PE中为0的无用数据。先删除PE+节表和节表内容之间大部分无用的零。这里一定要注意无论怎么删除一定要保证PE+节表的大小是严格按着200h对齐的,如果不对齐,系统加载时就会出错。 这里我把删减到400处,如图所示:      

节表内容之间的无用数据也是照此方法删减,但一定要记住按之前我们修改过的文件内对齐粒200h对齐,否则就会程序不能正常运行。
3.这是未删减数据时在节表中的信息  咱们只要观注红线部分就可以了  因为这和咱们要修改PE文件大小相关  其他字段可以暂时不用考虑。

这我以text表为例说一下:
00400000 00100000  因为是按Little-Endian编码方式,所以咱们看着可能有点不对劲。缓过来就舒服了4000h指的是text文件对齐后的的大小,1000h是它在文件中的偏移位置。因为咱们之前删除了PE+节表和节表内容之间大部分无用的零,所以的text的偏移位置肯定发生变化,这里1000h改成修改后的偏移位置。然后在计算删除text中的无用的0后的大小,修改4000h。其它表的修改方法和此一样。我修改完后的数据如图所示:

4.还有就是修改程序入口点,这个不知道有没有用  第一次修改时我没有修改程序能正常运行,修改后没有什么太大变化。

[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

上传的附件:
收藏
点赞3
打赏
分享
最新回复 (7)
雪    币: 44
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wanghanp 2013-1-17 10:51
2
0
学习了!
感谢分享~
雪    币: 29414
活跃值: (18625)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
kanxue 8 2013-1-17 10:59
3
0
直接给你转为正式会员了。希望以后看到你的更多好帖。
雪    币: 652
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
阳光code 2013-1-17 11:30
4
0
支持原创。。。。。。。。。
雪    币: 40
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
oldenough 2013-1-17 11:32
5
0
果然有创意,学习了。
雪    币: 68
活跃值: (30)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
wansichao 2013-1-17 15:37
6
0
大大你偏心 无视论坛规则 小心挨雷劈
雪    币: 29414
活跃值: (18625)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
kanxue 8 2013-1-17 16:18
7
0
http://bbs.pediy.com/showthread.php?t=88024

1)通过论坛正式会员赠予获得邀请码;
2)请写一篇文章,文章要达精华帖的要求:必须原创,转帖无效。
3)能为看雪网站/论坛建设提供帮助的(如有价值的建议,美工,网站搭建等)


邀请码只是一个加入论坛的一个小门槛,若直接证明自我价值,论坛随时欢迎你的加入 。
雪    币: 1683
活跃值: (380)
能力值: ( LV15,RANK:440 )
在线值:
发帖
回帖
粉丝
hackerlzc 10 2013-1-17 16:52
8
0
注意设置自校验的程序,驱动默认是设置自校验的。
游客
登录 | 注册 方可回帖
返回