使用Proguard做Java代码混淆
下载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代码混淆的更多相关文章
- Java代码混淆工具ProGuard
目录 Java代码混淆工具ProGuard 简介 描述 作用的环境 功能 工作原理 下载 使用时注意事项 版本问题 JDK位数问题 Java的字节码验证问题 关于使用类似于Hibernate的对象关系 ...
- 大公司怎么做Android代码混淆的?
3月17日,网易资深安全工程师钟亚平在安卓巴士全球开发者论坛上做了<安卓APP逆向与保护>的演讲.其中就谈到了关于代码混淆的问题.现摘取部分重点介绍如下: Java代码是非常容易反编译 ...
- java代码混淆
仅做记录之用. java代码可以反编译,因此有时候要保护自己的知识产权还真得费点心思,一般来说有三个思路: 1.将class文件加密,这个是最安全的,但也费事儿,因为要重写classloader来解密 ...
- 5个常用Java代码混淆器 助你保护你的代码
[IT168 技术文档] 从事Java编程的人都知道,可以通过逆向工程反编译得到Java程序的源代码,这种反编译工具之一就是JAD.因此,为保护我们的劳动成果,尽可能给反编译人员制造障碍,我们可以使用 ...
- 免费的java代码混淆,程序加密
java代码可以反编译,特别是放在客户端的程序很用被剽窃,盗用.保护程序一般都有以下几个方法: 1.将class文件加密,这个是最安全的,但也费事儿,因为要重写classloader来解密class文 ...
- Java代码加密与反编译(一):利用混淆器工具proGuard对jar包加密
Java 代码编译后生成的 .class 中包含有源代码中的所有信息(不包括注释),尤其是在其中保存有调试信息的时候.所以一个按照正常方式编译的 Java .class 文件可以非常轻易地被反编译.通 ...
- Android 4.0 ProGuard 代码混淆 以及 proguard returned with error code 1.See console异常的解决方法
最近呢说要上线,就去找了下上线的方法...之前做过代码混淆,用的是progarud.cfg,但是呢自己反编译了之后还是无效,然后就丢着先不管了,因为实在不知道什么情况.今天来上线的时候结果总是报错,总 ...
- Android 项目的代码混淆,Android proguard 使用说明
简单介绍 Java代码是非常easy反编译的. 为了非常好的保护Java源码,我们往往会对编译好的class文件进行混淆处理. ProGuard是一个混淆代码的开源项目.它的主要作用就是混淆,当然它还 ...
- 转:Android 2.3 代码混淆proguard技术介绍
ProGuard简介 ProGuard是一个SourceForge上非常知名的开源项目.官网网址是:http://proguard.sourceforge.net/. Java的字节码一般是非常容易反 ...
随机推荐
- iOS KVC详细讲解
iOS KVC详细讲解 什么是KVC? KVC即NSKeyValueCoding,就是键-值编码的意思.一个非正式的 Protocol,是一种间接访问对象的属性使用字符串来标识属性,而不是通过调用存取 ...
- IOS开发--支付宝支付
前言:继上次<IOS开发--微信支付>以来,一直没有太多时间,更新总结详细支付这样的长篇大论,很抱歉.今天,推出支付宝支付的详细流程. 1.开始下载和查看支付宝支付的Demo. 我们直接进 ...
- raw_input() 与 input() __ Python
这两个均是 python 的内建函数,通过读取控制台的输入与用户实现交互.但他们的功能不尽相同.举两个小例子. 1 >>> raw_input_A = raw_input(" ...
- 验证位置时发生错误:“org.tigris.subversion.javahl.ClientException......
验证位置时发生错 误:“org.tigris.subversion.javahl.ClientException: RA layer request failed svn: Server sent u ...
- vmware克隆虚拟机eth0网卡无法启动
概述: 通过vmware克隆安装好的虚拟机之后,出现了网卡未启动的问题. vmware安装虚拟机请看:<vmware快速安装linux虚拟机>. 定位过程: 1.通过ifocnfig命令只 ...
- mysql字符编码集(乱码)问题解决
1.创建数据库 CREATE DATABASE `test` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'; 创建表 CREATE TABLE tp_w ...
- 照片大管家iOS-实现本地相册、视频、安全保护、社交分享一站式功能,源码开放
<照片大管家> APP功能: 1.本地照片批量导入与编辑 2.本地视频存储与播放 3.手势密码.数字密码.TouchID安全保护 4.QQ.微信.微博.空间社交分享 5.其他细节功能. 运 ...
- hadoop2.6---windows下开发环境搭建
一.准备插件 1.自己编译 1.1 安装Ant 官网下载Ant,apache-ant-1.9.6-bin.zip 配置环境变量,新建ANT_HOME,值是E:\apache-ant-1.9.6:PAT ...
- nc分析代理服务器
最近洒家搞了一个代理服务器(参见 折腾阿里云笔记 ).以前ƒq的时候代理服务器都是开在127.0.0.1,浏览器到代理服务器之间不会有中间人监听问题.现在代理服务器不在本机,洒家就突然想到了这些问题: ...
- 六轴加速度传感器MPU6050官方DMP库到瑞萨RL78/G13的移植
2015年的电赛已经结束了.赛前接到器件清单的时候,看到带防护圈的多旋翼飞行器赫然在列,又给了一个瑞萨RL78/G13的MCU,于是自然联想到13年的电赛,觉得多半是拿RL78/G13做四旋翼的主控, ...