吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2048|回复: 9
收起左侧

[已解决] upx手动脱壳后为什么程序会变大这么多

[复制链接]
Pammer 发表于 2022-2-3 12:47
本帖最后由 Pammer 于 2022-2-3 16:32 编辑

如题,自己写了个helloworld再脱壳,原来4kb的程序变成了40kb,这是为什么?
1L~%%JF[3BWN24X6IRAK1TD.png

免费评分

参与人数 1热心值 +1 收起 理由
glz220 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

woflant 发表于 2022-2-3 16:07
Pammer 发表于 2022-2-3 14:48
额,你误解我的意思了,我是说压缩之后再脱壳会变得比原程序还大,这个是为什么

脱壳出来的部分是按照内存对齐值对齐的,源程序存储是按照文件对齐值对齐;
内存对齐值好像是0x1000,而文件对齐值好像是0x200
运行程序时系统会将程序按照内存对齐值调整,存储文件则使用较小的文件对齐值减少占用

对齐值部分涉及pe文件结构相关知识

免费评分

参与人数 1吾爱币 +1 收起 理由
Pammer + 1 谢谢@Thanks!

查看全部评分

落红护花 发表于 2022-2-3 13:11
十一七 发表于 2022-2-3 12:58
woflant 发表于 2022-2-3 13:11
upx本来就是压缩程序,减少占用体积的壳,脱壳自然程序占用体积会变大
 楼主| Pammer 发表于 2022-2-3 14:48
woflant 发表于 2022-2-3 13:11
upx本来就是压缩程序,减少占用体积的壳,脱壳自然程序占用体积会变大

额,你误解我的意思了,我是说压缩之后再脱壳会变得比原程序还大,这个是为什么
我今天是大佬 发表于 2022-2-3 15:00
upx就是自带压缩了
yangand 发表于 2022-2-3 16:09
本帖最后由 yangand 于 2022-2-3 16:17 编辑

一般文件对齐是0x200,也就是说代码哪怕只有个字,编译成文件也有0x200,
脱壳是,把程序从内存DUMP下来的,而内存对齐是0X1000,也就是说,文件大小如果只有0x200, 加载到内存中的时候,也会只1KB的内存。这样DUMP下来,文件就会变大。
另外区段不是”连续“的。比如第一个区段起始是0x1000,  文件大小是0x200, 而第二个区段起始地址是0x100000, 那么加载到内存中的时候,第一个区段所占的内存就变成了 0x10000-0x1000;  这样DUMP下来。文件大小就扩大了上百倍了。
具体请查看文件对齐,内存对齐,以及PE相关的知识

免费评分

参与人数 1热心值 +1 收起 理由
Pammer + 1 谢谢@Thanks!

查看全部评分

luxiaole 发表于 2022-2-3 17:49
楼上正解,基础扎实,向大佬学习
1213Hao 发表于 2022-2-7 20:55
加壳压缩
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 23:22

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表