【问题标题】:How to get a stable machine ID **WITHOUT** admin privileges如何获得稳定的机器 ID **WITHOUT** 管理员权限
【发布时间】:2011-11-11 01:54:36
【问题描述】:

出于简单的复制保护目的,我想生成一个小的stringint 值来(在某种程度上)唯一标识当前计算机。理想情况下,此值不会在简单的硬件外围更改后发生变化,甚至希望在完全重新安装 Windows 后也不会发生变化。

在这里和其他地方找到的大多数答案都不令人满意,主要原因有以下三个:

  1. 提供的代码不容易移植到 C#。
  2. 建议的硬件值通常不可用/为空(例如处理器 ID 甚至硬盘驱动器序列号)或不稳定(例如 MAC 地址)。
  3. 涉及的代码需要提升管理员权限。

我搜索了几篇帖子并找到了一篇有用的文章 (How To Get Hardware Information),但由于 #3 在我的案例中是一个重要的考虑因素,我不确定仅使用普通用户权限可以检索哪些硬件信息。

关于#2,我想最好的解决方案是简单地将几个不同的值附加在一起,但是哪些?非常感谢任何帮助,特别是如果它包含或指向 C# 代码。 :D

【问题讨论】:

  • 我还想补充一点,任何基于“唯一硬件 ID”的复制保护方案都注定要失败。
  • @NullUserException ఠ_ఠ - 我读过的几个线程都提到了使用 MAC 地址 (here's one) 的问题,尤其是在具有多个 NIC 的计算机中(我猜排序是任意的)。您能否详细说明为什么它“注定要失败”(除了所有复制保护都可以破解的事实)?我只是想限制随意复制,即用户将他的 CD 和密钥传递给他的好友。

标签: c# .net windows


【解决方案1】:

我认为您将很难满足此标准,因为唯一标识机器可能是仅适用于管理员的功能。如果现在不是这种情况,我想随着时间的推移,由于隐私问题日益严重。

【讨论】:

  • 如果这是真的,我最好的选择是什么?我应该只为我安装的每台机器生成一个 GUID 吗?
  • 我建议阅读大量关于数字版权管理最终如何成为失败的文章。虽然某种程度的复制保护可能是有益的,但您问题的性质表明您远远超出了这一范围。如果我是你,我会花更多时间尝试让购买变得尽可能简单(使用贝宝和接受主要信用卡)并将产品价格降低到“为什么不呢?”等级。 Valve 的 Gabe Newell 就如何大幅降低价格如何带来更高的总收入进行了多次采访,这一点已被 Steam 销售所证明。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-05-04
  • 1970-01-01
  • 1970-01-01
  • 2018-05-18
  • 1970-01-01
  • 2011-03-09
  • 2021-07-08
相关资源
最近更新 更多