运行时压缩

数据压缩

无损压缩

无损压缩:经过压缩的文件能100%恢复

有损压缩

有损压缩:经过压缩的文件不能恢复原状,压缩多媒体文件时大部分使用有损压缩

运行时压缩器

运行时压缩器:针对可执行文件而言,可执行文件内部含有解压缩代码,文件在运行瞬间于内存中解压缩后执行

压缩器

  • 使用目的:缩减PE文件的大小、隐藏PE文件内部代码与资源
  • 种类
    • 目的纯粹的压缩器:UPX、ASPack等
    • 目的不纯的压缩器:UPack、PESpin、NSAnti等

保护器

  • 使用目的:防止破解、保护代码与资源
  • 种类
    • 商用:ASProtect、Themida、SVKP等
    • 公用:UltraProtect、Morphine等

运行时压缩测试

以notepad.exe和UPX为例,对比如下:

  • PE头大小不变
  • 节区名称改变(".text"–>".UPX0",".data"–>".UPX1")
  • 第一个节区的RawDataSize=0,即第一节区在磁盘文件中是不存在的
  • EP位于第二节区(原来位于第一节区)
  • 资源节区基本没变化

调试

notepad.exe的EP代码

在这里插入图片描述

notepad_upx.exe的EP代码

在这里插入图片描述

参考文献

《逆向工会核心原理》