以下面的Test.java文件為例:




































































首先jar cvf a.jar *.class打包程序,然后jad -d d:\ -r -s java d:\*.class反編譯程序,生成Test.java文件,通過對比可以發(fā)現(xiàn),它和原來文件的內(nèi)容基本是相同的。






























































































進入Proguard的lib目錄,用JDK打開proguardgui.jar,點選Input/Output標簽,選擇要混淆的JAR包(注意是JAR包),輸出JAR包,以及用到的所有類庫。
點選Obfuscation標簽,選中不需要混淆的類(要被反射的類絕對不能被混淆),一般是1,4,5,9,10,11
,12這幾個選項。
a.txt的文件內(nèi)容為:(混淆函數(shù)名)
Gcd
b.txt的文件內(nèi)容為:(混淆類名)
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,具體內(nèi)容如下:






















































































