要遵循的惯例使商业软件更难破解?

Jos*_*osh 6 c# drm

如果我想让我的应用程序更难破解,有哪些好的约定要遵循?

rye*_*guy 11

只要您的整个应用程序都是客户端,就完全不可能保护它免受破坏.保护应用程序免受破坏的唯一方法是使其必须连接到服务器才能运行(例如,在线游戏).

即使在那时,我已经看到一些模拟服务器的裂缝,并向程序发送虚拟确认,因此它认为它正在与一个真实的,合法的服务器通信(在这种情况下,我说的是"回拨"验证策略,而不是一个游戏).

另外,请记住,只要有遗嘱,就有办法.如果有人想要你的产品,他们会得到它.最终,您将实施可能导致您的诚实客户并发症的保护,并且被视为对破解者的挑战.

另外,请参阅此主题以获得有关此主题的非常详尽的讨论.


Yis*_*hai 6

很多答案似乎都忽略了问题是如何使其变得更难,而不是如何使其变得不可能.

混淆是该过程中的第一个关键步骤.如果代码没有被混淆,那么任何进一步的事情都将太容易解决.

在那之后,它确实取决于你想要避免的东西.没有许可证的安装?定时审判爆发了吗?增加软件的使用(例如在更多CPU上)而无需支付额外费用?

在当今的虚拟机世界中,长期的反破解策略必须涉及一些家庭呼唤.环境太容易使原始.话虽这么说,如果你不得不回到原始状态使用它们,某些类型的软件是无用的.如果这是您的软件类型,那么将相关内容放入注册表中以跟踪定时试验是相当模糊的.一般而言,许可证密钥方案很难伪造.

有一件事需要注意 - 不要太花哨.许可方案通常获得最少的质量保证,并且在合法客户被锁定的生产中遇到严重问题.不要因为害怕被人们复制而赶走真正的付费客户,否则很可能不会给你一分钱.