区段减肥简单技巧
发布日期:2021-08-26 18:53:45 浏览次数:14 分类:技术文章

本文共 978 字,大约阅读时间需要 3 分钟。

第一步:从节表中删除 先纪录这几个节的起始位置,几个节的Raw是从0000D000到0009E000-1 LordPE中PE编辑器中在这几个节点右键选“清除区段”。 第二步:调整节表属性 只是删除了节表项目和文件中内容还不行,还要设置好节属性。 可以通过编程实现资源节的RVA调整,使RVA偏移等于文件偏移,较麻烦,且.mackt存有输入表信息很多RVA值不好改动。 我们用简单的办法,不动它的RVA地址,只改变它的文件偏移。 用PE编辑器中,打开区段,选择.rsrc节,编辑,因为删除的节首的ROffset为0000D000,所以现在.rsrc节的节首ROffset为0000D000,更改! .rsrc下面的节.mackt的Raw_偏移 = .rsrc节的Raw_偏移 + .rsrc节的Raw_尺寸 = 0000D000 + 00005000 =00012000,故更改.mackt 节的Raw_偏移为 00012000  还要调整一下.rsrc节上面的节.idata的节区大小,保证相邻节的VA地址是连续的 (.rsrc节的虚拟地址0009E000) - (.idata节的虚拟地址00007000) = 00097000 所以设置.idata的节区大小为97000第三步:从文件中删除 HexWorkshop打开该文件,选择偏移0000D000到0009E000-1,全部删除! 保存,656K --> 76K,比起原先52K虽然还大了一点,但已经比较满意了。“减肥两大法则”1、 Contains(包含) 有标记的区段一般不能删除,没有标记的可优先考虑2、 用OD载入需要减肥的文件,忽略所有异常,打开内存镜像,分别在各个区段上F2下断,F9运行!如果程序能够跑起来的话,那么这个区段一般就可以删除掉了(无用/垃圾区段)!“心中有数”熟悉5中常见的语言特征以及特征区段!附录Contains .text     代码段,我们反编译程序经常看到。.data     数据快,程序初始化用。.idata    输入表.rsrc     全部资源,如图标,菜单,位图。.reloc    保存基地址重定位

转载于:https://www.cnblogs.com/cracksa/archive/2012/08/30/debug_qdjf_7.html

转载地址:https://blog.csdn.net/weixin_33894992/article/details/92881375 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:敏捷开发一千零一问系列之二十三: UI设计怎么做到敏捷呢?(兼谈对UI热的理解)(下)...
下一篇:【原创】PostgreSQL 对简单树的遍历

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年04月02日 08时29分35秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章