《逆向工程核心原理》学习笔记6 运行时压缩

《逆向工程核心原理》学习笔记6

运行时压缩

一、压缩文件十分常见,只要通过一定的压缩算法,就能缩减文件的大小。

二、而运行时压缩是针对PE可执行文件而言的,和普通压缩器相比,运行时压缩器的明显不同是“PE文件的可执行性”。

三、常见的压缩器有:UPX,ASPack等

四、保护器:1.保护PE文件免受代码逆向分析的实用工具。
2.目的:防止破解,保护代码和资源
3.使用现状:常用于在线游戏的保护
4.常见保护器:商用:ASProtect,Themida,SVKP等
公用:UltraProtect,Morphine等

五、运行时压缩的测试
用UPX将notepad.exe压缩
upx下载地址:http://upx.sourceforge.net
下载好以后解压到当前文件夹,在终端(本人用的是win10的Windows PowerShell(管理员))进入upx.exe所在的目录,然后输入.\upx.exe如图所示《逆向工程核心原理》学习笔记6 运行时压缩_第1张图片
于是就出现了upx的使用方法
我们先将notepad.exe复制粘贴到工作目录,然后我们输入如下命令行参数,对notepad.exe使用运行时压缩(疑问:-o是什么参数?)

.\upx -o notepad_upx.exe notepad.exe

可以看到notepad.exe被压缩成notepad_upx.exe的信息,如果压缩后还想再看看notepad_upx.exe压缩的信息,可以输入以下命令行

.\upx -l notepad_upx.exe

就会出现以下的信息
《逆向工程核心原理》学习笔记6 运行时压缩_第2张图片
可以看到,文件的大小从67584缩小为48640,压缩比为71.97%
我们再用PEviewer来看看压缩前和压缩后有什么区别《逆向工程核心原理》学习笔记6 运行时压缩_第3张图片
这是没压缩前的notepad.exe
《逆向工程核心原理》学习笔记6 运行时压缩_第4张图片
这是压缩后的,可以看到,它们的变动主要在节区部分,原来的.text节区和.data节区分别变成了UPX0和UPX1,相应的各自的节区头也发生了改变,点开查看,发现UPX0的大小为0!在这里插入图片描述
我们看看UPX0的节区头,看看能不能发现什么《逆向工程核心原理》学习笔记6 运行时压缩_第5张图片果然发现了端倪,表示节区在内存中的大小的VirtualSize大小居然是10000H!
在这里插入图片描述
这就是说,在执行该.exe的瞬间,会有代码解压到这个节区,书上还说,解压缩和压缩的源代码都在第二节区(我也不知道为啥)。书上还说,解压完就可以开始进入EP了。《逆向工程核心原理》学习笔记6 运行时压缩_第6张图片

你可能感兴趣的:(《逆向工程核心原理》学习笔记6 运行时压缩)