2013-03-04 44 views
-2

假設我編寫了一個JAVA程序並創建了JAR文件。我怎樣才能做到這一點,如果有人從JAR中提取類文件,他不能拆卸它?例如,如果您使用DJ JAVA Decompiler,您應該會看到一條錯誤消息「您無法反彙編此文件」。我已經看到這個消息。那麼,你如何鎖定類文件?如何使類文件不可拆解

謝謝

+1

duplicates http://stackoverflow.com/questions/49379/how-to-lock-compiled-java-classes-to-prevent-decompilation http: //sackoverflow.com/questions/1879061/how-to-protect-java-codes-against-decompiler – rajesh 2013-03-04 10:09:50

+1

混淆可能。 – 2013-03-04 10:10:50

回答

0

我怎樣才能讓這個如果有人提取從JAR的類文件,他不能拆開它

簡單的答案是,你不能。

反彙編(對人類可讀的字節碼)是微不足道的。甚至有一個可以做到的JDK工具。

如果您使用混淆器,則反編譯爲Java代碼可能會部分被擊敗。混淆器可以做些事情來刪除有用的符號,並混淆典型的反編譯器,以便產生不可編譯的「代碼」。然而,具有中等技能(和動機/持久性)的黑客可以找出你的代碼正在做什麼,並且手動編輯反編譯器輸出到可編譯的Java(如果這是他/她的意圖)。

有時建議的另一種方法是加密字節碼。不幸的是,黑客比混淆更容易進行迴避。在某些時候,您的應用程序必須解密字節碼才能加載它們。所有黑客需要做的就是攔截他們。


而且也沒有辦法,你能說服反編譯/反彙編告訴用戶/黑客,他不能反編譯/拆卸。這將是一個「大胖子的謊言」開始...