WMI是制作硬件指纹的好方法吗?

srd*_*.pl 2 hardware wmi fingerprint

我想制作一个c ++安装的已部署Windows应用程序,该应用程序将检查硬件指纹(以验证用户将仅在其计算机上使用该应用程序)。经过一番网络研究,我认为WMI是我的工具。我从一个简单的MFC应用程序开始,一开始我想打印出Motherboard的SerialNumber。就在这时,整个事情崩溃了。我检查了XP和Win7,但未返回此属性。这让我开始思考-如果某些类/属性在某些Windows版本上不起作用怎么办?还是一些硬件配置?我真不喜欢。我立即想到的指纹是MAC地址(我的应用程序严格是由网络驱动的,因此,如果机器没有网络连接,那将毫无用处)。但是,某些计算机可以具有多个MAC设备。并且某些MAC可能是虚拟的,可以在卸载后从系统中消失(即VPN客户端)。我认为MAC地址可以轻松更改,但是如果我对数字进行哈希编码,则用户可能无法确定使用它的方式。因此,我想请教您-WMI是硬件指纹识别的好工具吗?如果是-您建议使用哪些类/属性?它们应该可以在所有机器和系统上工作,并且同时应该是安全的/不可更改的(如果用户更改整个硬件,那么我们就不能做很多事情。)如果WMI不是一个好的解决方案,那么您会建议使用其他C ++框架?接下来-使用哪个高清属性。我认为MAC地址可以轻松更改,但是如果我对数字进行哈希编码,则用户可能无法确定使用它的方式。因此,我想请教您-WMI是硬件指纹识别的好工具吗?如果是-您建议使用哪些类/属性?它们应该可以在所有机器和系统上工作,并且同时应该是安全的/不可更改的(如果用户更改整个硬件,那么我们就不能做很多事情。)如果WMI不是一个好的解决方案,那么您会建议使用其他C ++框架?接下来-使用哪个高清属性。我认为MAC地址可以轻松更改,但是如果我对数字进行哈希编码,则用户可能无法确定使用它的方式。因此,我想请教您-WMI是硬件指纹识别的好工具吗?如果是-您建议使用哪些类/属性?它们应该可以在所有机器和系统上工作,并且同时应该是安全的/不可更改的(如果用户更改整个硬件,那么我们就不能做很多事情。)如果WMI不是一个好的解决方案,那么您会建议使用其他C ++框架?接下来-使用哪个高清属性。)如果WMI不是一个好的解决方案,那么您会建议使用其他C ++框架吗?接下来-使用哪个高清属性。)如果WMI不是一个好的解决方案,那么您会建议使用其他C ++框架吗?接下来-使用哪个高清属性。

RRU*_*RUZ 5

是的,WMI是执行此任务的一个很好的选择,关键是选择要使用的正确的类和属性,甚至更好的是,您可以访问SMBIOS表以获取有关系统的信息并生成唯一的标识符。前段时间,我写了两个主题的博客,代码都在delphi中,但可以轻松地翻译成C ++