android apk 代码混淆
来源:互联网 发布:java线程是什么意思 编辑:程序博客网 时间:2024/05/24 04:19
一、混淆的原因
原因很简单,无非就是不想让别人很轻易的反编译你的源码
二、混淆方法
apk的混淆主要是在两个文件中改动 project.poperties 和proguard-project.txt
先说 project.poperties 只需加入一行代码足以:proguard.config=proguard-project.txt,这样就打开了代码混淆的开关
proguard-project.txt 这个文件主要是写混淆的规则,规则的编写会稍微麻烦些,其实主要体现在以下几个方面
1、有些类不能被混淆
继承于Activity、Application、Service、BroadcastReceiver、ContentProvider、Preference等的类不参与混淆,写法:
-keep class org.apache.commons.net.** { *; }
-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.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
2、引入第三方jar类库
第三方类库一般都是从网上下载的,所以没必要参与混淆比如jackson.jar这个库,可以这样写
-keep class org.codehaus.jackson.** { *;}
引入第三方库有时候会提示一大堆警告导致编译不过,需要去除这些警告,写法:
-dontwarn android.support.v4.**
3、一些成员变量不参与混淆
比如:native方法、enum变量、自定义View等,写法
-keepclasseswithmembernames class * {
native <methods>;
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
4、Gson,即:sdk自带的json数据,不参与混淆,不然会有问题,写法:
-keep class com.google.gson.examples.android.model.** { *; }
-keepclasseswithmembernames class com.kogame.god.thing.creature.**
{
*;
}
5、使用过反射的类不能参与混淆
6、接口和抽象类不能参与混淆
三、导出apk
debug版本编译出的apk是不具备混淆的,必须要经过导出并使用签名
方法:http://blog.csdn.net/m370809968/article/details/37698889
四、反编译apk
使用反编译工具dex2jar反编译,使用jd-gui查看反编译后的代码,如果你的代码中出现很多a、b、c、d等令人难懂的类及变量,说明代码混淆成功,还要在真机上多多测试,确保没问题
最后:奉上经过两天研究编写的proguard-project.txt下载地址:http://download.csdn.net/detail/m370809968/7638433,该文件经测试真实有效
- android apk 代码混淆
- android .apk 混淆代码
- android apk 代码混淆
- Android代码混淆------apk文件代码混淆
- Android APK之代码混淆与反编译
- Android应用(apk)代码混淆笔记
- Android APK之代码混淆与反编译
- Android 代码混淆和破解apk
- Android APK反编译和代码混淆
- Android studio 代码混淆和破解apk
- Android Studio代码混淆和破解apk
- Android studio 代码混淆和破解apk
- Android studio 代码混淆及打包apk
- Android APK反编译以及代码混淆
- Android studio 代码混淆及打包apk
- Android Apk 代码混淆与资源文件混淆实战
- Android APK代码混淆和资源文件混淆
- APK的代码混淆
- Surciata源码分析之IpsNFQ模式(2)
- 阶乘之和
- cocos2d-x 3.1.1 学习笔记[11] http请求 + json解析
- linux下搭建SVN服务器完全手册
- 有关于dmx控制器的相关使用问题以及当中的特点
- android apk 代码混淆
- eclipse 建立的dynamic web project中无法高亮显示jsp中相同变量,不是很方便啊!
- ViewPager和Fragment
- Windows下的Memcache安装:
- Unicode编码
- 64位win8.1 IIS配置以及问题解决方法
- poj 3687 Labeling Balls(拓扑算法)
- springMVC配置文件的编写
- 三表查询 MYSQL句子