Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 当应用程序复制到另一台计算机时,如何将其注册版本转换回试用版本?_Delphi_Copy Protection_Trialware_Shareware - Fatal编程技术网

Delphi 当应用程序复制到另一台计算机时,如何将其注册版本转换回试用版本?

Delphi 当应用程序复制到另一台计算机时,如何将其注册版本转换回试用版本?,delphi,copy-protection,trialware,shareware,Delphi,Copy Protection,Trialware,Shareware,我想在我的应用程序中加入某种类型的复制保护方案,如果在另一台计算机上安装了软件,该方案将使我的软件的零售注册版本恢复为试用版 在过去,我只需将所有用户信息存储在一个记录中,并将其附加到exe文件的末尾。在注册过程中,我只需将这些值插入exe文件末尾的数据记录中。这非常有效,直到good ol Norton开始将我的产品标记为病毒,因为exe文件已更改 我很久以前就不这么做了。我正准备为我的软件创建一个更新版本,我想知道您是如何做到这一点的。也许您可以使用相同的东西 除非将数据保存在exe(调用A

我想在我的应用程序中加入某种类型的复制保护方案,如果在另一台计算机上安装了软件,该方案将使我的软件的零售注册版本恢复为试用版

在过去,我只需将所有用户信息存储在一个记录中,并将其附加到exe文件的末尾。在注册过程中,我只需将这些值插入exe文件末尾的数据记录中。这非常有效,直到good ol Norton开始将我的产品标记为病毒,因为exe文件已更改


我很久以前就不这么做了。我正准备为我的软件创建一个更新版本,我想知道您是如何做到这一点的。

也许您可以使用相同的东西


除非将数据保存在exe(调用AV的假阳性)散列中,并将数据保存在单独的文件中。

使其成为零售版本的信息应存储在目标计算机上,而不是与原始程序一起。这样,当他们试图移动程序时,它会恢复到试用版,因为新电脑上的零售信息丢失了


零售信息通过注册过程添加,使用唯一密钥。有许多方法可以使此键只工作一次。一种方法是通过互联网将信息直接传输到程序,用户在互联网上从未看到过它,因此他们无法手动将其传输到新计算机。

您应该将信息保存在多个位置,以最大限度地减少精明用户找到它的机会(例如使用过程监视器)。我建议

  • 香港中文大学及
  • 本地应用程序目录中的隐藏文件
同时保存一些绑定到本地计算机的信息,这样即使普通用户发现您的文件和注册表项复制不会成功,因为他们不知道如何在新电脑上获取更新的数据。这些信息也可以是您根据用户发送给您的某个硬件ID生成的密钥


关于密钥生成算法:如果保护是“针对”普通用户的,那么就编一些东西。这取决于你的目标群体。像这样一个简单的方法就足够了。

除了使用互联网,还有什么其他的密钥验证方法?或者,你建议我去哪里进一步研究这个问题?使键对时间敏感(根据计算机上的时钟,它只能在24小时内有效)。您可以通过电子邮件发送给您的客户。您认为将信息存储在dll末尾会导致误报吗?如果在将数据插入尾部记录后,我也将dll的日期重新定为原始日期,该怎么办?