所有答复均表示赞赏!谢谢
#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
评论
由于该问题主要是基于意见的,因此被选为关闭。我正在寻找功能的客观比较,以及一些个人见解
相关:reverseengineering.stackexchange.com/questions/118/…
从tuts4you中检出此线程