android防反编译技术初体验——混淆

这几天做项目要做混淆,所以搜集资料学习了下,这次主要记录混淆的步骤,如有需要改正和完善的地方,还麻烦能够指出,大家共同进步o(* ̄▽ ̄*)ブ

1.项目防反编译技术步骤:

a) 加密、

b) 混淆、

c) 加壳(加固);

2.加密:对信息进行摘要计算,然后摘要值用私钥进行验签,重要数据使用rsa非对称加密;

3.混淆Android Studio开发工具自身集成了Java语言的ProGuard技术,对java代码有压缩、优化、混淆、预检的功能,AcFlash项目的Android端使用了ProGuard,以下是使用步骤:

a) modelbuild.gradle配置文件设置minifyEnabledtrue;

android防反编译技术初体验——混淆

b) 设置混淆默认数据,在proguard-rules.pro配置文件中配置:

#指定代码的压缩级别:0-7

-optimizationpasses 5

 

#混淆时不使用大小写混淆,混淆后的类名为小写

-dontusemixedcaseclassnames

 

#不去忽略非公共库的类

-dontskipnonpubliclibraryclasses

#不优化输入的类文件

-dontoptimize

 

#不做预校验,android不需要

-dontpreverify

 

#忽略警告

-ignorewarning

 

#混淆后产生映射文件:包含有类名->混淆后类名的映射关系

-verbose

#混淆时所采用的算法,谷歌推荐,一般不修改

-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

 

c) 设置项目中所有数据都混淆后,接下来该设置项目哪些内容不需要混淆;

i. 四大组件不被混淆

-keep public class * extends android.app.Activity
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider

 

ii. 被外部调用的类不被混淆

 -keep public class * extends android.app.Fragment
-keep public class * extends android.app.Application
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class * extends android.support.v7.app.Fragment
-keep class android.support.** { *; }
-keep public class * extends android.support.**
-keep public class * extends android.view.View

 

iii. 实体类不能混淆

-keep public class com.leadpcom.acflash.bean.** {
    public void set*(***);
    public *** get*();
    public *** is*();
}

 

iv. 自定义控件类不被混淆

-keepclasseswithmembers class * {
    public <init>(android.content.Context,android.util.AttributeSet);
}

-keep public class * extends android.view.View {
    public <init>(android.content.Context);
    public <init>(android.content.Context,android.util.AttributeSet);
    public <init>(android.content.Context, android.util.AttributeSet, int);
    public void set*(...);
}

 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgjwzf.html