文章目录

  • 前言
  • 一、ProGuard工具简介
  • 二、混淆过程
  • 1.将Java项目导出成jar文件
  • 2.混淆
  • 三、验证混淆结果
  • 1.jad介绍及安装
  • 2.将.class文件反编译成.java文件



前言

目前的研究方向是代码混淆这一块,这两天在找一些业内广泛使用的Java代码混淆工具。刚用了ProGuard,做个总结。


一、ProGuard工具简介

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

我的理解是:ProGuard主要注重外形混淆,对变量名、方法名等做简单替换。

二、混淆过程

1.将Java项目导出成jar文件

1.在Eclipse中右键项目,选中Export

2.选择Java-》JAR file

在线java代码混淆 java代码混淆工具_java

需要注意的是,此处需要手动设置生成的jar文件保存目录及名称。

在线java代码混淆 java代码混淆工具_jar文件_02

在实际的项目中是需要选择主类文件,然后就可以使用java -jar test.jar直接运行项目了。由于本例的重点是代码混淆,因此选择与不选择都可以。

2.混淆

在网上找了一个汉化版的ProGuard工具,其实使用英文版也可以锻炼自己的英文能力。(网盘链接: https://pan.baidu.com/s/1eNj5YmUt3Z2Sl8XfIFZ5sQ 提取码: my5b)


三、验证混淆结果

1.jad介绍及安装

a.由于混淆后的文件也是jar,jar文件中是.class文件,我们无法阅读,因此使用jad进行反编译成可阅读的java文件。

b.需要先安装jad:http://www.varaneckas.com/jad/ 自行选择下载版本。下载后解压到自己选定的目录下即可。

c.配置到环境变量中。

在线java代码混淆 java代码混淆工具_Java_03

cmd-》jad 可知是否配置成功。

2.将.class文件反编译成.java文件

先要将jar文件解压,再进行后续步骤。

在线java代码混淆 java代码混淆工具_jar文件_04

转化完成。

转化完成后,经过对比,发现在一定程度上对代码进行了混淆。