中国领先的IT技术网站
|
|

Java混淆工具ProGuard之初体验

本文使用的是ProGuard这一款Java代码混淆工具。 因为在我们实际的开发工作中,有些程序包含了公司核心产品的代码,所以为了保护自身的知识产权,避免程序包不小心外流出去,我们有必要进行一些保护措施,在程序开发完之后,需要将程序代码进行混淆。

作者:godcvcv来源:开源中国|2017-11-10 10:01

Tech Neo技术沙龙 | 11月25号,九州云/ZStack与您一起探讨云时代网络边界管理实践


Java混淆工具ProGuard之初体验

本文使用的是 ProGuard 这一款 Java 代码混淆工具。

1.混淆工具版本

本文使用的是ProGuard这一款Java代码混淆工具。 因为在我们实际的开发工作中,有些程序包含了公司核心产品的代码,所以为了保护自身的知识产权,避免程序包不小心外流出去,我们有必要进行一些保护措施,在程序开发完之后,需要将程序代码进行混淆。

本文使用的是ProGuard v5.3.3版本。

下载地址:https://sourceforge.net/projects/proguard/files/

2.混淆工具安装步骤

2.1 下载后的文件是一个压缩包:

2.2 解压压缩包

3.混淆工具使用步骤

3.1 解压后,执行 bin目录下的proguardgui.bat

执行proguardgui.bat后如图:

注意:执行proguardgui.bat后会出现一个cmd命令框,不要关闭,最小化即可。

3.2 点击左侧菜单栏中的“Input/Output”按钮:

3.4 点击右侧菜单栏中的“Add input...”按钮,导入需要被混淆的jar包:

3.5 点击右侧菜单栏中的“Add Output...”按钮

填写配置我们需要混淆后输出的jar包,输出的jar包需要自己手动填写,jar包名称可以自定义:

配置好jar包输入输出后,如图:

3.6 添加支持库

即eclipse里java project里的libraries所有Library的jar包,点击下方“Library jars,aara,wars,wars,zips,apks,and directories”框右侧“Add”按钮:

添加完毕后,如图所示:

3.7 设置Shrinking

设置如图所示:

3.8 设置Obfuscation

设置如图所示:

3.9 设置Optimization

设置如图所示:

3.10 设置Information

注意Target的jdk版本,设置如图所示:

3.11 输入要保存的配置文件

点击“process”,再点击“save configuration”,在弹出的对话框中,输入要保存的配置文件(首先在指定文件夹下创建一个空test.pro文件,选中test.pro),最后点击“保存”:

3.12 手动修改配置文件test.pro

保存完test.pro文件之后,关闭ProGuard,开始手动修改配置文件test.pro,test.pro文件内容在保存时已自动生成内容,我们只需添加自定义的修改即可,内容如下:

3.13 自定义配置文件说明:

3.13.1 这里是列表文本解决Proguard的bug:“java.lang.ClassFormatError: LVTT entry for 'clazz' in class file ** does not match any LVT entry”,需要配置以下参数:

3.13.2 解决找不到引用的类是第三方包里面的情况,因为这种情况会在混淆过程中报错,导致不能混淆代码,需要配置以下参数:

3.13.3 为了保证jar包的正常运行,我们不混淆main函数所在的类,需要配置以下参数:

3.14 重新启动ProGuard

加载配置文件test.pro,点击左菜单“ProGuard”,然后点击“Load configuration”,选择之前配置好的pro文件,打开即可,如图:

3.15 程序开始进行混淆

选择做菜单“Process”,点击下方“View configuration”,查看配置文件内容是否正确,最后点击下方右侧“Porcess!”,程序开始进行混淆,如图:

3.16 混淆成功

出现“Processing completed successfully”,代表混淆成功!如图:

本文只是一个简单的ProGuard入手操作的示例,方便大家快速上手使用,其实ProGuard还有许多自定义的内容,大家可以在网上搜索更多关于ProGuard的内容进行了解。

【编辑推荐】

  1. Python转JavaScript编译器,天了噜!还能转代码,到底怎么做到的
  2. 14个你可能不知道的JavaScript调试技巧
  3. 程序员总结分析:为什么要用原生 JavaScript 代替 jQuery?
  4. 这些JavaScript编程黑科技,高逼格代码,让你惊叹不已
  5. Kotlin和Java程序员福利:轻量级Web框架Javalin
【责任编辑:庞桂玉 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

系统分析师技术指南

本书对前沿而又成熟的系统分析技术和方法进行了讨论,包括CMM与过程改进、J2EE与NET平台、中间件及相关技术、应用服务器、Web 服务、数据...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊
× Phthon,最神奇好玩的编程语言