2016-06-28 59 views
0

我明白,StackOverflow適用於回答特定問題並避免主觀意見。我覺得我的問題只有一個正確答案,因此我在這裏發帖。哪個訂單? ProGuard + JWrapper + Launch4J

我創建了一個Java桌面應用程序(JavaFX),我打算將其分發用於商業用途。我讀過Java代碼很容易被反向設計,所以使用ProGuard之類的東西混淆是非常重要的。我想打包我的應用程序,以便用戶雙擊一個.exe(他們從我的網站下載),然後像任何標準軟件一樣運行安裝程序。這似乎超出了ProGuard的範圍,但我發現JWrapper和Launch4J似乎都提供了類似的功能。都聲稱將jar包裝到Windows本機可執行文件中,顯示啓動畫面,包括JRE,但我很困惑它們在哪裏有所不同。

具體來說,我需要如下:

  • 安裝嚮導(即放置exe文件安全的地方+做出桌面快捷方式,也可以增加最終用戶許可協議的地方)。
  • 添加EULA(最終用戶許可協議),它規定了應用
  • 網站更新用戶的限制(JWrapper似乎提供這種使用URL +構建路徑)
  • 能力使用授權來保護應用程序(有點)( License3j似乎很有前途)。

其特點可以發現herehere,但只有JWrapper提到的能力perform web updates並提到桌面快捷方式(我認爲也可以寫一個Eula.txt的地方)。

那麼,在完成編寫代碼之後,應該使用ProGuard,JWrapper和Launch4j的順序?我首先猜測ProGuard(縮小,優化和混淆),然後是JWrapper,然後是Launch4j?還是隻有3個?

隨意還可以建議我可能會丟失的其他方法,工具或概念。謝謝!

+0

JWrapper人們還提供JWCrypt,他們聲稱它是非常有效的代碼保護,但它不是免費的。 – nyholku

+0

這看起來很有前途,謝謝。它看起來像500美元/年,儘管如此,一個免費的替代品總是首選。但這並不現實,所以我想知道,如果我把所有的敏感數據處理放在服務器端,並且爲一家有信譽的公司提供保護服務,那麼比JWCrypt更好嗎?我的應用程序只包含大部分的框架代碼,並會在整個運行過程中從服務器請求代碼的「膽量」。有什麼想法嗎? TY。 – Mathomatic

+0

如果你可以在服務器端保留你想要保護的代碼,那麼顯然這是很好的保護,假設服務器沒有受到威脅。 但是您的最後一條語句提示將代碼從服務器拉到客戶端,這當然不是從反向工程更安全,而是首先在客戶端應用上安全。 – nyholku

回答

1

這個問題似乎超出範圍爲#1,但要回答這個問題:

  1. 申請的ProGuard首先在你的應用程序,讓您的應用程序
  2. 或者適用launch4j或jwrapper(主要方法給你在ProGuard處理的罐子上選擇)
+0

感謝您的反饋。 – Mathomatic