逆向工程核心原理——第十四章

运行时压缩

压缩还分为无损压缩和有损压缩:

无损压缩:使用压缩过的文件之前需要解压,解压之后可以百分之百恢复文件内容。

有损压缩:只用时不需要解压,故压缩时会对源程序有一定的损坏。

运行时压缩

这种压缩时针对可执行文件来说的,可执行文件内部含有解压代码,在运行瞬间于内存中解压后执行。

把普通PE文件创建成运行时压缩文件的实用程序称为“压缩器”,经烦你想技术特别处理的压缩器成为保护器(壳)

保护器的使用目的:保护PE文件遭到逆向破解。

接下来我们选择一个PE文件然后加上壳看一下。

首先我们写一个简单的程序:

#include<stdio.h>
int add(int a, int b)
{
	return a + b;
}
int main()
{
	int a = 2, b = 3;
	printf("%d
", add(a, b));
	return 0;
}

然后我们将加了壳和没有加壳的exe文件进行一个对比。

这里我们跟着书上一起使用upx压缩器。

这里我们看到压缩了之后,大小有着明显的缩小。

用lordPE打开之后,也可以看到,PE文件被改变了很多。

总结一下,所谓的保护器(壳),就是一种反编译的压缩工具,它会改变文件的pe文件。

原文地址:https://www.cnblogs.com/lex-shoukaku/p/13335801.html