2012-04-09 33 views
0

我想知道,讓我說我開發一個程序,有權訪問客戶端計算機,有沒有辦法開發該程序,以便只能運行在通過在計算機中寫入唯一標識符(如果有類似的東西)到代碼中並編譯程序。我正在使用Delphi XE2如何防止程序被複制,使用Delphi

+0

使用加密狗。你可能在這裏有一些想法:http://stackoverflow.com/questions/1329471/what-c​​ode-to-write-for-a-dongle-attached-system-to-provide-better-security – mshsayem 2012-04-09 16:33:34

+0

我仍然是一個小菜鳥編程,所以整個加密狗的概念對我來說是陌生的 – Japster 2012-04-09 16:41:50

+0

試試這個http://stackoverflow.com/a/8847304/1051198 – PresleyDias 2012-04-10 06:37:24

回答

0

如果你想要簡單的東西,這會給你硬盤卷ID作爲一個數字,每個機器欄黑客應該是唯一的。

function GetHDSerialNumber: Dword; 
var dw:DWord; mc, fl : dword; c:string; 
begin 
    c:=extractfiledrive(application.exename)+'\'; 
    GetVolumeInformation(Pchar(c),nil,0,@dw,mc,fl,nil,0); 
    Result := dw; 
end; 

這適用於德爾福2007年的版本,上面是unicode的版本,你對這個問題有自己的看法。

3

簡短的回答是,沒有可靠的方法來防止複製程序。當然,有些技術可以識別程序的特定實例,識別機器硬件等,但對於這些技術中的每一種來說,都有一種反制技術可以讓真正想要麻煩的用戶繞過它。無論是破解你的程序並改變它的外觀(或完全禁用這些檢查),虛擬化你正在尋找的硬件等。總有一種方法。這只是一個人願意投入的時間和精力的問題。

+0

事情是,客戶端將無法破解任何東西,但他們將能夠複製CD或DVD。這就是爲什麼我只想知道是否有某種API或某些我可以幫助我閱讀電腦的硬件並防止複製 – Japster 2012-04-09 18:59:23

+0

再次,硬件可以虛擬化,您的應用程序永遠不會知道其中的差異。所以你不能單靠這一點。 – 2012-04-09 21:17:23

4

是的,您可以通過將可執行文件綁定到機器特徵來防止某種程度的未經授權的使用。你可以自己做(有問題),或者你可以購買現成的解決方案來爲你做(免責聲明 - 我爲一個爲這些問題提供解決方案的公司工作:Wibu-Systems)。機器綁定有兩個問題。我們可以與他們的一個幫助:

  1. 誤報:機械特性變化,由於用戶升級或怪異的駕駛行爲。這可能會導致您的許可系統報告用戶正試圖濫用許可證(誤報)。這是這些系統中的一個流行問題。 (無恥的自我推銷:我們剛剛發佈了一種綁定的新方法來減少或消除這類錯誤,我們稱之爲SmartBind(tm)

  2. 可破解性:因爲任何機器綁定必須使用OS調用才能獲得硬件「指紋」信息用於驗證,破解者可以修補用於始終返回已知「良好」值的dll,以允許破解軟件。這些類型的裂縫在BitTorrent網站上猖獗,但不幸的是,它並沒有很好的解決方法,儘管我們的方法使用了一些加密魔咒,使它更難做到,對於最終的反盜版,你必須使用加密設備,如CmStick,HASP或KeyLok。當然,NSA可以破解任何東西,但是難度破解像CodeMeter這樣一流的基於硬件的解決方案使其成爲可能,除非其收益確實是巨大的。

我強烈建議您仔細研究商業解決方案,仔細研究可用選項。在這個領域有很多供應商和幾個很好的產品可供選擇(當然,我認爲我們的產品是最好的)。當您試圖處理各種配置問題和潛在不愉快的用戶時,滾動您自己的解決方案將會給您帶來很大的悲痛。

+0

假陽性問題可以通過例如最小化。使用3個ID並默默接受對其中一個的更改。只有當兩個或更多的變化,舉起一面旗幟。 – 2012-04-10 10:17:56

0

儘管沒有防黑客硬件這樣的事情,但Wibu系統提到的還沒有被黑客入侵,它具有強大的反黑客功能,包括物理設計功能,使最複雜的黑客幾乎不可能。

像i-Lock這樣的其他解決方案已被黑客入侵,但到目前爲止,Wibu是一個很好的答案。我剛買了他們的入門套件。