zoukankan      html  css  js  c++  java
  • 如何检测电脑的硬件特征码信息(系统、主板、CPU、硬盘),不使用WMI

    开发商业软件的都会遇到一机一码的保护问题,经过两年的测试,我已经找到了C#开发获取稳定的硬件特征码的方法。

     QQ:564955427

    电脑的硬件特征有很多,常见的例如:主板、CPU、硬盘、网卡、BIOS等等,很多人使用WMI来获取。但是,依赖WMI是非常不可靠的,因为WMI可以被禁用,也可以被伪造。

    这几年,出于对技术方面的好奇,我测试了十几种硬件特征码的获取,得出了一些测试结果。

    一个好的硬件特征判定代码,需要具备以下特点:

    1、与是否管理员无关

    2、与是否64位操作系统无关

    3、硬件特征稳定不变,也不容易伪造。

    4、多次运行不影响软件的性能。

    5、可以很方便的从硬件检测软件中读取,可以随时核对。

    考虑上述几点,我推荐使用System UUID、System SerialNumber、BaseBoard SerialNumber、HDD SerialNumber、CPU SerialNumber 这五项中的某一项或两项作为硬件特征的依据。

    其中,System和BaseBoard可以通过API读取主板DMI原始数据自行解析,HDD序列号可以使用API获取,CPU序列号需要Asm代码从底层获取。

    获取System相关信息的部分代码示例(解析DMI数据)

    最后,还有个关键问题,代码及算法不能被反编译暴露。此事以后再聊。

    下面是软件检测结果,可用于检查核对:

    System UUID、SerialNumber

    硬盘序列号

  • 相关阅读:
    基于jQuery弹性展开收缩菜单插件gooey.js
    动态插入和移除
    匹配0-59 0-23 的正则表达式
    换行问题
    iOSBug -- The file “Info.plist” couldn’t be opened
    MarkDown语法
    Mac -- 右键添加pages文件
    iOS -- 使用蒲公英进行内测
    Mac使用技巧--如何给safari安装翻译插件
    iOS--优化
  • 原文地址:https://www.cnblogs.com/Charltsing/p/HardwareSN.html
Copyright © 2011-2022 走看看