您的位置:首页 > 移动开发 > Android开发

Android studio 使用心得(五)—代码混淆和破解apk

2015-07-31 16:52 579 查看


这篇文章等是跟大家分享一在Android studio 进行代码混淆配置。之前大家在eclipse上也弄过代码混淆配置,其实一样,大家可以把之前在eclipse上的配置文件直接拿过来用。不管是.cfg文件还是.txt文件都一样。

先给大家贴一个混淆模板吧。注释很清楚。是我目前一个项目用的proguard.cfg配置文件

?
大家可以先看看这篇文章

Android studio 使用心得(四)—android studio 多渠道打包(二)

了解一下打包过程。

然后大家看看打包的配置文件build.gradle里面的一段配置代码





//混淆,新版本是ninifyEnabled不再是runproguard
minifyEnabled true

//加载默认混淆配置文件及自定义混淆 配置
proguardFiles getDefaultProguardFile(‘proguard-android.txt’),’proguard.cfg’

我们设置minifyEnabled true,就会在打包的时候进行代码混淆处理. 其中proguard-android.txt不用管,在sdk目录里面,我们主要是配置了proguard.cfg文件。可能大家直接在android studio创建项目不会有这个文件,而是 proguard-rules.pro文件,其实一样的,我这里是因为项目是从eclipse迁移过来的,之前在eclipse上混淆是 proguard.cfg文件.

一切就绪后,就是打包了。这里我就不再多说了,大家可以去看

Android studio 使用心得(四)—android studio 多渠道打包

Android studio 使用心得(四)—android studio 多渠道打包(二)

我这里用第二种,gradle 命令打包.我建议大家在gradle clean后,不要直接gradle build,而是用gradle assembleRelease .用gradle build第一是因为慢,第二,我自己项目打包时这样遇到一个错误,现在也没解决

Lint found errors in the project; aborting build.

Fix the issues identified by lint, or add the following to your build script to proceed with errors:

android {
lintOptions {
abortOnError false
}
}


可以我明明已经设置

//执行lint检查,有任何的错误或者警告提示,都会终止构建,我们可以将其关掉。
lintOptions {
abortOnError false
}
搞不清楚。希望大家谁知道的也告诉下我。

当我们执行命令 gradle build或者gradle assembleRelease后,会自动进行混淆操作。。。直到成功。

各位 注意下,如果你的混淆配置有问题,可能会报错。Execution failed for task ‘:proguardUmengRelease’.大家可以根据报错去排除问题,

比如说我遇到的一个问题,





出现这个问题是因为配置文件里面我有一行 keepattributes Signature #避免混淆泛型 , 如果混淆报错建议关掉,因为下面这个就会避免混淆泛型
-keepclassmembers class * implements java.io.Serializable {
static final long serialVersionUID;
private static final java.io.ObjectStreamField[] serialPersistentFields;
!static !transient <fields>;
!private <fields>;
!private <methods>;
private void writeObject(java.io.ObjectOutputStream);
private void readObject(java.io.ObjectInputStream);
java.lang.Object writeReplace();
java.lang.Object readResolve();
}

大家可以看到这个错误提示,有一个line 168 ,这个是行号,但是各位注意了这个行号定位不是特别精准,只能一个大概的定位。

混淆真正的成功与否,需要我们自己来亲自验证,那就是我们来破解自己的apk.我上传了 一个我使用的破解工具
链接: http://pan.baidu.com/s/1o60tLj0 密码: 3bqp

1,解压apk.用好压就能直接解压,获取到classes.dex文件



2.用dex2jar这个工具来生成classes_dex2jar文件.
a,把刚刚解压出来的classes.dex文件放到dex2jar根目录,然后用dos命令定位到该目录,执行命令dex2jar.bat classes.dex直到done.




2.细心的朋友就会发现多了一个jar文件。
.


c.然后用jd-gui打开这个jar文件,就能看到项目的结构了。。





如果有a.b.c这些,就说明混淆成功啦




0

您可能也喜欢:

Android studio 使用心得(六)---android studio 如何加载.so文件

Android studio 使用心得(四)---android studio 多渠道打包

Android studio 使用心得(一)---android studio快速掌握快捷键

Android studio 使用心得(三)---从Eclipse迁移到Android studio

Android studio 使用心得(四)---android studio 多渠道打包(二)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: