我正在开发共享软件桌面应用程序。我需要实现试用/激活代码。你怎么处理这样的事情?我有自己的想法,但我想看看stackoverflow社区的想法。
我正在使用C ++ / Qt开发。目标平台是Windows / Mac / Linux。
感谢您的建议!
答案 0 :(得分:23)
需要防范什么以及什么不能防范:
请记住,人们总能找到一种方法来绕过试用期。所以你想让这个人不得不绕过你的试用期令人讨厌,但是如果不可能绕过你的试用期并不重要。
如果有一个简单的机制,大多数人会认为尝试绕过试用期太多了。例如,人们总是可以使用filemon / regmon来查看在安装软件时哪些文件和注册表项发生了变化。
话虽这么说,一个简单的机制是最好的,因为它浪费的时间较少。
以下是一些想法:
延长试验期
对于我们,当客户请求试用版扩展时,我们会向他们发送一封自动电子邮件,其中包含“TrialExtend.exe”程序和试用版扩展代码。该程序通过试用扩展代码与我们的服务器联系以验证它。如果验证了代码,则会重置其试用期。
答案 1 :(得分:3)
无论你做什么,都要密切关注系统日期。本书中最古老的技巧是在将来的某个时刻安装应用程序,然后在应用程序在第一次运行时存储愚蠢日期后返回实际日期。也许将密钥与在线存储库同步?
答案 2 :(得分:2)
Brian的答案很棒,但我想补充一些内容。
Linux用户通常不习惯为软件付费,他们往往更熟悉技术,甚至可能在开源问题上“虔诚”。
出于这个原因,我真的建议保持简单 - 购买软件真的只是一个小障碍,至少就像偷窃它一样容易。
我建议在试用期后唠叨或禁用某些功能(例如保存)而不是完全死亡。只是一个观察,但基于特征的限制似乎在Linux世界中更常见。
顺便说一下,将linux版本变成“一流”版本 - 体面的安装程序等会有所帮助。
如果你的体型相对较小,或者你的程序相对较小,那么任何人都很难有机会破解它 - 所以只要专注于制作一个好的产品,一旦时间到了就会直接傻逼。
答案 3 :(得分:0)
如果您[相当]可能有网络连接,您可以让安装程序在您的网站上注册,然后在每次启动时进行检查。
如果这不可行,将值写入文件系统上的世界可修改点(注册表项,条目和/ etc conf文件等)可能是可行的。
答案 4 :(得分:0)
也许真正的问题是时间有限的试验。我工作的公司做了很多Active Directory工作,我们通常将我们的软件限制为少量用户试用版。我认为以某种方式限制功能有时更好,更容易实现,并且当用户只是更改计算机上的日期时不会失败。
有一种平衡行为,你不能过于严格地限制功能,否则用户将无法从试用中获得任何东西。与此同时,过于宽松的限制也无法购买。