我想在我的应用程序中包含某种类型的复制保护方案,如果/当它安装在另一台计算机上时,它会使我的软件的零售注册版本恢复为我的软件的试用版。
在过去,我只是将所有用户信息存储在我添加到 exe 文件末尾的记录中。在注册过程中,我只需将这些值插入 exe 文件末尾的数据记录中。这很有效,直到优秀的诺顿开始将我的产品标记为病毒,因为 exe 文件已更改。
我很久以前就停止这样做了。我正准备创建我的软件的更新版本,我想知道您是如何完成这项工作的。
我想在我的应用程序中包含某种类型的复制保护方案,如果/当它安装在另一台计算机上时,它会使我的软件的零售注册版本恢复为我的软件的试用版。
在过去,我只是将所有用户信息存储在我添加到 exe 文件末尾的记录中。在注册过程中,我只需将这些值插入 exe 文件末尾的数据记录中。这很有效,直到优秀的诺顿开始将我的产品标记为病毒,因为 exe 文件已更改。
我很久以前就停止这样做了。我正准备创建我的软件的更新版本,我想知道您是如何完成这项工作的。
使其成为零售版本的信息应存储在目标计算机上,而不是与原始程序一起存储。这样,当他们尝试移动程序时,它会恢复到试用版,因为新计算机上缺少零售信息。
零售信息是通过注册过程使用唯一密钥添加的。有很多方法可以使这个键只工作一次。一种方法是通过互联网直接将其传输到程序,用户永远不会看到它,因此他们无法手动将其传输到新计算机。
您应该将信息保存在多个位置,以尽量减少精明的用户找到它的机会(例如使用 Process Monitor)。我会建议
还要保存一些绑定到本地计算机的信息,这样即使普通用户找到你的文件和注册表项复制也不会成功,因为他们不知道如何在新PC上获取更新的数据。此信息也可以是您根据用户必须发送给您的某些硬件 ID 生成的密钥。
关于密钥生成算法:如果保护是“针对”普通用户,那么就编造一些东西。这一点取决于您的目标群体。一个像ROT47这样的简单的可能就足够了。
也许你可以使用同样的东西。
除了将数据保存在 exe 中(调用 AV 的误报)哈希并将数据保存在单独的文件中。