您的位置:首页 > 编程语言 > Java开发

使用Proguard做Java代码混淆

2015-03-09 15:58 429 查看
下载Proguard, 我下的是最新的Proguad5.2

在windows下运行bin/proguardgui.bat, 可以看见图形界面, 载入配置, 然后process.

配置文件例子

-injars 'C:\Users\MicrosoftUser\Desktop\demo.jar'
-outjars 'C:\Users\MicrosoftUser\Desktop\demo-pg.jar'

-libraryjars 'D:\workJava\workspace\demo\lib\Memcached-Java-Client-3.0.2.jar'
-libraryjars 'D:\workJava\workspace\demo\lib\commons-codec-1.6.jar'
-libraryjars 'D:\workJava\workspace\demo\lib\commons-imaging-1.0-SNAPSHOT.jar'
-libraryjars 'D:\workJava\workspace\demo\lib\commons-io-2.2.jar'
-libraryjars 'D:\workJava\workspace\demo\lib\commons-lang3-3.1.jar'
-libraryjars 'D:\workJava\workspace\demo\lib\dom4j-1.6.1.jar'
-libraryjars 'D:\workJava\workspace\demo\lib\ehcache-core-2.6.9.jar'
-libraryjars 'D:\workJava\workspace\demo\lib\httpclient-4.3.3.jar'
-libraryjars 'D:\workJava\workspace\demo\lib\httpcore-4.3.2.jar'
-libraryjars 'D:\workJava\workspace\demo\lib\im4java-1.4.0.jar'
-libraryjars 'D:\workJava\workspace\demo\lib\jackson-core-asl-1.9.13.jar'
-libraryjars 'D:\workJava\workspace\demo\lib\jackson-mapper-asl-1.9.13.jar'
-libraryjars 'D:\workJava\workspace\demo\lib\log4j-1.2.16.jar'
-libraryjars 'D:\workJava\workspace\demo\lib\mail-1.4.7.jar'
-libraryjars 'D:\workJava\workspace\demo\lib\spring-web-3.1.1.RELEASE.jar'
-libraryjars 'D:\workJava\workspace\demo\lib\spring-webmvc-3.1.1.RELEASE.jar'
-libraryjars 'D:\workJava\workspace\demo\lib\xstream-1.2.2.jar'
-libraryjars 'C:\Program Files\Java\jre6\lib\jce.jar'
-libraryjars 'C:\Program Files\Java\jre6\lib\rt.jar'
-libraryjars 'C:\Program Files\Java\jre6\lib\javaws.jar'
-libraryjars 'D:\workJava\servers\tomcat-7.0.54\lib\servlet-api.jar'
-libraryjars 'C:\Program Files\Java\jre6\lib\jsse.jar'

-target 1.6
-dontshrink
-dontoptimize
-dontusemixedcaseclassnames
-keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,LocalVariable*Table,*Annotation*,Synthetic,EnclosingMethod

# 设置不需要混淆的包, 可以使用通配符 * 和 *.**, 注意, 后者不包含前者
-keep class com.demo.common.bean.* {
public <fields>;
public <methods>;
*** set*(***);
*** get*();
}

#
-keep class com.demo.common.config.* {
public <fields>;
public <methods>;
*** set*(***);
*** get*();
}

#
-keep class com.demo.common.dao.*.** {
public <fields>;
public <methods>;
*** set*(***);
*** get*();
}

#
-keep class com.demo.common.web.*.** {
public <fields>;
public <methods>;
*** set*(***);
*** get*();
}

# Keep - Applications. Keep all application classes, along with their 'main'
# methods.
-keepclasseswithmembers public class * {
public static void main(java.lang.String[]);
}

# Keep names - Native method names. Keep all native class/method names.
-keepclasseswithmembers,includedescriptorclasses,allowshrinking class * {
native <methods>;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: