2010-01-25 54 views
1

在網頁中輸入有效序列後,會下載一個Windows程序。現在,我想限制用戶只在一臺PC上安裝程序,這是他或她第一次安裝的程序。僅在一臺機器上安裝

我需要建立一個這樣的系統中的一些建議。謝謝。

P.S.必須在網頁上輸入串行密鑰,而不是安裝程序。

+0

使用mac地址(查看您的標籤)可能不是一個好主意,因爲mac地址可以通過網絡設置進行修改(我一直都在爲使我的互聯網正常工作而進行修改)。 – 2010-01-25 15:36:42

+0

是的,不要使用MAC地址。 – Ian 2010-01-25 15:38:46

+1

如果您的工作複雜到足以完成這項工作,該軟件將被視爲無法使用。人們有合理的理由需要改變任何你可能關鍵的東西 - 你可能會讓他們決定不使用軟件,而不是第二次完成這個過程。 – 2010-01-25 15:57:13

回答

1

聽起來像是你需要創建將在客戶端機器上運行一個可下載的ActiveX控件的程序中,它會詢問:

  • 網絡適配器
  • Windows版本的MAC,包括SP
  • 硬磁盤序列號
  • 處理器品牌和CPU類型

,並將相關信息巴然後生成密鑰並將密鑰附加到下載安裝程序,並允許用戶下載安裝程序,然後在該安裝程序中將密鑰在運行時讀入並與正在運行的計算機進行覈對。

唯一的問題是必須使用C/C++編寫ActiveX,因爲您無法在.NET語言中使用它,因爲假定客戶機的計算機上安裝了哪個IMHO是一個危險的假設。

希望這會有所幫助, 最好的問候, 湯姆。

+0

這似乎更有可能成爲我的解決方案。因爲我的客戶不希望用戶通過在安裝程序可執行文件中再次輸入兩次來輸入串行。在發送給用戶之前,我不急於再次生成下載包(注入用戶輸入的序列)。 – frbry 2010-01-25 15:59:27

+0

所以如果我理解正確,當用戶點擊下載鏈接提供串行後,一個ActiveX控件運行並匹配串行和「哈希」。如果所提供的串口至少下載一次軟件,則不做任何操作,並允許用戶再次下載該軟件。如果沒有,請更新序列下載計數並插入ActiveX提供的散列。在安裝之前,再次以ActiveX的方式再次生成散列,並將其發送到服務器並進行檢查。 – frbry 2010-01-25 16:03:36

+0

@frbry:是的。究竟。 – t0mm13b 2010-01-25 16:08:36

0

根據某些硬件配置上的序列號。如果硬件改變,則使序列號無效。在activation of the product期間,Microsoft Windows使用這種類型的方法。

希望這有助於一些。

+0

問題是如果他想通過使用密鑰來限制下載,那麼他需要生成2個密鑰,這不是一個好的用戶體驗。 – Ian 2010-01-25 15:38:23

0

如果你寫了一個自定義安裝,那麼你可以在成功的確認發送到Web服務器上安裝發送由硬件生成的序列號和序列號,他們用來下載文件。

然後,如果你發現相同的序列號,但不同的硬件串口,您可以發送回一個響應說,你不能激活軟件...

編輯

下面是一些信息獲取hardware info(假設.NET環境,但您可以找到與您使用的環境類似的東西)。

1

通常的解決辦法是:
創建一個哈希描述系統(不知道確切的方式得到它雖然,GIYF)&與串行結合起來,這樣當用戶安裝他要進入程序然後獲得一個密鑰,他必須在網站上輸入密鑰,將輸入的密鑰拆分爲串行和系統哈希,並檢查系統哈希和串行是否與存儲的哈希和串行相匹配,然後返回另一個密鑰(或者如果串行已被使用),他必須參加該計劃。

使用Mac地址作爲系統密鑰是而不是一個很好的解決方案,因爲它很容易被僞造。

0

設置Web服務和數據庫......他們必須驗證才能夠進行安裝。目前,您的模型存在的問題是您正在保護或隱藏服務器後面的軟件。你希望peopel擁有該軟件,即使他們不能使用它(通常)。串行密鑰階段應該在運行時解鎖軟件。

它是唯一適用於電腦遊戲的機型。

您需要查詢各種硬件生成GUID,哈希其對產品密鑰,你有數據的可重複而複雜和難以僞造件。

http://edn.embarcadero.com/article/26040到.COM接口的鏈接獲得的GUID的

的替代方法是使用類似的sysinfo或輸入dxdiag並rseults保存到一個文件...哈希它並使用它作爲串行。涉及的編碼很少 - 但有點混亂。

商店並且簽發的安裝密鑰 - 容易被發現,然後重新安裝管理。 即你真的不想去「電腦說不」 - 它真的是一個營銷機遇

0

你可以嘗試在安裝和解除密鑰卸載時阻止密鑰。這樣他們只能在每次卸載之間使用一次密鑰。

相關問題