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拖入到加 ...
随机推荐
- user_tab_columns和user_col_comments区别
SELECT USER_TAB_COLUMNS.COLUMN_NAME, USER_COL_COMMENTS.COMMENTS, CASE WHEN INSTR(USER_TAB_COLUMNS.DA ...
- Mysql密码忘记,修改密码方法
1.set password for ‘root’@’localhost’ = password(‘czllss’); -- czllss为新密码
- 阶段3 3.SpringMVC·_06.异常处理及拦截器_2 SpringMVC异常处理之演示程序异常
原来的index.jsp删除.新建一个 创建pages文件夹.再创建success.jsp页面 重新部署项目 把这个项目移除掉 加入新的项目 启动tomcat服务器 模拟异常 方法抛出异常给前端控制器 ...
- java分布式事务及解决方案
1.什么是分布式事务 分布式事务就是指事务的参与者.支持事务的服务器.资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上.以上是百度百科的解释,简单的说,就是一次大的操作由不同的小操作组成 ...
- 添加 @ResponseBody出现错误的问题
maven配置: <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>ja ...
- java:JQuery(Ajax,JSON)
1.遍历ajax返回的json: 第一种: <%@ page language="java" import="java.util.*" pageEncod ...
- vue-cli 3.x 构建项目,webpack没有了?
vue-cli 3.x 已经没有了webpack.config.js文件.取而代之的是创建一个vue.config.js文件.官网是这样介绍的 vue.config.js const path = r ...
- 微信小程序动画:高度渐变,left渐变
今天在测试微信小程序动画的时候遇到了坑,需求是这样的点击时子元素从外部滑动回来,父元素的高度跟随子元素的高度改变. 实现子元素left为0并不复杂,但是改变父元素box的高度的时候却遇到了坑,因为是需 ...
- 【HANA系列】SAP HANA SQL计算某日期是当年的第几天
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA SQL计算某日 ...
- 【计算机视觉】论文笔记:Ten years of pedestrian detection, what have we learned?
最近正在研究行人检测,学习了一篇2014年发表在ECCV上的一篇综述性的文章,是对行人检测过去十年的一个回顾,从dataset,main approaches的角度分析了近10年的40多篇论文提出的方 ...