在这篇文章中,我们将试图解释术语包装者,密码者,和保护者在他们如何在恶意软件中使用的背景下。请记住,这些类别的定义不是一成不变的,它们都有重叠,规则也有例外。但这是对我有意义的分类。

他们的共同之处在于他们的目标

有效载荷,即威胁行动者想要在受害者计算机上运行的实际恶意软件,受到了反向工程和(由安全软件)检测的保护。这是通过添加严格来说不是恶意代码,但只是为了隐藏恶意代码的代码来实现的。所以目标是把有效载荷藏起来不让受害者和研究人员拿到文件。

封隔器

这通常是“运行时打包程序”的简称,也称为“自解压缩档案”。当“打包文件”被执行时,在内存中解包的软件。有时这种技术也被称为“可执行压缩”。发明这种类型的压缩是为了使文件更小。这样用户就不必在执行之前手动解包了。但考虑到目前便携式媒体的规模和网速,对小文件的需求不再那么迫切。所以,当你看到现在一些包装器被使用时,它几乎总是出于恶意的目的。从本质上讲,这会使逆向工程更加困难,还会带来受感染机器上占用空间更小的额外好处。

地穴

密码者最原始的技术通常被称为混淆技术。这是一个更详细的博客文章混淆:恶意软件最好的朋友.混淆也经常在脚本中使用,比如javascript和vbscript.但大多数时候,绕过或消除混淆并不难。更复杂的方法使用实际的加密。大多数加密者不仅加密文件,而且加密软件还为用户提供了许多其他选项,使隐藏的可执行文件尽可能难以被安全供应商发现。在我们的博客文章中可以找到对一个密码器(作为一个例子)的深入分析恶意软件密码-欺骗性的第一层.你会在那篇文章中发现的另一件事是表达FUD(完全不可检测),这是恶意软件作者的最终目标。能够不被任何安全供应商发现是恶意软件作者的圣杯。但如果他们能在一段时间内不被发现,然后在被发现后轻松地再次更改文件,他们就会满足于此。

保护者

在这种情况下,保护器是旨在防止程序篡改和反向工程的软件。所使用的方法可以而且通常将包括打包和加密。这种组合加上一些额外的功能,通常被称为保护器。因此,研究人员将面临载荷周围的保护层,使逆向工程困难。

另一种完全不同的方法(也属于保护程序的保护伞)是代码虚拟化,它在每次使用自定义的不同虚拟指令集来保护应用程序时使用它。在这些保护器中,有一些是用于游戏行业打击盗版的专业版本。但这种技术本身也被用于恶意软件,更确切地说,是勒索软件。这使得勒索软件不需要C&C服务器就能传递加密密钥。这种保护是如此有效,以至于加密密钥可以硬编码到勒索软件中。一个例子是成束的巴特它使用了开源代码虚拟化项目WProtect。

总结

我们讨论了几种防止恶意软件被分析的技术,希望对这类程序使用的不同名称有所了解。