如何将我的产品作为试用版制作30天?

Man*_*ish 25 c# security installation trialware

我已经创建了我的产品,并为此生成了许可证密钥,但我想在30天后问密钥.我已经使用注册表值来存储日期,并添加了30天.但我发现,如果用户在我的逻辑不起作用前30天更改系统日期.

那么试用版软件是否有任何解决方案,而无需检查系统日期,只允许30天的试用期?

Joe*_*nez 41

您可以使用另一个在每天使用后增加的注册表项.这样,即使他们更改了计算机的日期,此密钥也会向您的程序表明它已运行超过30天.

此外,此值可以加密,以便如果用户尝试手动更改它,程序可以拒绝运行,因为它无法解密该值并从中获取有效数字.

要绕过重新安装,您可以向使用应用程序试用版保存的任何文件添加一些信息,该文件对于该特定版本的应用程序是唯一的(可能是安装时的时间戳).当您的应用的试用版试图打开文件时,它会检查此签名并确保它是使用同一实例创建的,否则拒绝打开该文件.这基本上是neuters能够简单地重新安装应用程序并继续使用它.

但是,在一天结束时,用户可以完全控制他们的计算机,并且可以找到解决您想要做的事情的方法(在您让用户使用该应用程序之前,无法访问保留这些详细信息的Web服务).你可能不应该花费太多的精力试图阻止那些愿意经历这个额外麻烦的人,而是花费额外的时间/金钱/精力来改善那些愿意付钱的人的应用程序.


Kon*_*man 5

您可以使用许可组件.您可以自己创建一个(请参阅LicenseManager类),或者从供应商处购买一个(例如CryptoLicensing).

  • "军事力量安全"(正如LogicNP所宣传的)的问题在于军方使用不同的加密强度来实现不同的目的.你需要在英国获得爆炸物许可才能获得强大的东西 - 所有强大的军事加密都存在于嵌入式硬件模块中,如果被篡改则会自毁; 如果您将其作为软件发布,您将根据官方机密法案被起诉.如果有的话,美国在处理强加密方面更具限制性.所以这是一个非常似是而非的主张,可能应该是"军方有时使用的最弱的加密". (2认同)

Vik*_*kas 5

我有一个简单的解决方案.

将2个变量用于注册表:1.日期2.计数器

脚步:

  1. 设置计数器= 1

  2. 将系统日期复制到日期

  3. 每次检查日期是否与当前日期不同,而不是将该日期复制到注册日期,也将计数器增加1.如果日期相同,则不要执行任何操作.

  4. 现在,您可以检查您的柜台是否有试用期到期

通过使用这些技巧,如果用户将系统日期更改为上一个日期而不是它的工作原理.

对于注册表,您可以加密日期和计数器,以便技术人员无法识别您的逻辑!

干杯...

添加

仅当用户未更改每天的日期时,此逻辑才会失败!我们再次为此提供解决方案!

我不知道是否可能,但你总能得到一些解决方案:

  1. 计算试用期的总时间并将其存储在注册表中.
  2. 现在计算每次运行的总时间并将其添加到另一个变量中.(我希望它可以通过计时器来完成)
  3. 比较以上两个值以决定过期.

  • 有趣的解决方案,除非时钟只是向前运行...我在第二天启动,注册表中的日期现在是今天,它没有不同,所以我不增加计数器?此外,如果我在1天内启动应用程序两次(或更多次)会发生什么?每次发射都会增加计数器. (3认同)
  • 好的,我用逻辑做了一个小改动. (3认同)