哪里有存储串行代码的好地方?

时间:2011-07-11 21:20:22

标签: registry licensing trialware

我有一个带有串行代码验证的软件。 起初我想过制作一个配置文件并存储串口等。这对我来说效果不佳所以我更改了它以保存Windows注册表中的名称,序列和过期。

到目前为止它运作良好,但我担心用户可能会发现它并只是从注册表中删除条目;这样做会删除过期时间并允许他们再次使用试用版。

存储用户名,序列号和到期日期的其他好处是什么?

由于

4 个答案:

答案 0 :(得分:4)

我将为您省去麻烦并告诉您,无论您在用户的计算机中存储或修改任何内容,有经验的用户能够撤消 - 是的,这将允许用户访问再次试用你的试用版软件。最糟糕的情况是,他们可以在安装试用版之前使用虚拟机并拍摄VM的快照。

我会更进一步,并提到很多用户非常对显示类似rootkit的行为(任何索尼粉丝在这里?)的程序非常恼火,并试图隐藏他们操作系统的每个角落。将您的软件电话置于家中或在您的服务器上存储个人信息(例如操作系统连续出版物)至少不良格式 - 如果您这样做而没有通知您的用户,那么它也可能是非法的。

结论:不要试图找到营销问题的技术解决方案。使您的完整版本足以吸引用户购买。相信你的用户是合理的,而不是认为他们是潜在的潜在盗贼。并且,对于 insert-favorite-deity 的缘故,搞砸了他们的计算机......

如果您提供非常昂贵的软件,您可能需要考虑硬件密钥 - 只要您确定即使您的企业拒绝支持,它们也会在10年内继续工作。我是一个讨厌反盗版措施,惩罚软件的合法用户。

答案 1 :(得分:1)

我建议您将其存储在某个特定加密的文件中,或者自行修改某些资源或应用程序文件本身。

为了获得良好的保护,应用程序产品(可执行文件)使用特定的算法进行压缩,这些算法在运行时在内存中提取等。例如,使用UPX及其变体。

大公司开发自己的保护措施,但实际上当逆向工程师开始他/他们的工作时,正常(预期)通过给定的反向方法压倒任何防御是正常的。

重点是尝试隐藏有效串行匹配的算法,如串行,文件或注册表等的加密。

例如,您可能有序列文件,在文件创建日期时间进行散列。 但是当有人反汇编你的可执行文件时,当他看到整个图片时,基于你的场景再现一个keygen并不是什么大不了的事。 :)

正如thkala所说,你必须专注于赢得客户,因为可能你没有大公司投资安全的资源。

答案 2 :(得分:0)

理论上,没有办法阻止用户强行延长免费试用期。实际上,用户可能会弄​​乱系统时钟,甚至使用具有快照功能的虚拟机。

对你的问题的简短回答总结为“默默无闻的安全”。您必须在创意位置编写看起来很无辜或看起来很怪异的文件或注册表项,并且您必须保密这些位置。您还应该加扰要存储的信息(例如名称,序列号),以便用户无法执行全文搜索以查找存储位置。

如果您想要更具创意,可以某种方式填充一些系统文件(可能像notepad.exe)并在那里存储您的秘密有效负载。

此外,您可以通过互联网将软件电话置于家中;你可以检查时钟攻击;您可以尝试将数据存储在磁盘分区的可用空间中。

答案 3 :(得分:0)

我经常看到的编写试用软件的另一种有效方法是要求用户在线注册并接收软件的临时注册码。试图在没有某种外部组件的情况下实施试用期通常会更不可靠。