jar包混淆和防反编译工具proguard使用简介
平时都是用java语言做开发,特殊情况下,需要对编译出的jar包混淆,防止被轻易的反编译出来看到源码,用的proguard工具,下面简单记录一下工具使用过程。
1、下载程序包,可以去https://www.guardsquare.com/en/products官网下载,如果你的网络无法下载,可以去https://download.csdn.net/download/yanh8706/10462358下载写这个文章时候的最新版本proguard6.0.3
这个工具是操作的jar包,所以需要你提前将你的项目打成jar包,然后再用proguard来混淆。
2、解压后去proguard6.0.3\bin目录,执行proguardgui.bat文件会打开如下的一个界面

3、点击Input/Output按钮,然后Add input选择需要混淆的jar包,Add output选择混淆完之后输出路径。Library jars根据情况选择,有需要依赖的包就加到这里,没有依赖包就用默认设置不用修改。然后点next
4、进入了Shrinking页面,这里主要Keep选项,根据自己情况选择,例如是应用程序就选Application,WEB工程就选Librarys,还有Android等自己根据情况选择,然后next
5、进入Obfuscation页面配置混淆规则,这一页选项都选默认就可以了。然后下一步Optimization页面,没特殊需要也默认就可以,上面两项如果有特殊要求,可以仔细研究一下官方文档修改配置。如果混淆后程序运行不太正常,可以把Optimize选项关闭。反正我们最关心的是混淆和防止反编译,代码优化不优化的不是很重要。
6、进入Information页面,注意Target可以选择JDK版本,还有个Ignore warnings about possibly erronous input,如果混淆的时候,因为警告导致无法继续,可以把这个选项勾上。其它的选默认就可以了,然后下一步。
7、进入Process页面,可以点"Process!"按钮进行混淆,话也可以点"Save configuration..."按钮将配置文件保存。如果混淆出错了就倒回去查查每项配置是不是有问题,或者懂工具配置项含义的话可以直接修改上面保存的配置文件,然后重新Load configuration使用修改完的配置文件来进行混淆操作。

成功后,反编译看看方法名等都已经被替换成了无意义的值,代码也变得不是那么容易阅读了。然后再测试新生成的jar包功能是否正常。
上面只是写了最基本的使用,其实这个工具有很多配置项是可以好好研究研究的,例如配置那些类、那些方法混淆哪些不混淆等等,有时间了再好好写写。
jar包混淆和防反编译工具proguard使用简介的更多相关文章
- .Net的混淆防反编译工具ConfuserEx--2(转)
给大家推荐一个.Net的混淆防反编译工具ConfuserEx. 由于项目中要用到.Net的混淆防反编译工具. 在网上找了很多.Net混淆或混淆防反编译工具,如.NET Reactor.Dotfusca ...
- 给大家推荐一个.Net的混淆防反编译工具ConfuserEx
给大家推荐一个.Net的混淆防反编译工具ConfuserEx. 由于项目中要用到.Net的混淆防反编译工具. 在网上找了很多.Net混淆或混淆防反编译工具,如.NET Reactor.Dotfusca ...
- 一个.Net的混淆防反编译工具ConfuserEx
给大家推荐一个.Net的混淆防反编译工具ConfuserEx. 由于项目中要用到.Net的混淆防反编译工具. 在网上找了很多.Net混淆或混淆防反编译工具,如.NET Reactor.Dotfusca ...
- Java反编译工具CFR,Procyon简介
Java反编译工具有很多,个人觉得使用最方便的是jd-gui,当然jad也不错,jd-gui主要提供了图形界面,操作起来很方便,但是jd-gui很久没有更新了,java 7出来很久了,jd-gui在反 ...
- Java 反编译工具哪家强?对比分析瞧一瞧
前言 Java 反编译,一听可能觉得高深莫测,其实反编译并不是什么特别高级的操作,Java 对于 Class 字节码文件的生成有着严格的要求,如果你非常熟悉 Java 虚拟机规范,了解 Class 字 ...
- Android: apk反编译 及 AS代码混淆防反编译
一.工具下载: 1.apktool(资源文件获取,如提取出图片文件和布局文件) 反编译apk:apktool d file.apk –o path 回编译apk:apktool b path –o f ...
- 防反编译、混淆文件proguard.cfg与proguard-project.txt详解
在新版本的ADT创建项目时,混码的文件不再是proguard.cfg,而是project.properties和proguard-project.txt. 如果需要对项目进行全局混码,只需要进行一步操 ...
- .net混淆、反编译工具调查
常用的工具列表[比较常见的] 混淆器.加密 Dotfuscator VS默认带的工具,不过是个社区版 强度不大 dotNET Reactor 使用了NativeCode 和混淆的形式 Xenocode ...
- 防反编译的加壳工具-Virbox Protector
通过Virbox Protector可快速对您的软件进行加壳,可防调试,防挂钩,防反编译. 首先,你要有一个云平台(www.sense.com.cn)的帐号,登录后,只需将你的dll或者exe拖入到加 ...
随机推荐
- [shell]上一个命令执行完成,才执行下一个操作 | shell脚本中判断上一个命令是否执行成功
shell脚本中判断上一个命令是否执行成功 shell中使用符号“$?”来显示上一条命令执行的返回值,如果为0则代表执行成功,其他表示失败.结合if-else语句实现判断上一个命令是否执行成功. 场 ...
- Ubuntu16.04中安装VirtualBox及简单配置
sudo apt-get -y install virtualbox 注:将该图表拖到桌面上即可 往下的过程都不变..... 将左边的菜单栏移动到下面 打开一个终端输入:gsettings set c ...
- Python 正则表达式【二】
关于前向,后向,匹配,非匹配 Matches if ... matches next, but doesn’t consume any of the string. This is called a ...
- spring boot 整合redis
spring boot 中配置redis1 在pom.xml中增加相关包依赖:<dependency> <groupId>org.springframework.boot< ...
- HBase 数据恢复
参考链接: https://community.hortonworks.com/content/supportkb/48748/hbase-master-wont-start-with-followi ...
- JavaScript(1)——编程真善美
编程真善美 命名风格: 驼峰命名法 小驼峰法 变量一般用小驼峰法标识.驼峰法的意思是:除第一个单词之外,其他单词首字母大写:camelCase 大驼峰法(即帕斯卡命名法) 相比小驼峰法,大驼峰法把第一 ...
- Nginx代理与反向代理、负载均衡实
通过 Nginx 提供的反向代理和负载均衡功能,可以合理的完成业务的分配,提高网站的处理能力:同时利用缓存功能,还可以将不需要实时更新的动态页面输出结果,转化为静态网页形成缓存,从而提高网站的响应速度 ...
- Android开发 移动端适配
1 UI自适应(UGUI) UI自适应又分为锚点自适应和缩放.锚点主要控制UI控件在父控件之中的位置,同时也能影响缩放. 锚点自适应缩放: 我们使用UGUI创建一个界面,设计使用1920x1080分辨 ...
- C# Tcp协议收发数据(TCPClient发,Socket收)
转载自:http://www.cnblogs.com/WTFly/p/5340617.html 运行这个程序前需要先关闭Windows防火墙,Win7系统关闭防火墙的方法是在控制面板的"控制 ...
- java-最大公约数
4和2的最大公约数是2呀