参考文章:

ProGuard简介

ProGuard 是一个压缩(shrink)、优化(optimize)和混淆(obfuscate) Java 字节码文件的免费的工具。它可以删除无用的类、字段、方法和属性,可以删除没用的注释,最大限度地优化字节码文件。它还可以使用简短的无意义的名称来重命名已经存在的类、字段、方法和属性。常常用于Android 开发用于混淆最终的项目,增加项目被反编译的难度。

主要流程如下:

  • ProGuard 会对输入的 JAR 文件按照压缩、优化、混淆、预验证的顺序依次进行处理,最后得到输出 JAR 文件;
  • ProGuard 使用依赖类库(Library jars)来辅助对 Input jars 类之间的依赖关系进行解析,但是依赖类库本身不会被处理,也不会被包含到 Output jars 中。

下载ProGuard工具

下载最新版的 ProGuard,然后解压,进入到 bin 目录,Windows 下直接双击  proguardgui.bat 即可,而 Mac Os 下控制台运行 proguardgui.sh 即可。

下载地址:

https://sourceforge.net/projects/proguard/files/latest/download

本次演示是在 Mac Os 下,控制台输入 sh proguardgui.sh。ProGuard 运行启动成功的界面如下。

使用流程

在 Input/Output 中,Add input 选择要混淆的 JAR 包,注意一定要添加待混淆的 JAR 包依赖的所有类库,Add output 指定输出文件名(例如 a.jar);压缩(Shrinking)和优化(Optimization)不是本次的重点,略过;Obfuscation 中有很多混淆规则,可以自行依据官网进行配置调整;最后选择 Process,点击右下角的 Process! 即可。

成功操作界面会提示:Processing completed successfully!

效果展示

采用 JD-GUI 打开根据混淆输出的 JAR:

java代码混淆(使用 ProGuard 工具)相关推荐

  1. java代码混淆器proguard使用大法3种

    ProGuard注意事项 1.反射调用类或者方法,可能失败 2.对外接口的类和方法,不要混淆 3.嵌套类 4.native方法 5.枚举类 https://www.guardsquare.com/en ...

  2. Java代码混淆工具ProGuard

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

  3. Java培训分享5个常用Java代码混淆器

    对于Java程序员来说,如果辛辛苦苦写的代码被人摽窃走,将是一件非常恼火的事情.如何保护自己的代码呢,可以通过逆向工程反编译得到Java程序的源代码,这种反编译工具之一就是JAD,尽可能给反编译人员制 ...

  4. 安卓逆向_18 --- APK保护策略【Java代码混淆、资源混淆、签名校验】

    Java 代码混淆介绍:https://www.bilibili.com/video/BV1UE411A7rW?p=60 Android 反编译利器 jadx:GitHub上直接下载:https:// ...

  5. JAVA代码混淆器大全

      JAVA代码混淆器大全 Author/Company Program Shrink. Optim. Obfusc. Preverif. License Eric Lafortune ProGuar ...

  6. Java代码混淆和加密--Jocky

    原文地址为: Java代码混淆和加密--Jocky 1.1 什么是Jocky? 我们知道,Java是一种跨平台的编程语言,其源码(.java文件)被编译成与平台无关的字节码(.class文件),然后在 ...

  7. java检测工具_常用Java代码质量检测评估工具

    常用Java代码质量检测评估工具 1. PMD from http://pmd.sourceforge.net/ PMD能够扫描Java 源代码,查找类似以下的潜在问题: 可能的bug--try/ca ...

  8. Java代码混淆工具-ProGuard

    1. 简介 ProGuard是一个压缩.优化和混淆Java字节码文件的免费的工具,它可以删除无用的类.字段.方法和属性.可以删除没用的注释,最大限度地优化字节码文件.它还可以使用简短的无意义的名称来重 ...

  9. Java代码混淆案例(附反编译工具)

       我们开发的软件上线后,经常会遇到核心代码不希望给别人抄袭,但系统是用Java开发的,又无法避免被反编译的情况,这样可以用代码混淆的方式来解决. 一.编译 顾名思义,就是将我们写的代码运行一遍,然 ...

最新文章

  1. 前端学习(2705):重读vue电商网站26之路由导航守卫控制访问权限
  2. C++中多态的基本概念以及虚表的基本概念
  3. 没有计算机基础可以学python-要学 Python 需要怎样的基础?
  4. R_差值_拟合_回归_样条
  5. EPS学习笔记3----------常用地物采集方法(房屋,斜坡,台阶)
  6. 小甲鱼C++快速入门学习笔记
  7. 申报2021国家高新技术企业认定,有哪些标准?
  8. 宝藏水晶VRay材质球素材,速来收藏
  9. power bi报表html,数据可视化系列:Power BI基于Web数据的报表制作(经典级示例)
  10. 现在的BAT,就是曾经的外企
  11. CSS实现实心三角形和空心三角形
  12. python3.7 如何去掉字符串\xa0/\xa0
  13. 如何编写智能合约(Smart Contract)?(II)建立加密代币
  14. 岗位来啦-华为研发OD招聘
  15. 51单片机定时器基础知识
  16. 什么工具压缩视频文件好用
  17. python学生成绩单---总分、平均成绩统计
  18. ibm服务器p系列小型机,IBM Power系列小型机发展历史
  19. 2018年总结2019年计划
  20. mac电脑idea配置tfs并连接

热门文章

  1. 思科模拟器 --- 三层交换机实现VLAN间路由
  2. 用户协议栈之协议设计
  3. 音视频学习(十一、PCM格式介绍)
  4. 【第一章】浅谈NB-IoT技术及介绍NB-IoT模组BC95的特点
  5. 一文掌握SPFA算法
  6. c++数据结构面试题(附答案)
  7. 教程-OBS刷课(岗位证)
  8. linux中用参数代替键盘输入,linux shell在while中用read从键盘输入的实现
  9. 实验 1 :Data Lab
  10. H3CSE路由-IPv6过渡技术