【问题标题】:how to grab unique identifiers for hardware using C++ [closed]如何使用 C++ 获取硬件的唯一标识符 [关闭]
【发布时间】:2020-06-29 08:47:56
【问题描述】:

我似乎找不到任何可以获取唯一标识符的代码,例如卷 id、cpu id 和主板,例如 c# 中的 id。它们都过于复杂,我想要一个简单的抓取和分配。我希望能够在获取唯一标识符后将其分配给字符串。

【问题讨论】:

  • 如果你想在 C# 中使用它,为什么要标记 C++?
  • 他不想在 C# 中使用它。
  • 这能回答你的问题吗? CPUID implementations in C++
  • 不,它没有。这只是告诉我拥有我的 cpu 的公司是什么。我要真实身份证。就像我说的。唯一标识符。
  • 一些用户不喜欢随机应用程序抓取唯一标识信息,因此这些信息可能无法获取。

标签: c++ hwid


【解决方案1】:

如何使用 C++ 获取硬件的唯一标识符

C++ 中不存在硬件标识符。

通过阅读 C++11 标准 n3337 进行检查,并查看 this C++ reference 和更高版本的 C++ 标准。

某些操作系统允许访问硬件信息。这是特定于操作系统的。对于 Linux,请参阅 proc(5)hwinfo

您的合法用户可以在某些virtual machine 或某些虚拟机管理程序上运行您的软件。例如,我可以在 Linux 上运行的Qemu(或Xen)上运行 Windows。想一想,然后定义“硬件信息”在这种情况下可能意味着什么。

我似乎找不到任何获取唯一标识符的代码

这是意料之中的,因为它们没有,而且很容易被欺骗。

顺便说一句,PC 电脑可以双启动,同一台机器早上运行Debian Linux,下午运行 Windows,晚上运行 FreeBSD

PS。对于软件保护,您最好花钱请一位优秀的律师,而不是试图寻找技术上的“伪解决方案”。

【讨论】:

  • 不确定 C++11 与此处的相关性。当前所有编译器实现的版本都是C++17。
  • 我只是不知道定义所有 C++17 的单个 PDF URL。请告诉我一个
  • 再次,我看到许多代码获取 CPU id 和卷序列号。就像在 C# 中一样,但太复杂并导致我出现多个错误。我不在乎它是否容易被欺骗或你怎么想。我正在寻找简单的东西。还是谢谢
  • 但是这样的代码是特定于操作系统的,并且在 same 硬件上运行的 Linux 或 Windows 上肯定是不同的
  • @BasileStarynkevitch 你可以参考timsong-cpp.github.io/cppwp/n4659 [PDF]。
猜你喜欢
  • 2014-06-24
  • 2012-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-29
  • 1970-01-01
  • 1970-01-01
  • 2015-05-08
相关资源
最近更新 更多