美文网首页
apk混淆经验

apk混淆经验

作者: charjack | 来源:发表于2018-08-16 16:03 被阅读0次

一般正常发不出去的apk都是需要进行混淆打包的,否则太容易被破解了。比如用Android逆向助手这个工作,把apk转化为dex,然后dex再转化为jar,就可以通过工具查看java文件了。亲测,的确恐怖!然后再用这个工具反编译一下apk,拿到资源文件,这样一个apk就轻松的被破解了。此外除了java文件的混淆外,还有就是微信团队开源了一个混淆资源文件的方法,https://github.com/shwenzhang/AndResGuard,可以增加对代码可读性进行一定的包装。

下面是一点进行apk混淆的常用的方法。

-optimizationpasses 5 ->设置混淆的压缩比率 0 ~ 7 -dontusemixedcaseclassnames -> Aa aA -dontskipnonpubliclibraryclasses ->如果应用程序引入的有jar包,并且想混淆jar包里面的class -dontpreverify -verbose ->混淆后生产映射文件 map 类名->转化后类名的映射-optimizations !code/simplification/arithmetic,!field/*,!class/merging/* ->混淆采用的算法.

-keep public class * extends android.app.Activity                        ->所有activity的子类不要去混淆

-keep public class * extends android.app.Application

-keep public class * extends android.app.Service

-keep public class * extends android.content.BroadcastReceiver

-keep public class * extends android.content.ContentProvider

-keep public class * extends android.app.backup.BackupAgentHelper

-keep public class * extends android.preference.Preference

-keep public class com.android.vending.licensing.ILicensingService

-dontwarn android.support.v4.**

-dontwarn android.annotation

-libraryjars libs/android-support-v4.jar

-keepclasseswithmembernames class * {            -> 所有native的方法不能去混淆.

    native ;

}

-keepclasseswithmembers class * {

    public (android.content.Context, android.util.AttributeSet);            -->某些构造方法不能去混淆

}

-keepclasseswithmembers class * {

    public (android.content.Context, android.util.AttributeSet, int);

}

-keepclassmembers class * extends android.app.Activity {

  public void *(android.view.View);

}

-keepclassmembers enum * {                                -> 枚举类不能去混淆

    public static **[] values();

    public static ** valueOf(java.lang.String);

}

-keep class * implements android.os.Parcelable {              -> aidl文件不能去混淆.

  public static final android.os.Parcelable$Creator *;

}

-keepclassmembers class * {

  public (org.json.JSONObject);

}

-keep class android.support.v4.**{*;}

-keepattributes *Annotation*

============================================

对于引用第三方包的情况,可以采用下面方式避免打包出错:

-libraryjars libs/aaa.jar

-dontwarn com.xx.yy.**

-keep class com.xx.yy.** { *;}

相关文章

  • apk混淆经验

    一般正常发不出去的apk都是需要进行混淆打包的,否则太容易被破解了。比如用Android逆向助手这个工作,把apk...

  • APK体积极限压缩优化瘦身

    查看APK结构Build->Analyse Apk 开启代码混淆 混淆模板 minifyEnabled 这个是用来...

  • Android Studio混淆打包

    前两周应业务需要研究了一下混淆打包和sdk混淆技术。在此记录下心得。 1.apk混淆打包 如果要对apk进行混淆,...

  • apk混淆以及混淆模板

    先来一个混淆规则基本模板,可以直接复制粘贴的那种~~ 需要我们不混淆的代码 以下4项中如果有则必须添加否则可能不能...

  • android代码混淆详解

    1、前言 在对apk进行打包时,如果不对apk进行混淆和加固,生成的apk可以轻松的进行反编译,所以对apk代码进...

  • android 混淆规则说明

    1、子Module不能配置混淆,仅仅只能在主Module中配置混淆。2、主Module配置了混淆,打包成apk后,...

  • 如何破解添加代码混淆的GooglePlay游戏正版验证

    在上一篇文章“手游apk破解及GooglePlay正版去验证经验分享 ”中,遗留了一个问题:添加了代码混淆的游戏如...

  • apk之反编译

    Apk反编译 申明:apk反编译使用有诸多限制,主要用于自助学习研究,适用于没有经过混淆的apk,不建议用于商用 ...

  • Android 代码混淆笔记

    一、为何要混淆? 混淆无非是为了安全,防止Apk被恶意的破解。在使用混淆之后,代码会被无意义名称所代替,例如a、d...

  • Android Studio开启混淆

    使用Android Stduio开启混淆本篇主要介绍在Studio中lib库中jar包的混淆和phone中对apk...

网友评论

      本文标题:apk混淆经验

      本文链接:https://www.haomeiwen.com/subject/cprobftx.html