2013-07-16 26 views
-1

我有一個小小的懷疑,我試圖讓我的應用程序儘可能安全,所以有可能我們可以創建一個只能運行一次的安裝文件,之後它不應該運行在任何pc上。這聽起來是愚蠢的,但它是可能的。我沒有任何代碼可以顯示,我只想知道我們是否可以在JAVA中創建它是否可以創建只能運行一次的設置嚮導?

回答

1

您可以讓應用程序連接到網站以檢查它是否已安裝,但是它需要在當時連接到互聯網的安裝。

然後在安裝過程中,您會發送安裝通知。

我使用這樣的系統。下載時,它會生成一個序列號並將其插入到一個文件中,該文件稍後將由安裝系統讀取並用於在安裝期間「註冊」產品。

+0

雅我知道,但如果用戶試圖在其他PC上安裝相同的設置文件,然後直接激活我沒有使用任何序列鍵我用客戶的PC作爲一個關鍵(如把硬件ID作爲一個關鍵) –

1

不可以。您可以採取一些合理步驟來使其更加困難,但任何真正有興趣破壞安全機制的人都可能能夠做到。

即使正在運行的副本以後自行刪除,您創建的任何內容都可以被複制並執行任意次數。

這導致每次安裝程序運行時都需要對某些服務器進行外部驗證。然而,這也不能保證工作,只要看看如何輕鬆/快速的視頻遊戲DRM就是一個例子。

1

您可以從包含true或false的文件讀取。在if語句中將嚮導的啓動包裝爲只在該變量爲false時才執行,然後在嚮導的末尾將該文件更改爲true。如果你想讓它更安全,你可以加密文件,然後解密看看它說什麼。

+0

Marco我以前想過但沒有試過。我可以工作的事情謝謝我會嘗試 –

+0

這是一個偉大的技術,假設沒有人真正關心打敗它。另外假設你不介意有無償小文件踢。最好修改目標代碼中的某個文件 - 至少讓用戶工作一點點。 –

1

「是否可能」總是一個棘手的問題,原因很多。

我認爲你不可能創造這個以你想要的方式工作,只是因爲你在談論一個安全問題,並且如果有人對你的安全措施感到非常感興趣,那麼將會有做一個比你在鎖定時更好的人。

無論您的軟件是否會激發這種興趣,我都無法知道。安全方面的一個重要問題是「我能否爲我的目的做到這一點?」,而且我們對您的要求,預期的威脅模型等知之甚少。總而言之,我可以給你的最佳答案是:如果你想要安全地完成,不要自己動手。去專業,讓他們保護它。你想充分了解安全性以評估專業人士,所以你有一些希望得到你所支付的東西,但你不想編寫這些代碼。你可能會擅長寫電子表格或郵件客戶端或任何你正在寫,但你顯然不擅長寫作的安全,這是不是你在一天學習的東西。

2

安裝嚮導並不實際控制的時候,或者,它運行。它也不控制人們想要跑多少次。所以你的問題的直接答案是「不」。然而,這是完全可能的(甚至期望)有被運行過以前的時間「神器」設置嚮導檢查。

如果您有設置嚮導檢測文件或設置哪個嚮導將是唯一可能的創建者,然後在檢測到關閉時關閉,那麼您可以有效地防止嚮導的關鍵部分運行兩次。

相關問題