Enigma、Themida 和 VMProtect 如何相互比较?

逆向工程 反编译 加密 保护
2021-07-10 06:43:48

我很快就会发布一款软件,我正在寻找好的保护器。引起我注意的三个是:Enigma、Themida 和 VMProtect。我在网上搜索了很多,但找不到很多比较。它们都在相似的价格范围内,所以这不是一个大问题。我想知道它们之间的主要区别是什么?虚拟化、字符串加密、打包等。我找不到太多相关信息。

感谢所有回复!谢谢

1个回答

免责声明:我不为任何制造这些软件的公司工作。显示的所有细节均来自我自己的个人研究。

此比较将仅包括我个人拥有许可证的保护器:VMProtect 和 Themida。我没有 Enigma 的许可证,所以我无法说明它的保护功能。

我也不会包括两者的许可功能,我只会谈论他们采用的保护方法。

为了让我们开始,这是一个简单循环函数的“未受保护”版本,我们将使用两个保护器来保护它以查看它们的输出。

虚拟机保护

VMProtect 有 3 种保护模式:MutationVirtualization和“ Ultra ”(两种方法结合)

Mutation做到了它所说的:它改变汇编代码,使其更难自动分析。每次编译产生的变异代码都有很大的不同。

另一方面,虚拟化将代码转换成只有特殊虚拟机才能运行的特殊格式。然后它插入一个“存根”函数来调用应该运行实际代码的虚拟机。

请注意,此 VM 会插入大量开销。使用此方法进行保护后,原来的 ~100kb 应用程序增加到 ~600kb 左右。您可以通过打开 VMProtect 内部的打包功能来减小大小。

还有用于检查调试器是否正在运行、字符串加密、获取计算机硬件唯一标识符的方法等的功能。

米达

Themida 与 VMP 略有不同。虽然它也具有与 VMP 相同的保护功能,但它的保护方式却大不相同,并且具有 VMP 所没有的更多功能。但请注意,VMP 不具备的这些功能并非适用于所有应用程序类型。

对于 Themida 的Mutation,它的作用与 VMP 完全不同。它向程序集添加了大量随机操作,而不是专门改变每个操作码。

然而,Themida 的虚拟化具有 VMP 没有的一项很酷的功能:多 VM 架构。Themida 能够在同一个应用程序中拥有不同的虚拟机(使用不同的架构)。VM 也有不同的“风格”:一些更快但不太安全,一些更安全但不太快,等等。

当然,这个问题很明显:大小。禁用所有保护选项的受保护应用程序比原来的 ~100kb 大约有 ~2mb。幸运的是,Themida 还具有打包功能以减小大小,将其减小到大约 1mb。

Themida 还具有其他一些功能:“ClearCode”,它在运行后清除程序集,“Encode”,在运行时解密代码并在执行后重新加密,字符串加密和检查代码完整性的功能。

结论

如果使用得当,这两种保护都非常好。你买哪一个取决于你,而不是我,所以我建议你明智地选择你想要保护的应用程序,看看你特别想要哪些功能。