PE可执行文件“减肥”实例

本文介绍了如何将一个查看密码的程序从原本的6KB大小优化到4KB,通过分析PE文件结构,移除不必要的数据节,手动处理导入表,以及压缩PE头中的DOS块,实现了程序的瘦身。
摘要由CSDN通过智能技术生成

    网上有很多用于查看“拨号设置”、“邮箱帐号”等密码框密码的程序,大小从几十KB到几百KB不等。其实,就是向edit控件发送一个WM_GETTEXT消息,并没有什么神秘的技术可言,程序写起来也并不复杂,大小应该几KB足以。让我们看看它到底能小到什么程度?

    (相关程序,请在www.csdn.net“软件频道→工具类软件→其他工具”处,下载“mini密码查看器”)

    要得到密码框中的密码,一个WindowFromPoint()API函数,加上一个WM_GETTEXT消息,就可以简单搞定。再加上一些交互操作,代码不会超过1KB。

    在Windows GUI环境中,当然少不了用户界面。程序是基于对话框的,其中包括一个edit,1个static和一个icon。资源部分不到1KB。

    界面太寒酸了,让它modern一些吧:增加一个ToolTip;动态改变一下Cursor;再子类化一下static,用它实现超链接功能。至此,代码小于2KB。

    PE格式文件头:1KB。

    1KB文件头+2KB代码+1KB资源=4KB,这么说,编译后程序的大小是4KB吗?NO!程序大小将超过6KB!

    用UltraEdit打开刚编译好的可执行文件观察一下,发现代码编译得并不紧凑,里面有大块的留白区域,看来程序尺寸还可以再减小。这就需要用我的InsidePE工具来仔细分析一下程序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值