【发布时间】:2011-11-11 01:54:36
【问题描述】:
出于简单的复制保护目的,我想生成一个小的string 或int 值来(在某种程度上)唯一标识当前计算机。理想情况下,此值不会在简单的硬件外围更改后发生变化,甚至希望在完全重新安装 Windows 后也不会发生变化。
在这里和其他地方找到的大多数答案都不令人满意,主要原因有以下三个:
- 提供的代码不容易移植到 C#。
- 建议的硬件值通常不可用/为空(例如处理器 ID 甚至硬盘驱动器序列号)或不稳定(例如 MAC 地址)。
- 涉及的代码需要提升管理员权限。
我搜索了几篇帖子并找到了一篇有用的文章 (How To Get Hardware Information),但由于 #3 在我的案例中是一个重要的考虑因素,我不确定仅使用普通用户权限可以检索哪些硬件信息。
关于#2,我想最好的解决方案是简单地将几个不同的值附加在一起,但是哪些?非常感谢任何帮助,特别是如果它包含或指向 C# 代码。 :D
【问题讨论】:
-
我还想补充一点,任何基于“唯一硬件 ID”的复制保护方案都注定要失败。
-
@NullUserException ఠ_ఠ - 我读过的几个线程都提到了使用 MAC 地址 (here's one) 的问题,尤其是在具有多个 NIC 的计算机中(我猜排序是任意的)。您能否详细说明为什么它“注定要失败”(除了所有复制保护都可以破解的事实)?我只是想限制随意复制,即用户将他的 CD 和密钥传递给他的好友。