首页 > 编程知识 正文

android依赖库混淆,android混淆技巧与反混淆

时间:2023-05-04 00:44:54 阅读:111664 作者:1234

安卓包4.0 (好像是4.0 )以后容易混淆,所以更简单

1、在project.properties.txt中删除以下评论

proguard.config=$ { SDK.dir }/tools/proguard/proguard-Android.txt : proguard-project.txt

2、在项目中加入消除混乱的声明:

#需要混淆的jar包所依赖的jar包

- library jars ' f :eclipseADT-bundle-windows-x86-2013 09 17SDKplatformsAndroid-19 Android .

-优化过程5

#即使混淆,也不会生成各种类名

-dontusemixedcaseclassnames

#指定不忽略非公共库类

- dontskipnonpubliclibraryclasses

#不预先检查

-dontpreverify

-verbose

#优化

-优化! code/simplification/arithmetic! field/*, class/merging/*

从Activity、Application、Service、BroadcastReceiver、ContentProvider、BackupAgentHelper、Preference、ILicensingService继承

- keep public class * extends Android.app.activity

- keep public class * extends Android.app.application

- keep public class * extends Android.app.service

- keep public class * extends Android.content.broadcast receiver

- keep public class * extends Android.content.content provider

- keep public class * extends Android.app.backup.backupagenthelper

- keep public class * extends Android.preference.preference

- keeppublicclasscom.Android.vending.licensing.ilicensingservice

- keep public class * extends Android.support.v4.app.fragment activity

- keep public class * extends Android.support.v4.app.frag men

保留包含native方法的类

- keepclasseswithmembernamesclass * {

空;

}

#actionbarSherlock这里请注意

- keepclassandroid.support.v4.app.* * { *; }

- keepinterfaceandroid.support.v4.app.* * { *; }

- keepclasscom.actionbarsherlock.* * { *; }

- keepinterfacecom.actionbarsherlock.* * { *; }

-keepattributes*Annotation*

#构造函数保存从xml构建的类。 一般是View的子类)

- keepclasseswithmembernamesclass * {

公共(Android.content.context,android.util.AttributeSet );

}

#构造函数保存从xml构建的类。 一般是View的子类)

- keepclasseswithmembernamesclass * {

Public(Android.content.context,android.util.AttributeSet,int );

}

#保护指定类的成员。 如果这样的类受到保护,他们会得到更好的保护

- keepclassmembersclass * extends Android.app.activity {

Ublicvoid*(Android.view.view );

}

#保留枚举类型的values和valueOf的静态方法

-keepclassmembersenum*{

publicstatic**[]values (;

public static * * value of (Java.lang.string );

}

保存继承Parcelable的交叉进程数据类

- keep class * implements Android.OS.parcelable {

publicstaticfinalandroid.OS.parcelable $ creator *;

}

#保留用于反射的类别和方法,届时根据情况进行变更

#逆编译测试时有效,运行时也与没有混淆的情况相同

-keepclassmembersclass包名称. **{

公共*;

受保护*;

私有*;

}

3、施工中混淆处理第三方jar包或. so文件。

- libraryjarslibs/apns _1.0.6. jar

- libraryjarslibs/arme ABI/libbaidumapsdk _ v2 _3_1. so

- libraryjarslibs/arme ABI/liblocsdk4. so

- libraryjarslibs/baidumapapi _ v2 _3_1. jar

-libraryjarslibs/core.jar

- libraryjarslibs/gesture-imageview.jar

-libraryjarslibs/gson-2.0.jar

4、在其他反射中调用的java类和方法

使用反射时,请注意,您可能会确定没有调用proguard,并在代码优化过程中将其重命名或删除。 使用反射的位置必须由proguard-project.txt组成,并且不要优化调用反射的类和方法

开始打包。 (请不要打包。 就算设置了其实也没有混淆。 如果你不相信,试着消除混淆。 成功消除了混淆。 )

二、请在jdk的悟空目录下生成. keystore证书,输入相关资料,记住密码。

二.右键—安卓工具—exportsignedapplicationpackage

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。