從事Java編程的人都知道,可以通過逆向工程反編譯得到Java程序的源代碼,這種反編譯工具之一就是JAD.因此,為保護我們的勞動成果,盡可能給反編譯人員制造障礙,我們可以使用Java Obfuscator(Java混淆器)保護Java的類文件。
Java Obfuscator的原理就是將字節碼轉換為一個邏輯上的對等物,這種轉換後的版本極難拆散。即使有人試圖去反編譯,過程將極其艱難復雜,並很難繞過轉換後模糊晦澀的編碼。主要的過程如下:
用一個常規編譯器(比如JDK)編譯Java源代碼運行混淆器,在受保護的環境下生成編譯類文件。最後生成的會是一個不同的輸出文檔,也許擴展名也會不同。
這個被重命名為。class file的文件在功能上與原字節碼是對等的,由於虛擬機仍然可以對其進行解譯,因此對性能不會產生影響。
以下是一些可用來混淆(obfuscate)Java字節碼的工具:
Zelix KlassMaster
Zelix KlassMaster是一款用Java寫的實用工具,能讀取和修改Java類文件,可以運行在任何支持1.1.6版Java虛擬機的平台上。
下載:http://www.zdnetindia.com/downloads/info/898255.Html
Cinnabar Canner
Canner通過創建一個原生Windows可執行文件(EXE文件)保護你的代碼不被逆向工程反編譯,這個可執行文件包含了你的應用程序類和資源的全部加密版本,只有在被JVM調用到內存中時才處於非加密狀態。
網站:http://www.cinnabarsystems.com/canner.Html
下載:http://www.cinnabarsystems.com/download.Html
Jmangle Java類粉碎機
Jmangle是用來阻止反編譯Java程序,降低盜版的軟件,開發者可用其粉碎類文件中的符號。
網站:http://www.elegant-software.com/software/jmangle/
下載:http://www.elegant-software.com/software/jmangle/download.Html
RetroGuard
JavaGuard是一款通用的字節碼混淆器,用來無縫融入你的日常構建和測試過程中,使得你辛苦編寫寶貴的Java代碼更加安全。
網站:http://Java-source.Net/open-source/obfuscators/Javaguard
JODE
JODE是一款含Java解碼器和優化器的Java包。
網站:http://Java-source.Net/open-source/obfuscators/jode
最後要說的是,你也可使用其他幾款類似的實用工具,這些工具運用許多不同的方法達到了相同的目標。他們也有共同之處,就是允許通過不同的過程轉換生成。exe文件,將。class和。jar文件模糊化。Google Directory上有一張它們的綜合列表:
http://directory.google.com/Top/Computers/Programming/Languages/Java/Development_Tools/Obfus