自定义虚拟机保护

逆向工程 调试 二元分析 反编译 开箱 虚拟机
2021-06-26 10:30:26

有人会如何对受虚拟机保护的样本进行逆向工程?问题是它opcode不再是bytecode我不知道的,因为它是一个私人虚拟机,所以你将如何解决这个问题,考虑到ida pro其他工具不起作用,你们中的一些人可能会说找到在OEP这是可能的,如果它是一个简单的包装完全拆开它自身在第一击,但它不是这种情况在这里意志。

我正在寻找有关如何解决此问题的想法。

1个回答

当样本受到 VM 保护时,对代码本身进行逆向工程的唯一方法是从了解 VM 开始。

根据我的发现,很多 VM 有两个共同点:

  1. 它们并不复杂(有时字节码指令本身只是被解码为 x86 指令——通常还有一些 VM 指令) VM 中的复杂性会很快降低性能。

  2. 他们通常很困惑

除了您可以尝试的一些通用解决方案(即 VMHunt)之外,您通常需要对 VM 进行逆向工程并了解它如何解码字节码指令 - 以及每个 VM 指令的作用。然后,您可以使用该知识将字节码转换回其原始形式——此时您可以在 IDA Pro 等中对其进行分析……通常,尽管存在混淆,但最困难的部分是理解 VM。

这可能是一个相当漫长/复杂的过程,我之前曾使用过代码虚拟器,并鼓励您从阅读我在 x86virt 上的一些工作开始:

Devirtualizer 源代码:https : //github.com/JeremyWildsmith/x86devirt

文章讲解过程:http : //jeremywildsmith.com/?blog%2Fx86devirt