【问题标题】:Getting unique hardware ID changes everytime C#每次 C# 获取唯一的硬件 ID 更改
【发布时间】:2013-04-03 13:50:37
【问题描述】:

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

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

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

你们有什么建议吗?

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

【问题讨论】:

  • 即使 id 每次都相同,他们也可以克隆虚拟机并在数千个地方使用您的程序。
  • 第一条规则:不要重新发明轮子。其他人已经做到了,可能更好:)
  • 不明白,为什么我得到-3?
  • 您可能被否决了,因为这不是一个特定的编码问题。 This is what's on topic for SO.

标签: c# .net uuid


【解决方案1】:

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

如果你真的很担心:

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

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

【讨论】:

  • 嗯,实际上。我将在服务器上有一个数据库。使用电子邮件、密码、uid。一旦他们购买了该程序(使用贝宝),我将使用一些随机密码将该电子邮件输入我的数据库。当他们第一次打开程序时,程序应该获取 UID,并将其放在我的数据库的 uid 列中。当他们再次运行它时,它只会检查它是否相同。
  • @user2051154 然后走这条路,创建硬件 ID 是不行的,如果他们改变了处理器或显卡等硬件怎么办?您冒着被软件锁定的风险。
  • 你是对的......但是我应该如何生成那个 UID 呢?该程序并不大,实际上是我的第一个程序(用于“批量”销售)。如果我只使用计算机的名称,您认为可以吗?我知道……这该死的容易坏。但我希望让产品暂时不泄漏......
  • @user2051154 我不建议为每台机器创建任何 ID,如果您选择用户可以同时安装的多台机器并拥有它,以便您的软件可以“激活”和“停用”在这些机器上,只需增加或减少数据库中已使用机器的数量,这样您仍然可以控制它们安装的机器数量,而无需任何复杂的可绕过逻辑。
  • 嗯,这只是一个简单的软件。它实际上是一个交互式培训师,适用于 BIG 软件。您是否认为当用户登录(通过程序)时,在我的数据库中实际上没有 uid 列,而是活动列是一个明智的决定。当用户被授权时,它会将 1 放在活动列中。当它完全关闭程序时,它会输入 0。所以它一次只能运行一台计算机(假设......这是许可系统)
【解决方案2】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-20
    • 1970-01-01
    • 2013-05-27
    • 1970-01-01
    • 1970-01-01
    • 2013-12-28
    • 2017-06-11
    相关资源
    最近更新 更多