-5

我想制作一个程序并出售它,所以我想制作某种许可系统。我在谷歌上找到的是这样的:

http://www.codeproject.com/Articles/28678/Generating-Uni​​que-Key-Finger-Print-for-a-Computer

我在 Ubuntu 的 VirtualBox 中运行 Windows 7(32 位)。我得到了相同的 UID,但是当我重新启动 Windows 时,我得到了一个新的 UID。我只是在想有些人会购买我的程序,他们可能会从 VirtualBox 运行它,所以这将是一个问题。

你们有什么建议吗?

即使这是一种更简单的方法,但即使我重新启动我的 VBox 也不会改变。

4

2 回答 2

0

您不必在整个 DRM 过程中陷入困境,总会有更聪明的人在那里,有人会想办法规避它。

如果你真的很担心:

  1. 设置在线许可证服务器以保存您的用户许可证
  2. 在用户输入有效许可证之前阻止应用程序执行任何操作
    • 您的服务将通过 Internet 验证此许可证
    • 您可以通过这种方式限制使用您的服务的“活动”应用程序的数量

想想 iTunes 如何允许您授权最多 5 台计算机访问您的媒体库。

于 2013-04-03T13:55:01.467 回答
0

即使已经过去了很多时间,我也想为这个问题添加一个可能的解决方案,指出我试图用该代码生成指纹并面临同样问题时发生的一些事情。

identifier函数仅检索each的第一个非空值。您应该注意的第一件重要的事情是:每个返回的内容可能不属于同一个 ManagementObject。因此,如果某些内容更改为“不是第一个对象”,这也可能会影响您的指纹。wmiPropertywmiClasswmiClass

请注意,使用Win32_DiskDriveaswmiClass是危险的,因为插入 USB 设备通常会导致该设备被识别为第一个设备(而不是您的硬盘驱动器),并在您插入或拔出设备时更改指纹。即使这没有发生,如果您的主驱动器是空的(例如磁盘签名,这发生在我身上) ,仍然wmiProperty可以从您的 USB 设备中获取其中一个。

一个可能的解决方案是通过检查InterfaceType并排除所有匹配“USB”的设备来排除所有 USB 设备,或者至少我就是这样做的。

于 2020-02-19T17:52:56.983 回答