你是否曾经使用过代码虚拟化或VMProtect来保护免受逆向工程的影响?

16

我知道没有完全保护我们代码的方法。

我也知道如果用户想破解我们的应用程序,那么他或她不会是购买我们应用程序的用户。

我还知道,改进我们的应用程序比害怕反破解技术更好。

我也知道商业工具无法完全保护我们的应用程序...

好的。够了。我已经听到了一切。

我真的认为加入一点保护不会有害。

那么...你使用过Oreans的Code Virtulizer或VMProtect吗?

我听说它们有时会被某些杀毒软件检测出病毒。

在购买之前有什么经验需要我注意的吗?

我知道它创建了一些虚拟机器并对代码进行了一定的混淆, 使得更难找到我们注册例程的弱点。

有什么警告我应该知道吗?

谢谢。任何建议都将不胜感激。

Jag

3个回答

10

依我之见,你应该感到幸运甚至渴望被盗版,因为那意味着你的产品很成功而且受欢迎。

这是完全不正确的。我的软件在发布时就立即被破解了。有组织的破解团队从download.com的RSS频道等地方获取每个出现的应用程序并进行破解。提取任何应用程序的keygen代码都非常容易,所以我的做法是:

a)使用数字证书密钥文件,这些文件不可能伪造,因为它们由私人AES密钥签名,并包含在应用程序中的公共密钥进行验证(参见:aquaticmac.com - 我使用的是跨平台的stl c++实现)

b)优秀的Code Virtualizer™。我要说的是,当我开始使用Code Virtualizer™时,有一两个用户抱怨应用程序崩溃。当我将其从他们的编译中移除后,崩溃问题消失了。不过,我不确定是否是CV本身的问题,因为这可能是我的代码中一个模糊不清的错误,但我后来改组了我的代码,自那以后就没有听到任何投诉了。

经过以上处理,我的软件不再被破解了。有些人把被盗版看作是一种正面的事情,因为这是一个免费宣传渠道,但那些人通常没有花费数月/数年时间来实现一个想法,只能发现你正在被剽窃。相当难以接受。


我赞同保护您的知识产权。我认为相当坚定的音视频用户知道完全合法的内容也可能被误判为侵权。如果他们无法接受这一点,那么您真的希望长期拥有他们作为客户吗?只要您能证明您的软件能够完成任务,最终用户(IT部门)可以做出例外。 - Jon Grah
@JonGrah 我不同意,普通用户不懂技术,会盲目相信他的杀毒软件。如果杀毒软件说你的应用程序是恶意软件,普通用户很可能会直接卸载你的演示版本,你就会失去销售机会。这种情况经常发生在我身上,非常不幸。 - delphirules
我也推荐CV。自从我开始使用它后,就再也没有出现过破裂的情况了。非常棒的产品! - delphirules

6

不幸的是,虚拟机保护软件比传统的打包软件更容易受到错误检测的影响。原因是由于AV保护非常复杂,AV软件通常无法分析受保护的代码,并且可能依赖于模式库,或者对任何由它无法分析的系统保护的文件发出通用警告。如果您的优先级是消除错误检测,我建议选择广泛使用的保护解决方案,例如AsProtect(Oreans的产品也变得越来越流行)。


真是太糟糕了,弗拉基米尔。我想使用虚拟机保护,但在看了你的评论后,我真的对使用它感到不确定。我不想给我的用户带来更多的麻烦。(我的应用程序中已经有足够的错误)如果其他人对此有什么意见,请留言,非常感谢。谢谢。 - Jag

3

软件虚拟机保护在今天非常流行,特别是对于小公司和独立软件开发者来说,现在以可承受的价格提供。与非虚拟机技术相比,它需要更多的努力才能破解 - 包装器通常具有其他保护所具有的标准反调试技巧以及虚拟机保护。由于每次构建时都会随机生成虚拟机,因此破解者需要分析虚拟机指令集并将受保护的代码反向工程回机器代码。

虚拟机保护的主要缺点是,如果过度使用(用于保护过多的代码部分),它可能会严重减慢应用程序的速度 - 因此您需要仅保护关键部分(注册检查等)。它也不适用于某些应用程序类型 - 它很可能无法在用于注入的DLL以及设备驱动程序上工作。

我还听说StrongBit EXECryptor是一个性价比不错的保护软件包。(我与该公司没有任何关联,也不能保证任何质量,这只是口耳相传值得一试的意见)。


你好,我是VM Packer的新手,请问您能否详细介绍一下为什么它不能用于“DLL”和“设备驱动程序”?谢谢! - lllllllllllll
关于性能影响/劣势,许多使用基于虚拟机的保护(最新的是Denovo)的新游戏在可用的最佳硬件上运行不佳。 - TheLegendaryCopyCoder

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接