android JAR混淆

来源:互联网 发布:深圳网络安防培训学校 编辑:程序博客网 时间:2024/04/25 01:09

下面我们就介绍,如果对导出的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文件,可以根据自己的需求编辑混淆配置。 

[plain] view plaincopy
  1.   
[plain] view plaincopy
  1. -injars ruyicai.jar //需要混淆的jar包    
  2. -outjars ruyicai-out.jar //混淆完毕输出的jar包   
  3.    
  4. //引用依赖的jar包   
  5. -libraryjars 'C:\Program Files\Java\jdk1.6.0_43\jre\lib\rt.jar'   
  6. … ...   
  7. -libraryjars libs\weibo-1.2.jar   
  8.    
  9. -optimizationpasses 5   
  10. -dontusemixedcaseclassnames   
  11. -dontskipnonpubliclibraryclasses   
  12. -dontpreverify   
  13. -verbose   
  14. -optimizations !code/simplification/arithmetic,!field/*,!class/merging/*   
  15.    
  16. //在混淆的过程中,建议保留Activity,Application四大组件,其它的类可根据实际情况设置是否混淆   
  17. -keep public class * extends android.app.Activity   
  18. -keep public class * extends android.app.Application   
  19. -keep public class * extends android.app.Service   
  20. … …    
  21. -keep public class com.ruyicai.activity.common.PullRefreshListView{*;}   
  22.    
  23. //不混淆第三方的jar包   
  24. -keep class com.alipay.android.app.**{*;}   
  25. … ...   
  26. -keep class cn.jpush.android.**{*;}   
  27.    
  28. //后面的规则使用默认的,这里不在描述   
  29. … ….   

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

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


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


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

0 0