虚拟化包装器在野外有多普遍?

逆向工程 混淆 静态分析 恶意软件 开箱 虚拟机
2021-06-26 02:12:13

我刚刚进入 RE 领域,大约一年前,我在课堂上了解了虚拟化加壳程序(如 VMProtect 或 Themida)。恶意软件真正与虚拟化加壳程序打包在一起的频率如何,解压缩它们以进行静态分析的最新技术是什么?

4个回答

虚拟机在野外的使用

它们很少使用,甚至更糟(或更好),很少以有用的方式使用。

如何使用它们

通常,它是使用仅主函数的虚拟器或另一个二进制加壳器,这两种情况都不会阻止分析:如果绕过虚拟化加壳器代码,那么无论如何你都会得到原始的解压代码。

为什么它们不经常使用

  • 它使目标变得臃肿和变慢
  • 正确使用它们并非易事
  • 根据他们(通常是盗版)许可证的水印来检测它们是相当普遍的,所以无论你虚拟化什么,它都会被特定的指纹检测到。

一个有意义的例子

AFAIK 唯一已知的恶意软件中虚拟化器(此处为 VMProtect)的智能使用是 Trojan.Clampi,Nicolas Fallière 为其撰写了一份白皮书,但并没有那么详细。对于这个,整个病毒体都被虚拟化了。

去虚拟化论文

我找不到这些(其他方面很好)论文的公共下载链接:

我可以支持其他响应者的观点。在查看野生样本时,您很少会遇到代码虚拟化。

补充一点,这是Tora最近的案例研究,研究了FinFisher 中使用的自定义虚拟化(抱歉,直接链接到 PDF,没有其他来源)。

这里使用的 VM 只有 11 个操作码,因此这个例子很容易理解,并用于了解自定义 VM 背后的一些常见设计原则。

在过去一年左右的时间里,我想我只遇到过一个使用虚拟化打包程序(在这种情况下为 VMProtect)的恶意软件样本。我查看的大多数示例都使用愚蠢的打包程序,它们可以轻松地从内存中转储原始 PE。我不会把所有的时间都花在研究恶意软件上,但我通常每周会查看几个潜在的恶意样本,只是为了对我所谈论的数量给出一些看法。另外,我似乎记得 SpyEye 作者使用 VMProtect 来保护恶意软件构建器,我不确定其他销售此类工具包的人是否也使用过它。我听说 Citadel builder 有一些非常粗糙的保护,但我不确定它是什么。

关于您问题的第二部分,我不是专家,但我想到了几个网站,可以检查您是否有兴趣尝试学习解压缩这些东西。 这个站点有一些关于拆包各种东西的帖子,包括 VMProtect 和 Themida。我没有特别浏览这些帖子,只是注意到它们在那里。如果您有兴趣查看其中一些,我认为tuts4you.com上也有一些教程涉及这些特定包装器的某些版本

对于您问题的第一部分:这实际上取决于域。利用基于虚拟化的加壳程序的恶意软件样本通常很容易检测,从恶意软件作者的角度来看,这是一个缺点。如果避免检测至关重要,尤其是在您的样本可能是自定义的有针对性的攻击中,那么虚拟化加壳程序就不是一个好主意。我认为这就是为什么只有很少的样本使用它们的原因。在过去一年左右的时间里,我只见过一个(themida protected)。