下载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>;
}

使用Proguard做Java代码混淆的更多相关文章

  1. Java代码混淆工具ProGuard

    目录 Java代码混淆工具ProGuard 简介 描述 作用的环境 功能 工作原理 下载 使用时注意事项 版本问题 JDK位数问题 Java的字节码验证问题 关于使用类似于Hibernate的对象关系 ...

  2. 大公司怎么做Android代码混淆的?

    3月17日,网易资深安全工程师钟亚平在安卓巴士全球开发者论坛上做了<安卓APP逆向与保护>的演讲.其中就谈到了关于代码混淆的问题.现摘取部分重点介绍如下:   Java代码是非常容易反编译 ...

  3. java代码混淆

    仅做记录之用. java代码可以反编译,因此有时候要保护自己的知识产权还真得费点心思,一般来说有三个思路: 1.将class文件加密,这个是最安全的,但也费事儿,因为要重写classloader来解密 ...

  4. 5个常用Java代码混淆器 助你保护你的代码

    [IT168 技术文档] 从事Java编程的人都知道,可以通过逆向工程反编译得到Java程序的源代码,这种反编译工具之一就是JAD.因此,为保护我们的劳动成果,尽可能给反编译人员制造障碍,我们可以使用 ...

  5. 免费的java代码混淆,程序加密

    java代码可以反编译,特别是放在客户端的程序很用被剽窃,盗用.保护程序一般都有以下几个方法: 1.将class文件加密,这个是最安全的,但也费事儿,因为要重写classloader来解密class文 ...

  6. Java代码加密与反编译(一):利用混淆器工具proGuard对jar包加密

    Java 代码编译后生成的 .class 中包含有源代码中的所有信息(不包括注释),尤其是在其中保存有调试信息的时候.所以一个按照正常方式编译的 Java .class 文件可以非常轻易地被反编译.通 ...

  7. Android 4.0 ProGuard 代码混淆 以及 proguard returned with error code 1.See console异常的解决方法

    最近呢说要上线,就去找了下上线的方法...之前做过代码混淆,用的是progarud.cfg,但是呢自己反编译了之后还是无效,然后就丢着先不管了,因为实在不知道什么情况.今天来上线的时候结果总是报错,总 ...

  8. Android 项目的代码混淆,Android proguard 使用说明

    简单介绍 Java代码是非常easy反编译的. 为了非常好的保护Java源码,我们往往会对编译好的class文件进行混淆处理. ProGuard是一个混淆代码的开源项目.它的主要作用就是混淆,当然它还 ...

  9. 转:Android 2.3 代码混淆proguard技术介绍

    ProGuard简介 ProGuard是一个SourceForge上非常知名的开源项目.官网网址是:http://proguard.sourceforge.net/. Java的字节码一般是非常容易反 ...

随机推荐

  1. AndRoid studio创建APP图标

    打开---File----New----Image asset 注意:在design页面可能没有image asset选项!必须在其他编辑页面! 这就打开了图标设置页面,找到自己想要的图标就好!下面框 ...

  2. 【C语言】C语言标识符

    目录: [定义]  [作用]  [命名规则]  [命名规范] 1.定义  标识符就是我们给函数或变量定义的名称.方便查阅增强可读性.减少沟通成本. 2.作用  · 增强可读性.  · 减少沟通成本. ...

  3. ios 颜色转图片

    - (UIImage *)imageWithColor:(UIColor*) color{    CGRect rect=CGRectMake(0.0f, 0.0f, 1.0f, 1.0f);    ...

  4. 【代码笔记】iOS-读取一段文字

    一,效果图. 二,工程图. 三,代码. RootViewController.m #import "RootViewController.h" @interface RootVie ...

  5. OC self = [super init] , 点语法 , @property

    OC self = [super init] , 点语法 , @property 构造方法为啥这么写? self = [super init]; [super init] 的结果可能有三种: 第一种: ...

  6. php页面静态化

    如何优化页面响应时间: 动态页面静态化 优化数据库 使用负载均衡 使用缓存 如果页面中的一些内容不经常改动,可以使用动态页面静态化.好处是:减少服务器脚本的计算时间:降低服务器的响应时间. 1.动态U ...

  7. asp.net mvc SelectList 的selected 失效及解决方案

    ViewData 名 不能和 绑定的 DropdownListFor的字段名 重复  

  8. Tableau——BI software

    Tableau 8权威指南 (权威的数据可视化实战手册,中国传媒大学教授沈浩.北京大学研究员袁晓如 联袂推荐) 触手可及的大数据分析工具——Tableau案例集 写给专业数据分析师的丛书,无门槛的大数 ...

  9. oom_kill_process造成数据库挂起并出现found dead shared server

    这篇博客是上一篇博客Oracle shutdown immediate遭遇ORA-24324 ORA-24323 ORA-01089的延伸(数据库挂起hang时,才去重启的),其实这是我们海外一工厂的 ...

  10. fopen()、 file_get_contents() 通过url获取链接内容

    功能:获得网页内容 区别如下: fopen()打开URL 下面是一个使用fopen()打开URL的例子: <?php $fh = fopen('http://www.baidu.com/', ' ...