我正在开发一些我最终要出售的软件。我一直在考虑不同的复制保护机制,包括自定义和第 3 方。我知道没有任何复制保护是 100% 完全证明的,但我至少需要尝试一下。所以我正在寻找一些关于我正在考虑的方法的意见:
我正在考虑的一种方法是让我的软件在启动时连接到远程服务器,以便根据以太网端口的 MAC 地址验证许可证。
- 我不确定服务器是否会运行检索许可证信息的 MySQL 数据库,或者什么...有更简单的方法吗?也许某种类型的加密文件被读取?
- 如果软件无法连接到服务器,我会让它仍然工作。我不想仅仅因为他们当时无法访问互联网而将他们拒之门外。如果您想知道,我正在开发的软件非常依赖互联网/网络。因此,用户在使用它时实际上不太可能无法访问互联网。实际上,如果没有互联网/网络访问,它就毫无用处。
- 任何人都知道我会如何处理具有多个 MAC 地址的计算机?现在很多主板都有 2 个以太网端口。大多数笔记本电脑都有 1 个以太网、1 个 wifi 和蓝牙 MAC 地址。我想我可以选择一个 MAC 端口并使用它运行。不确定这是否真的重要
- 聪明而狡猾的用户可以确定软件正在连接的服务器,并可能将其添加到他们的主机文件中,以便它始终尝试连接到 localhost。你认为这种可能性有多大?你认为软件是否可以检查这是否正在完成?我想解析主机文件总是可以的。在那里寻找您的服务器地址,看看它是否连接到本地主机或其他东西。
- 我考虑过加密狗,但我试图避免它们只是因为我知道使用它们很痛苦。让他们保持更新并可能要求客户运行他们自己的许可证服务器对我来说有点太多了。我经历过,我不想让我的客户经历这有点痛苦。此外,我试图避免使用 3rd 方加密狗的额外开销成本。
- 此外,我倾向于连接到远程服务器以验证身份验证,而不是仅仅向用户发送某种许可证文件,因为当用户购买新计算机时会发生什么?我必须向他们发送一个可以在他们的新计算机上使用的替换许可证文件,但他们仍然可以在他们的旧计算机上使用它。我无法在不要求他们在其上运行某些程序或其他东西的情况下“取消授权”他们的旧计算机。
- 另外,重要的一点是,对于该软件,我会向 EULA 中的用户明确说明该软件连接到远程服务器以验证许可,并且不会发送任何个人信息。我知道我不太喜欢在我不知道的情况下做那种事情的软件。
无论如何,只是为可能走这条路的人寻找一些意见。
看起来依赖远程服务器的软件将是最有效的复制保护机制之一,不仅因为难以规避,而且在开发人员端管理许可证也很容易。