平时都是用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使用简介的更多相关文章

  1. .Net的混淆防反编译工具ConfuserEx--2(转)

    给大家推荐一个.Net的混淆防反编译工具ConfuserEx. 由于项目中要用到.Net的混淆防反编译工具. 在网上找了很多.Net混淆或混淆防反编译工具,如.NET Reactor.Dotfusca ...

  2. 给大家推荐一个.Net的混淆防反编译工具ConfuserEx

    给大家推荐一个.Net的混淆防反编译工具ConfuserEx. 由于项目中要用到.Net的混淆防反编译工具. 在网上找了很多.Net混淆或混淆防反编译工具,如.NET Reactor.Dotfusca ...

  3. 一个.Net的混淆防反编译工具ConfuserEx

    给大家推荐一个.Net的混淆防反编译工具ConfuserEx. 由于项目中要用到.Net的混淆防反编译工具. 在网上找了很多.Net混淆或混淆防反编译工具,如.NET Reactor.Dotfusca ...

  4. Java反编译工具CFR,Procyon简介

    Java反编译工具有很多,个人觉得使用最方便的是jd-gui,当然jad也不错,jd-gui主要提供了图形界面,操作起来很方便,但是jd-gui很久没有更新了,java 7出来很久了,jd-gui在反 ...

  5. Java 反编译工具哪家强?对比分析瞧一瞧

    前言 Java 反编译,一听可能觉得高深莫测,其实反编译并不是什么特别高级的操作,Java 对于 Class 字节码文件的生成有着严格的要求,如果你非常熟悉 Java 虚拟机规范,了解 Class 字 ...

  6. Android: apk反编译 及 AS代码混淆防反编译

    一.工具下载: 1.apktool(资源文件获取,如提取出图片文件和布局文件) 反编译apk:apktool d file.apk –o path 回编译apk:apktool b path –o f ...

  7. 防反编译、混淆文件proguard.cfg与proguard-project.txt详解

    在新版本的ADT创建项目时,混码的文件不再是proguard.cfg,而是project.properties和proguard-project.txt. 如果需要对项目进行全局混码,只需要进行一步操 ...

  8. .net混淆、反编译工具调查

    常用的工具列表[比较常见的] 混淆器.加密 Dotfuscator VS默认带的工具,不过是个社区版 强度不大 dotNET Reactor 使用了NativeCode 和混淆的形式 Xenocode ...

  9. 防反编译的加壳工具-Virbox Protector

    通过Virbox Protector可快速对您的软件进行加壳,可防调试,防挂钩,防反编译. 首先,你要有一个云平台(www.sense.com.cn)的帐号,登录后,只需将你的dll或者exe拖入到加 ...

随机推荐

  1. 阿里JAVA诊断工具Arthas的初步使用

    Arthas 是Alibaba开源的Java诊断工具,主要解决以下问题: 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 我改的代码为什么没有执行到?难道是我没 comm ...

  2. Selenium 2自动化测试实战30(unittest补充)

    unittest补充 1.用例执行的顺序 #test.py #coding:utf-8 from Demo1 import Count import unittest class TestBdd(un ...

  3. rabbiit报错处理

    一.ping不同download.yunwei.edu 内网服务地址必须在前面 [root@localhost ~]# vim /etc/resolv.conf # Generated by Netw ...

  4. 【转载】如何在 Kaggle 首战中进入前 10%

    本文转载自如何在 Kaggle 首战中进入前 10% 转载仅出于个人学习收藏,侵删 Introduction 本文采用署名 - 非商业性使用 - 禁止演绎 3.0 中国大陆许可协议进行许可.著作权由章 ...

  5. shell脚本安装python、pip--这种写法是错误的---每一个命令执行完都要判断是否执行成功,否则无法进行下一步

    shell脚本安装python.pip--不需要选择安装项目--不管用总报错,必须带上判断符号,while没有这种用法,写在这里为了以后少走弯路,所以不要用下面的执行了 首先把pip-.tgz 安装包 ...

  6. js Date格式转化

    Date格式转化为日期  年-月-日(格式随意修改) GetDateStr(dd, AddDayCount) { dd.setDate(dd.getDate() + AddDayCount)// 获取 ...

  7. jdk1.8-ArrayList源码分析

    一:idea可以自动生成UML类图,ctrl+alt+u ArrayList类图 我没们看下类的继承关系 ) { ) { ) { )) )) newCapacity = minCapacity) ne ...

  8. httplib/urllib实现

    httplib模块是一个底层基础模块,可以看到建立HTTP请求的每一步,但是实际的功能比较少.在python爬虫开发中基本用不到 下面详细介绍httplib提供的常用类型和方法: httplib.HT ...

  9. Linux进程间通信(IPC)之信号量

    [Linux]进程间通信(IPC)之信号量详解与测试用例 2017年03月22日 17:28:50 阅读数:2255 学习环境centos6.5 Linux内核2.6 进程间通信概述 1. 进程通信机 ...

  10. LeetCode.1089-重复的0(Duplicate Zeros)

    这是小川的第392次更新,第423篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第255题(顺位题号是1089).给定一个固定长度的整数数组arr,复制每次出现的零,将剩 ...