我明白,StackOverflow適用於回答特定問題並避免主觀意見。我覺得我的問題只有一個正確答案,因此我在這裏發帖。哪個訂單? ProGuard + JWrapper + Launch4J
我創建了一個Java桌面應用程序(JavaFX),我打算將其分發用於商業用途。我讀過Java代碼很容易被反向設計,所以使用ProGuard之類的東西混淆是非常重要的。我想打包我的應用程序,以便用戶雙擊一個.exe(他們從我的網站下載),然後像任何標準軟件一樣運行安裝程序。這似乎超出了ProGuard的範圍,但我發現JWrapper和Launch4J似乎都提供了類似的功能。都聲稱將jar包裝到Windows本機可執行文件中,顯示啓動畫面,包括JRE,但我很困惑它們在哪裏有所不同。
具體來說,我需要如下:
- 安裝嚮導(即放置exe文件安全的地方+做出桌面快捷方式,也可以增加最終用戶許可協議的地方)。
- 添加EULA(最終用戶許可協議),它規定了應用
- 網站更新用戶的限制(JWrapper似乎提供這種使用URL +構建路徑)
- 能力使用授權來保護應用程序(有點)( License3j似乎很有前途)。
其特點可以發現here和here,但只有JWrapper提到的能力perform web updates並提到桌面快捷方式(我認爲也可以寫一個Eula.txt的地方)。
那麼,在完成編寫代碼之後,應該使用ProGuard,JWrapper和Launch4j的順序?我首先猜測ProGuard(縮小,優化和混淆),然後是JWrapper,然後是Launch4j?還是隻有3個?
隨意還可以建議我可能會丟失的其他方法,工具或概念。謝謝!
JWrapper人們還提供JWCrypt,他們聲稱它是非常有效的代碼保護,但它不是免費的。 – nyholku
這看起來很有前途,謝謝。它看起來像500美元/年,儘管如此,一個免費的替代品總是首選。但這並不現實,所以我想知道,如果我把所有的敏感數據處理放在服務器端,並且爲一家有信譽的公司提供保護服務,那麼比JWCrypt更好嗎?我的應用程序只包含大部分的框架代碼,並會在整個運行過程中從服務器請求代碼的「膽量」。有什麼想法嗎? TY。 – Mathomatic
如果你可以在服務器端保留你想要保護的代碼,那麼顯然這是很好的保護,假設服務器沒有受到威脅。 但是您的最後一條語句提示將代碼從服務器拉到客戶端,這當然不是從反向工程更安全,而是首先在客戶端應用上安全。 – nyholku