【问题标题】:Unique computer id based on CPU flags基于 CPU 标志的唯一计算机 ID
【发布时间】:2013-02-04 01:41:24
【问题描述】:

我需要使用唯一的计算机 ID 来获得软件许可。我决定使用 CPU 标志。在 MSVC 上,它们使用函数 __cpuid 进行检索,而在 gcc 版本 4.3 及更高版本中使用函数 __get_cpuid。我从这些函数中得到一个整数,它是一种位数组,目的是用作唯一 ID。

我不确定使用上述函数检索到的 CPU 标志是否会改变?用户可以通过编程方式更改这些标志吗?如果不是通过常规应用程序可能通过 BIOS?

谢谢。

【问题讨论】:

    标签: uniqueidentifier bios license-key cpuid


    【解决方案1】:

    好的,经过一些测试,我可以确认信息类型 1 的第二个字节的标志正在改变。因此,我将仅使用 Stepping ID、Model、Family 和 Processor Type 值。

    【讨论】:

    • 您进行了哪些测试以发现信息正在发生变化?看我的回答——我认为调用处理器操作码cpuid 的结果不会改变。
    • 感谢您的意见,我现在正在做另一个项目,但我会尽快回复这个问题给您一个正确的答复。
    【解决方案2】:

    不,最终用户无法更改它们,因为您列出的每个命令本质上都是英特尔(和英特尔克隆)芯片中提供的实际处理器操作码 cpuid 的包装器。

    因此,这些信息被“烧录”到硅片中。没有用户可以更改它。

    以下资源可能会有所帮助:

    1) Wikipedia's article on CPUID

    2)Code guru article (2 pages) on accessing processor info using a call to CPUID

    3)Table listing many processors by stepping, family, and model numbers

    【讨论】:

      猜你喜欢
      • 2011-04-05
      • 2011-03-29
      • 2011-03-17
      • 2011-09-13
      • 1970-01-01
      • 2013-07-05
      • 1970-01-01
      • 1970-01-01
      • 2011-09-02
      相关资源
      最近更新 更多