首先jar cvf a.jar *.class打包程序,然后jad -d d:\ -r -s java d:\*.class反編譯程序,生成Test.java文件,通過對比可以發現,它和原來文件的內容基本是相同的。
進入Proguard的lib目錄,用JDK打開proguardgui.jar,點選Input/Output標簽,選擇要混淆的JAR包(注意是JAR包),輸出JAR包,以及用到的所有類庫。 點選Obfuscation標簽,選中不需要混淆的類(要被反射的類絕對不能被混淆),一般是1,4,5,9,10,11
,12這幾個選項。 a.txt的文件內容為:(混淆函數名) Gcd b.txt的文件內容為:(混淆類名) A B
解壓b.jar后,這時的3個class文件分別為A.class、B.class、Test.class; 重新反編譯程序jad -d d:\b\ -r -s java d:\b\*.class,生成3個java文件:A.java、B.java、Test.java,具體內容如下: