java代码混淆(使用 ProGuard 工具)
参考文章:
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 工具)相关推荐
- java代码混淆器proguard使用大法3种
ProGuard注意事项 1.反射调用类或者方法,可能失败 2.对外接口的类和方法,不要混淆 3.嵌套类 4.native方法 5.枚举类 https://www.guardsquare.com/en ...
- Java代码混淆工具ProGuard
目录 Java代码混淆工具ProGuard 简介 描述 作用的环境 功能 工作原理 下载 使用时注意事项 版本问题 JDK位数问题 Java的字节码验证问题 关于使用类似于Hibernate的对象关系 ...
- Java培训分享5个常用Java代码混淆器
对于Java程序员来说,如果辛辛苦苦写的代码被人摽窃走,将是一件非常恼火的事情.如何保护自己的代码呢,可以通过逆向工程反编译得到Java程序的源代码,这种反编译工具之一就是JAD,尽可能给反编译人员制 ...
- 安卓逆向_18 --- APK保护策略【Java代码混淆、资源混淆、签名校验】
Java 代码混淆介绍:https://www.bilibili.com/video/BV1UE411A7rW?p=60 Android 反编译利器 jadx:GitHub上直接下载:https:// ...
- JAVA代码混淆器大全
JAVA代码混淆器大全 Author/Company Program Shrink. Optim. Obfusc. Preverif. License Eric Lafortune ProGuar ...
- Java代码混淆和加密--Jocky
原文地址为: Java代码混淆和加密--Jocky 1.1 什么是Jocky? 我们知道,Java是一种跨平台的编程语言,其源码(.java文件)被编译成与平台无关的字节码(.class文件),然后在 ...
- java检测工具_常用Java代码质量检测评估工具
常用Java代码质量检测评估工具 1. PMD from http://pmd.sourceforge.net/ PMD能够扫描Java 源代码,查找类似以下的潜在问题: 可能的bug--try/ca ...
- Java代码混淆工具-ProGuard
1. 简介 ProGuard是一个压缩.优化和混淆Java字节码文件的免费的工具,它可以删除无用的类.字段.方法和属性.可以删除没用的注释,最大限度地优化字节码文件.它还可以使用简短的无意义的名称来重 ...
- Java代码混淆案例(附反编译工具)
我们开发的软件上线后,经常会遇到核心代码不希望给别人抄袭,但系统是用Java开发的,又无法避免被反编译的情况,这样可以用代码混淆的方式来解决. 一.编译 顾名思义,就是将我们写的代码运行一遍,然 ...
最新文章
- 前端学习(2705):重读vue电商网站26之路由导航守卫控制访问权限
- C++中多态的基本概念以及虚表的基本概念
- 没有计算机基础可以学python-要学 Python 需要怎样的基础?
- R_差值_拟合_回归_样条
- EPS学习笔记3----------常用地物采集方法(房屋,斜坡,台阶)
- 小甲鱼C++快速入门学习笔记
- 申报2021国家高新技术企业认定,有哪些标准?
- 宝藏水晶VRay材质球素材,速来收藏
- power bi报表html,数据可视化系列:Power BI基于Web数据的报表制作(经典级示例)
- 现在的BAT,就是曾经的外企
- CSS实现实心三角形和空心三角形
- python3.7 如何去掉字符串\xa0/\xa0
- 如何编写智能合约(Smart Contract)?(II)建立加密代币
- 岗位来啦-华为研发OD招聘
- 51单片机定时器基础知识
- 什么工具压缩视频文件好用
- python学生成绩单---总分、平均成绩统计
- ibm服务器p系列小型机,IBM Power系列小型机发展历史
- 2018年总结2019年计划
- mac电脑idea配置tfs并连接