我有一個小小的懷疑,我試圖讓我的應用程序儘可能安全,所以有可能我們可以創建一個只能運行一次的安裝文件,之後它不應該運行在任何pc上。這聽起來是愚蠢的,但它是可能的。我沒有任何代碼可以顯示,我只想知道我們是否可以在JAVA中創建它是否可以創建只能運行一次的設置嚮導?
回答
您可以讓應用程序連接到網站以檢查它是否已安裝,但是它需要在當時連接到互聯網的安裝。
然後在安裝過程中,您會發送安裝通知。
我使用這樣的系統。下載時,它會生成一個序列號並將其插入到一個文件中,該文件稍後將由安裝系統讀取並用於在安裝期間「註冊」產品。
不可以。您可以採取一些合理步驟來使其更加困難,但任何真正有興趣破壞安全機制的人都可能能夠做到。
即使正在運行的副本以後自行刪除,您創建的任何內容都可以被複制並執行任意次數。
這導致每次安裝程序運行時都需要對某些服務器進行外部驗證。然而,這也不能保證工作,只要看看如何輕鬆/快速的視頻遊戲DRM就是一個例子。
您可以從包含true或false的文件讀取。在if語句中將嚮導的啓動包裝爲只在該變量爲false時才執行,然後在嚮導的末尾將該文件更改爲true。如果你想讓它更安全,你可以加密文件,然後解密看看它說什麼。
Marco我以前想過但沒有試過。我可以工作的事情謝謝我會嘗試 –
這是一個偉大的技術,假設沒有人真正關心打敗它。另外假設你不介意有無償小文件踢。最好修改目標代碼中的某個文件 - 至少讓用戶工作一點點。 –
「是否可能」總是一個棘手的問題,原因很多。
我認爲你不可能創造這個以你想要的方式工作,只是因爲你在談論一個安全問題,並且如果有人對你的安全措施感到非常感興趣,那麼將會有做一個比你在鎖定時更好的人。
無論您的軟件是否會激發這種興趣,我都無法知道。安全方面的一個重要問題是「我能否爲我的目的做到這一點?」,而且我們對您的要求,預期的威脅模型等知之甚少。總而言之,我可以給你的最佳答案是:如果你想要安全地完成,不要自己動手。去專業,讓他們保護它。你想充分了解安全性以評估專業人士,所以你有一些希望得到你所支付的東西,但你不想編寫這些代碼。你可能會擅長寫電子表格或郵件客戶端或任何你正在寫,但你顯然不擅長寫作的安全,這是不是你在一天學習的東西。
安裝嚮導並不實際控制的時候,或者,它運行。它也不控制人們想要跑多少次。所以你的問題的直接答案是「不」。然而,這是完全可能的(甚至期望)有被運行過以前的時間「神器」設置嚮導檢查。
如果您有設置嚮導檢測文件或設置哪個嚮導將是唯一可能的創建者,然後在檢測到關閉時關閉,那麼您可以有效地防止嚮導的關鍵部分運行兩次。
- 1. 引導向導下一個事件只能運行一次
- 2. JavaScript - 如何創建一次只能運行一次的函數?
- 3. 是否可以創建「class」運行時?
- 4. 是否可以爲用戶只運行一次php代碼?
- 5. 是否可以在Orchard創建一個嚮導?
- 6. 是否有可能創建只有一次C可設置字符串(char *)數據的結構?
- 7. 是否可以一次構建並運行兩個iPhone/iPod?
- 8. IndicatingAjaxButton只能運行一次
- 9. CLLocationManager只能運行一次
- 10. 是否可以從命令行運行Visual Studio轉換向導?
- 11. 是否有一種工具可以一次運行CSS 1行?
- 12. Android只能運行一次運行
- 13. 是否可以導入Exchange設置?
- 14. 是否可以創建一個只能在Moose的構造函數中設置的屬性?
- 15. 是否可以僅構建一次pod?
- 16. 是否可以設置由Python setuptools創建的console_script的SUID?
- 17. 是否可以設置Air View功能?
- 18. 是否可以在C#中運行時創建/執行代碼?
- 19. 是否有可能創建每秒運行的報警?
- 20. 觸發器只能運行一次,每天運行一次
- 21. 是否可以創建一個結構的2D向量?
- 22. Cocos2d只能運行一次的動作
- 23. 只能運行一次的過濾器?
- 24. 的Javascript運行功能只有一次
- 25. 是否有可能只在一個視圖上創建UISplitView?
- 26. 是否可以爲WebService進行設置?
- 27. 是否可以創建一個調查猴子帳戶'只讀'
- 28. 是否可以一次創建多個數據框?
- 29. 是否可以設置第一次啓動畫面?
- 30. 是否可以爲一次測試設置環境變量?
雅我知道,但如果用戶試圖在其他PC上安裝相同的設置文件,然後直接激活我沒有使用任何序列鍵我用客戶的PC作爲一個關鍵(如把硬件ID作爲一個關鍵) –