博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
日积月累:ProguardGui进行jar包代码混淆
阅读量:6086 次
发布时间:2019-06-20

本文共 1728 字,大约阅读时间需要 5 分钟。

前面文章《Proguard进行源代码混淆》讲解过怎么使用Proguard工具对Android的源代码进行混淆的方法(感兴趣的朋友可以访问:),但是在实际工作中发现,通过上述方法对导出的Jar并没有进行混淆 

 

下面我们就介绍,如果对导出的Jar包进行代码混淆 

一、准备工作 

首先我们要准备好:1.你已经导出的jar包(srcjar.jar)文件,2.ProguardGui工具 sdk\tools\proguard\bin\proguardgui.bat)。 

 

二、操作步骤 

1.启动proguardgui工具。 

双击groguardgui.bat文件,运行如下图 

 

2.设置我们需要混淆的jar包和混淆后输出的jar包。 

点击左边的Input/Output按钮,运行如下图。在点击Add input按钮,添加我们需要进行混淆的jar包(srcjar.jar)。点击Add output按钮,填入我们要输出的jar包的名称 

 

3.添加jar包支持的库。 

点击下面的Add按钮,一一添加jar包支持的库。建议把你的Eclipe中,项目下所有的jar包都拷贝到一个统一的目录中,然后进行添加。 

项目中所有的jar支持 

集中了所有的jar在同一个文件夹下 

添加了jar包支持的库 

 

4.依次设置混淆的各种配置 

依次点击Shrinking按钮、Obfuscation按钮、Optimization按钮和Information按钮,分别对混淆进行各种配置。 

 

5.保存混淆的配置文件 

点击Process按钮,在点击Save configuration按钮,保存我们混淆配置文件 

 

6.根据需求修改混淆配置文件 

在真实的项目中,可能由于各种第三方的jar包,自动类和控件等问题,在混淆的时候,会导致各种类无法找到的问题。使用文本编辑器打开srcjar.pro文件,可以根据自己的需求编辑混淆配置。 

 

 
-injars ruyicai.jar //需要混淆的jar包  -outjars ruyicai-out.jar //混淆完毕输出的jar包  //引用依赖的jar包 -libraryjars 'C:\Program Files\Java\jdk1.6.0_43\jre\lib\rt.jar' … ... -libraryjars libs\weibo-1.2.jar  -optimizationpasses 5 -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontpreverify -verbose -optimizations !code/simplification/arithmetic,!field/*,!class/merging/*  //在混淆的过程中,建议保留Activity,Application四大组件,其它的类可根据实际情况设置是否混淆 -keep public class * extends android.app.Activity -keep public class * extends android.app.Application -keep public class * extends android.app.Service … …  -keep public class com.ruyicai.activity.common.PullRefreshListView{*;}  //不混淆第三方的jar包 -keep class com.alipay.android.app.**{*;} … ... -keep class cn.jpush.android.**{*;}  //后面的规则使用默认的,这里不在描述 … ….

 

7.载入混淆配置文件,对Jar进行混淆 

重新启动proguardgui程序,在点击右边Proguard按钮,点击Load configration按钮,导入上面配置好的混淆文件 

然后点击右边Process按钮,再次点击下面的Process按钮,进行Jar的混淆 

如出现上图successfully提示,则混淆完毕 

 

你可能感兴趣的文章
MySql.Data.dll的版本
查看>>
Linux系统磁盘管理
查看>>
hdu 2191 (多重背包+二进制优化)
查看>>
home.php
查看>>
neo4j---删除关系和节点
查看>>
redis分布式锁redisson
查看>>
什么样的企业可以称之为初创企业?
查看>>
Python爬虫之BeautifulSoup
查看>>
《HTML 5与CSS 3权威指南(第3版·下册)》——第20章 使用选择器在页面中插入内容...
查看>>
如何判断自己适不适合做程序员?这几个特点了解一下
查看>>
newinstance()和new有什么区别
查看>>
android下载封装类
查看>>
[node] 用 node-webkit 开发桌面应用
查看>>
Nginx访问控制和虚拟主机
查看>>
report widget not working for external users
查看>>
windows phone 摄像头得到图片是旋转90°
查看>>
Linux--sed使用
查看>>
没有显示器的情况下安装和使用树莓派
查看>>
Q85 最大矩形
查看>>
【android】使用handler更新UI
查看>>