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

所有答复均表示赞赏!谢谢

评论

由于该问题主要是基于意见的,因此被选为关闭。

我正在寻找功能的客观比较,以及一些个人见解
相关:reverseengineering.stackexchange.com/questions/118/…

从tuts4you中检出此线程

#1 楼

免责声明:我不为制造这两款软件的任何一家公司工作。显示的所有详细信息均来自我自己的个人研究。

此比较仅包括我个人具有以下许可的保护者:VMProtect和Themida。我没有Enigma的许可证,因此我无法透露其保护功能。

我也不会包含任何一个的许可功能,我只会谈论它们所采用的保护方法。

为了让我们入门,这是一个简单的循环功能的“未保护”版本,我们将使用两个保护器对其进行保护,以查看它们的输出。



VMProtect

VMProtect具有3种保护模式:突变,虚拟化和“ Ultra”(两种方法都结合使用)

突变实现了它的作用:它会修改汇编代码,从而使对其进行自动分析变得更加困难。每次编译后,产生的变异代码都大不相同。



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



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

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

Themida

Themida与VMP有点不同。尽管它也具有VMP的相同保护功能,但是它的功能却大不相同,并且具有VMP所没有的其他一些功能。但是请注意,VMP不具备的这些功能并不能在所有应用程序类型上都起作用。

对于Themida的Mutation,它的处理方式与VMP完全不同。它为程序集添加了许多随机操作,而不是专门更改每个操作码。

qm2010q

Themida的虚拟化具有一个很酷的功能,VMP却不具备:多VM体系结构。 Themida能够在同一应用程序内部具有不同的虚拟机(使用不同的体系结构)。 VM也有不同的“样式”:一些更快但安全性较低,一些更安全但速度较慢等。



当然,问题在于很明显:大小。禁用了所有保护选项的受保护应用程序,从原始的〜100kb到大约2mb。幸运的是,Themida还具有打包功能以减小尺寸,将其减小到大约1mb。

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

结论

正确使用两个保护措施都非常好。您要购买的是您自己决定的,而不是我自己决定,因此,我建议您明智地选择要保护的应用程序,并查看您特别想要的功能。

评论


非常感谢你做的这些!我一直在朋友PC上玩弄这两个应用程序,但我一无所知。如何使用SDK加密字符串?我似乎无法弄清楚。

–专业
17年11月13日在6:43

如果我是正确的,那么对于VMProtect,请执行VMProtectDecryptStringA / W,对于Themida,请使用STR_ENCRYPT_START / STR_ENCRYPT_END宏。

– 3dsboy08
17年11月13日在12:32

您是否使用像这样的宏STR_ENCRYPT_START字符串示例=“ hello” STR_ENCRYPT_END或字符串示例= STR_ENCRYPT_START“ hello” STR_ENCRYPT_END

–专业
17年11月13日在13:06

我也正在调查虚拟机。有什么建议我应该为他们使用哪些vms和vm保护?

–专业
17年11月13日在13:11

您将宏放在代码的顶部..并将其放在每个函数的代码的底部,对于所有宏VMProtect和Themida都是相同的

– SSpoke
20-5-5在7:32