首页
社区
课程
招聘
[求助]如何给脱壳后的某个区段减肥??
发表于: 2009-5-2 00:35 5022

[求助]如何给脱壳后的某个区段减肥??

2009-5-2 00:35
5022
正在尝试DLL的脱壳,发现脱壳后文件大小由原来的几十k猛增到数兆,虽然可以用,看着不爽想减减肥,90%以上是在data区段里的0数据引起的,试着把data后的几个区段挪到data断间(覆盖了0),同时把data区段减小,运行之,提示“dll加载失败”。用OD加载发现是代码里面还是用到了data区段的数据(虽然为0),有直接给出地址也有通过寄存器值运算出地址到data区段获取数据的,原想把这些地址全部找出来集中到一个片区,这个太累了而且不知道运行中会有什么变数,怎么办,这个data能减肥吗?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 219
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
惭愧,菜鸟偶尔发下帖子只有关顾,没有大牛指点迷津不过.data是可读写节,程序运行期间要写入数据的,不容易减肥
2009-5-6 09:06
0
雪    币: 2506
活跃值: (1000)
能力值: (RANK:990 )
在线值:
发帖
回帖
粉丝
3
http://bbs.pediy.com/showthread.php?t=28402
用 用  PE Optimizer 来优化一下。遇到问题请多搜索。
2009-5-6 09:40
0
雪    币: 219
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
谢谢CCDebuger的提醒,这篇文章以前也收藏了,还没动手实践很是佩服副坛主这些人能把pe文件玩弄于股掌之间,拆分区段再装配,什么PE头、输入表、输出表、重定位表等玩的有条有理,文中提到“有时为了使磁盘文件更小些,你可以用0x200对齐值”,这点不是很理解,文件块对齐方式由1000改为200会不会影响到dll的装载到内存中的大小??(菜鸟一个文件到内存的映射还没理解好)。
像这个dll脱壳前的.data属性是(文件只有300k不到,装载到内存要这么多的空间?),dump、脱壳后也是这样的属性,只是文件大小增加到7M(这个.data区段数据是实实在在的存到硬盘了吧?)。
有些代码是比如mov ecx, ds:[10720000](720000落在.data区间),.data经减肥后还会不会是720000?

突然想到脱壳前的那么小的文件能映射那么大的空间,脱壳后也应该可以的吧?难道就是文件块按0x200对齐可以了?好像也不对,脱壳前的对齐也是0x1000的呀。晕了晕了,算了还是回头重新消化下CCDebuger的脱壳优化文章
2009-5-6 10:55
0
雪    币: 219
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
怎么附件无效了?还是手写得了:
.data属性
Name  VOffset        VSize         ROffset      RSize
.data   00031000   006FAF00  00031000  00005000
2009-5-6 10:59
0
游客
登录 | 注册 方可回帖
返回
//