对于如何向(基于 UNIX 的)软件产品添加许可证密钥强制或并发用户限制强制的任何建议,我将不胜感激 - 虽然没有明确开源 - 最终用户名义上拥有或可以拥有源代码,可以想象,由于运行它的服务器位于其场所等,因此相对容易获得。
显然,我既不寻求也不期待一种技术,这种技术不能被有强烈动机的人绕过,和/或 1337 h4x0rs 就是这样的好。这种反盗版机制的重点不是阻止用户做他们真正想做的事情,而只是让它变得足够烦人,与付费相对容易相比,这并不值得麻烦另一个(便宜的)许可证 - 至少对于仅具有平均能力的最终用户而言。
这需要更复杂的东西,而不仅仅是通过默默无闻的安全性(这也会让可能遇到它的用户嘲笑你,即使无意中没有修改设置的意图),但没有什么接近于保护导弹发射井所需的东西。说几句就够了,“是的,这个产品确实限制了你购买的东西的使用。” 理想情况下,不应该有足够有趣的东西来激励寻求名利的人发布一篇关于如何破解它的博客文章,尽管考虑到该产品的利基性和价格低廉,我不认为这是关注。
我能想到的唯一真正的技术是将一些对程序的其余部分在功能上必不可少的例程编译成静态或动态二进制可重载对象,并连同它一起包含检查。例程必须在某些不可分割的方面至关重要,而不是仅针对该特定条件进行人为检查,否则用户可能只是去禁用对该函数的调用。这个想法是禁用对函数的调用也会产生其他不吸引人的后果。
这不是聪明的黑客无法反汇编的,而且,显然,如果该函数足够微不足道,可以构建到一个没有目的的二进制文件中,那么它也足够微不足道,可以在它之外重新实现。但这比典型的最终用户会费心去经历更多的努力。当然,再一次,重点不是机械地阻止盗版,而只是设置一点限制,使产品不能纯粹在荣誉系统上运行,尽管我相信这对许多企业买家来说已经足够了在美国。
这是一种常见的方法吗?有更好的吗?