正如我們所知,有很多java反編譯器工具可以將.class轉換爲.java文件。如何保護Java代碼免受反編譯?
因此,我們需要保護我們的.java文件免受反編譯器的影響。我知道這是一個很大的話題,也許沒有結局。
通常,有兩種方式:混淆器和自定義類加載器。
是否有任何成熟的解決方案或開源框架,它們結合了這兩種方式?
另一個方面與exe4j有關,它將jars包裝到exe文件中,似乎可以保護java代碼,因爲我們可以看到的是exe文件而不是jar文件或類文件。但實際上,當它運行時,它會將所有jar文件分解爲臨時目錄,這意味着很容易獲取反編譯器的類文件。 因此,從exe4j方面保護java代碼的任何考慮?
感謝您的意見和建議。
正在更新
感謝大家的建議或經驗分享。這對我很有幫助。爲了得出結論,我將放棄任何混淆器或定製類加載器加密的東西。因爲最終Java代碼可以在聰明的黑客之前被披露。
我將在編譯時使用C#語言中的「#ifdef」等技巧刪除一些核心代碼。在Java中,可以使用靜態和最終的布爾類變量來完成相同的工作。 然後編譯的類文件將不包含需要保護的java代碼。
重複的問題? – 2009-12-10 07:11:03
是的,這是一個重複的:http://stackoverflow.com/questions/49379/how-to-lock-compiled-java-classes-to-prevent-decompilation – David 2009-12-10 07:13:20
使用開源框架來創建閉源產品。有趣。 – 2009-12-10 07:25:34