运行时压缩(UPX)

任何文件都是由二进制组成的,因而只要使用合适的压缩算法,就可以是文件大小进行压缩。

无损压缩:经过压缩的文件能完全恢复。如7-zip、面包房等压缩程序。

有损压缩:经过压缩的文件不能完全恢复。压缩多媒体文件时大部分使用有损压缩。

运行时压缩器:

运行时压缩器(Run-Time Packer)是针对可执行文件而言的,可执行文件内部含有解压缩代码,文件在运行瞬间在内存中解压缩后执行。

运行时压缩文件也是PE文件,内部含有原PE文件与解码程序,在程序的EP代码中执行解码程序,同时在内存中解压缩后执行。

与普通压缩器相比,运行时压缩器的明显区别是PE文件的可运行性。

把普通的PE文件创建成运行时压缩文件的程序称为压缩器,经反逆向技术处理的压缩器称为保护器。

PE压缩器是指可执行文件的压缩器,其目的主要是缩减PE文件大小、隐藏PE文件内部代码与资源。

PE保护器是一类保护PE文件免受代码逆向分析的实用程序,应用了如反调试、反模拟、代码混乱、多态代码、垃圾代码、调试器监视等技术,通常用于防止破解、保护代码与资源等。

普通压缩和运行时压缩的比较如下表:


这里使用UPX压缩器,对notepad程序进行压缩:


可以看到,notepad文件经压缩后大小缩减了35231。

运行时压缩比普通的ZIP压缩的压缩率较低,原因在于压缩后仍是PE文件,需要添加PE头和放入解压缩代码。

使用PEView查看该文件:


可以看到,第一个节区的RawDataSize为0,即第一节区在磁盘文件中是不存在的,但第一节区的VirtualSize为00010000,即第一节区在内存中是存在的。由此可知,经过UPX压缩后的PE文件在运行瞬间将压缩的代码解压到内存中的第一节区中。也就是说,解压缩代码和压缩的源代码都在第二节区,文件运行时首先执行解压缩代码,将处于压缩状态的源代码解压到第一节区࿰

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值