我使用了大量的可可演示应用程序,在3天或一个月左右后停止工作。他们是怎么做到的?什么是最好的方式?还有什么限制?
答案 0 :(得分:29)
答案 1 :(得分:4)
一般来说,它们可以节省天数/小时数/某些地方使用的数量,例如:在应用的用户默认值中。
由于更改应用程序的用户默认设置相当容易,因此有些人会为文件写一个简单的哈希值,该哈希值必须与使用的天数相匹配。如果没有,那么它们就会在那时到期,因为用户显然已经破坏了该设置。其他人保留了几个使用柜台的天数。如果缺少一个,则根据其他位置中的最小数字恢复它。
好的位置是用户不会期望的位置中的不可见文件,可能被命名为它们看起来与另一个应用程序或系统文件的文件类似。但要小心,你不要在整个文件系统中丢弃文件,然后给另一个应用程序看起来像一个坏名字。另外值得考虑的是将资源写入文件的资源分支,这些天大多数人都不再看了(你的文件之一!另一个应用程序或系统可能会替换他们的提交和删除您的信息,或者可能使用相同的资源类型并导致冲突。
很可能,一个随意的黑客会尝试编辑用户默认值然后放弃。无论保护计划付出多少努力,专职黑客都会继续前进,因此不值得花太多时间来保护它。
某些应用开发人员会生成一个许可密钥,其中包含过期日期,并且如果没有有效的许可密钥,应用程序将拒绝运行。 Allan Odgaard关于如何使用OpenSSL签署信息的好文章(确保你现在使用LibreSSL或CommonCrypto.framework非常相似)来获取用户的失效日期,而无需他们编辑它:http://sigpipe.macromates.com/2004/09/05/using-openssl-for-license-keys/
答案 2 :(得分:0)
根据您的想法,我使用Elliptic Curve Cryptography在Java中对概念进行了简短的证明,以便在启动时生成UUID,然后使用ECC签署该UUID以创建注册密钥。如果有人想要,代码就在这里。1