用proguard混淆java web项目

工具:proguard 5.2

准备:web项目导出的jar包和war包,项目所需的jar

过程:

1.proguard设置:

 

设置所要混淆的项目jar包,和混淆后的jar包名称。并添加项目所用的jar包。

 

Shrinking,不选不填

 

Obfuscation设置如上。

 

Optimization如上。

 

Information,其中target表示JDK版本。

 

Process,”save configuration”,生成.pro文件,该文件就是混淆配置文件。

2.设置配置文件

将上述生成的.pro文件用txt打开,加入你混淆所要保留的类。

保留选项 

-keep {Modifier} {class_specification}    保护指定的类文件和类的成员 
-keepclassmembers {modifier} {class_specification}    保护指定类的成员,如果此类受到保护他们会保护的更好 
-keepclasseswithmembers {class_specification}    保护指定的类和类的成员,但条件是所有指定的类和类成员是要存在。 
-keepnames {class_specification}    保护指定的类和类的成员的名称(如果他们不会压缩步骤中删除) 
-keepclassmembernames {class_specification}    保护指定的类的成员的名称(如果他们不会压缩步骤中删除) 
-keepclasseswithmembernames {class_specification}    保护指定的类和类的成员的名称,如果所有指定的类成员出席(在压缩步骤之后) 
-printseeds {filename}    列出类和类的成员-keep选项的清单,标准输出到给定的文件 

 

具体怎么写可以百度,我的建议是:先把所有类都保留,或者就混淆一个类,慢慢的扩大混淆范围,这样成功率会高一些。

3.混淆

上述文件配置好后,load configuration ,然后process

可能出现的问题:

1..pro文件不能加载,肯定是你的配置写的有问题,改一下。

2.在process过程中项目所需的jar包报错,可能是jar包有问题,重新下一个试一试就行了。

4.部署

将你生成的混淆过后的jar包中的class文件替换到war文件中。

war包放到tomcatwebapps下,开启tomcat检查能正常运行。若报错肯定是混淆有问题。

你可能感兴趣的:(java,web)