java混淆器_Java 混淆器
在脑海中假想一下,在你苦苦经历 81 难,摸爬滚打研制的技术轮子,终于成型得以问世,遂打个 JAR 包投放于万网之中。可是没过几天,同样功能的轮子出现在你的眼前,关键是核心代码都一样,此时你的内心是否会像一万只草泥马奔腾而过呢?
面对此景,我们有没有办法,去混淆一些核心代码,来捍卫自己劳动成果呢?
作为臣服于 Java 的子民们,一切又都是那么的幸福,诸多开源的轮子帮你解决了这个问题,今天不妨尝试用一用 ProGuard 这款轮子。
ProGuard 是一个压缩(shrink)、优化(optimize)和混淆(obfuscate) Java 字节码文件的免费的工具。它可以删除无用的类、字段、方法和属性,可以删除没用的注释,最大限度地优化字节码文件。它还可以使用简短的无意义的名称来重命名已经存在的类、字段、方法和属性。常常用于Android 开发用于混淆最终的项目,增加项目被反编译的难度——摘自百度百科。
如官方图示(看不清,懵懂就行)
ProGuard 会对输入的 JAR 文件按照压缩、优化、混淆、预验证的顺序依次进行处理,最后得到输出 JAR 文件;
ProGuard 使用依赖类库(Library jars)来辅助对 Input jars 类之间的依赖关系进行解析,但是依赖类库本身不会被处理,也不会被包含到 Output jars 中。
1.工欲善其事必先利其器
下载最新版的 ProGuard,然后解压,进入到 bin 目录,Windows 下直接双击 proguardgui.bat 即可,而 Mac Os 下控制台运行 proguardgui.sh 即可。
下载地址:https://sourceforge.net/projects/proguard/files/latest/download
本次演示是在 Mac Os 下,控制台输入 sh proguardgui.sh。ProGuard 运行启动成功的界面如下。
2.工具而已,用就行了
在 Input/Output 中,Add input 选择要混淆的 JAR 包,注意一定要添加待混淆的 JAR 包依赖的所有类库,Add output 指定输出文件名(例如 a.jar);压缩(Shrinking)和优化(Optimization)不是本次的重点,略过;Obfuscation 中有很多混淆规则,可以自行依据官网进行配置调整;最后选择 Process,点击右下角的 Process! 即可。
成功操作界面会提示:Processing completed successfully!
3.效果如何呢?
采用 JD-GUI 打开根据混淆输出的 JAR,效果貌似像那么回事儿。
保护你劳动成果的方式有很多种,本次 2 分钟简单的分享,只是让你们知道有 ProGuard 这款技术轮子存在,有太多的细节需要去实践,大家可以按需,自行按照官网进行深入使用。
java混淆器_Java 混淆器相关推荐
- java 调试 工具_Java调试器–权威的工具列表
java 调试 工具 Java调试是一个复杂的空间. 调试器的类型很多,工具也很多. 在此页面中,我们将介绍7种类型的调试器之间的区别,并查看每个类别中的主要工具,以帮助您为正确的工作选择正确的工具. ...
- java 装饰器_JAVA装饰器模式
Java程序员们应该对java.io对不会陌生,因为java.io包采用了装饰器模式. 一.定义: Decorator装饰器,顾名思义,就是动态地给一个对象添加一些额外的职责,就好比为房子进行装修一样 ...
- java引导类加载器_Java类加载器层次结构(一)
类加载器有一种父/子关系.除了引导类加载器外,每个类加载器都有一个父类加载器.本章通过分析ClassLoader的源码来展示java类加载器的层次结构. 根据规定,类加载器会为它的父类加载器提供一个机 ...
- java的安全管理器_Java安全管理器——SecurityManager
总的来说,Java安全应该包括两方面的内容,一是Java平台(即是Java运行环境)的安全性:二是Java语言开发的应用程序的安全性.由于我们不是Java本身语言的制定开发者,所以第一个安全性不需要我 ...
- java 媒体播放器_Java多媒体播放器(三)
No.3 vlcj 一.简介 The vlcj project first gives you Java bindings to just about all of the native functi ...
- java类加载器_JAVA类加载器
虚拟机设计团队把加载动作放到 JVM 外部实现,以便让应用程序决定如何获取所需的类,JVM 提 供了 3 种类加载器: 1. 启动类加载器(Bootstrap ClassLoader) 负责加载 JA ...
- java 类加载器_Java 类加载器
一.概述 类加载器通过一个类的全限定名来获取描述此类的二进制字节流. 类加载器在类层次划分.OSGi.热部署.代码加密等领域发挥着重要的作用. 比较两个类是否"相等",只有在这两个 ...
- java 文件分割器_Java分割器
java 文件分割器 Java Spliterator is one of the four iterators – Enumeration, Iterator, ListIterator and S ...
- java多媒体播放器_Java多媒体播放器(四)
No.4 gstreamer-java 一.简介 An unofficial/alternative set of java bindings for thegstreamermultimedia f ...
- java播放器_java播放器
!!!各位老大我快下冈了!!! 最近开发了一个applet的视频程序,但用行在网络上不行 下载JMF2.1.1e播放组件地址 http://java.sun.com/products/java-med ...
最新文章
- POJ-2771 Guardian of Decency 最大独立子集
- html服务流程如何实现_朱传燕:美容院如何规范服务流程,提升专业口碑
- 超详细解读Java接口:模块通信协议以及默认方法和静态方法
- 作为Web开发人员,我为什么喜欢Google Chrome浏览器
- VTK修炼之道66:体绘制裁剪_Cripping技术
- Windows Server Core管理之WinRM
- python中文乱码 def decode-python处理一些乱码的中文文本时decode('utf-8')报错的处理...
- .Net中堆栈和堆的区别
- (转)SQL Server:在 SQL Server 2005 中配置数据库邮件,发送邮件
- 平台系统云服务器配置,01-云平台连接配置
- 8 计算机组成原理第五章 中央处理器 控制器 硬布线控制器 微程序控制器
- 任何字符串indexOf(‘‘)返回都是0,数组indexOf(‘‘)返回是-1
- 设计灵感|拼贴风格海报设计,优秀案例让你它好看在哪里?
- 在使用Vs2013打开Vs2008的解决方案时出现了以下错误:此版本的应用程序不支持其项目类型(.csproj)...
- python 设计模式之装饰器模式 Decorator Pattern
- JSK-8 字符串长度【入门】
- 卓有成效的管理者(珍藏版) (德鲁克管理经典)
- java俄罗斯方块七中图形类_用shell写俄罗斯方块
- Java获取某年某周的第一天
- 使用腾讯云服务器搭建网站