如何檢測電腦的硬件特征碼信息(系統、主板、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

 

硬盤序列號


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM