运行时压缩
数据压缩
无损压缩
无损压缩:经过压缩的文件能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代码
参考文献
《逆向工会核心原理》