【发布时间】:2011-12-12 14:20:38
【问题描述】:
我想制作一个 C++ 安装部署的 Windows 应用程序,该应用程序将检查硬件指纹(以验证用户将仅在他的计算机上使用该应用程序)。经过一些网络研究后,我决定 WMI 是我的工具。我从一个简单的 MFC 应用程序开始,一开始我想打印出主板序列号。而就在此时,整个事情都崩溃了。我检查了 XP 和 Win7 并且没有返回这个属性。这让我开始思考——如果某些类/属性在某些 Windows 版本上不起作用怎么办?还是一些硬件配置?我真的不喜欢那样。我对指纹的即时想法是 MAC 地址(我的应用程序是严格的网络驱动的,所以如果机器没有网络连接,它根本没有用)。但是,有些机器可以有多个 MAC 设备。并且某些 MAC 可能是虚拟的,卸载后会从系统中消失(即 VPN 客户端)。我认为 MAC 地址可以轻松更改,但如果我对数字进行哈希编码,用户可能无法弄清楚使用它。所以我征求你的意见 - WMI 是硬件指纹的好工具吗?如果是 - 您建议使用哪些类/属性?它们应该适用于所有机器和系统,并且同时是安全/不可更改的(好吧,如果用户更改整个硬件,我们将无能为力。)如果 WMI 不是一个好的解决方案,那么您会建议使用其他 C++ 框架吗?并遵循 - 然后使用哪些 HD 属性。
【问题讨论】:
-
为您自己节省一个持续的维护和支持噩梦并使用硬件加密狗。
标签: wmi hardware fingerprint