2011-11-11 69 views
1

爲了簡單的防止複製,我想生成一個小的stringint值(有點)唯一標識當前計算機。理想情況下,在簡單的硬件外設更改後,這個值不會改變,甚至在完全重新安裝Windows之後也是如此。如何獲得穩定的機器ID **無需**管理員權限

大多數在這裏和其他地方找到的答案是不能令人滿意的,主要有三個方面的原因:

  1. 給出的代碼是不容易移植到C#。
  2. 建議的硬件值通常不可用/空(例如處理器ID或硬盤序列號)或不穩定(例如MAC地址)。
  3. 涉及的代碼需要提升管理權限。

我已經經歷了幾個職位搜索,發現一個有用的文章(How To Get Hardware Information),但由於#3是在我的情況下,一個重要的考慮,我不知道是什麼硬件的信息,我可以只用普通用戶權限檢索。

關於#2,我想最好的解決方案是簡單地將幾個不同的值附加在一起,但哪些是?任何幫助非常感謝,特別是如果它包含或指向C#代碼。 :D

+0

我還想補充一點,任何基於「獨特硬件ID」的複製保護方案都是註定要失敗的。 – NullUserException

+0

@NullUserExceptionఠ_ఠ - 我讀過的幾個線程提到了使用MAC地址的問題([這裏是一個](http://stackoverflow.com/questions/3443093/what-is-a-good-unique-pc-identifier/) 3443149#3443149)),特別是在有多個NIC的計算機上(我猜這個順序是任意的)。你能否更詳細地說明它爲什麼「註定要失敗」(除了所有版權保護都是可破解的)之外呢?我只是試圖限制隨意複製,即用戶將他的CD和鑰匙傳遞給他的好友。 – Jeremy

回答

2

我想你會很難滿足這個標準,因爲唯一標識機器可能是一個功能,它只是針對管理員。如果現在不是這樣,我想可能會隨着時間的推移,由於隱私問題的增加。

+0

如果那是真的,我最好的選擇是什麼?我應該爲每檯安裝的機器生成一個GUID或其他東西嗎? – Jeremy

+1

我建議閱讀關於如何最終實現數字版權管理是失敗原因的大量文章。雖然某種程度的版權保護可能是有益的,但是您的問題的性質表明您已經遠遠超過了這一點。如果我是你,我會花更多時間嘗試儘可能簡化購買(使用PayPal並接受主要信用卡),並將產品的價格降至「爲什麼不?」。水平。 Valve的Gabe Newell做了幾次採訪,看他們如何通過Steam銷售大幅降低價格,從而實現更高的總收入。 –