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