码迷,mamicode.com
首页 > 移动开发 > 详细

Android学习心得(13) --- Android代码混淆(1)

时间:2015-08-16 23:04:18      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:android   sdk   adt   混淆   proguard   

我在博客上发表一些我的Android学习心得,希望对大家能有帮助。
这一篇我们讲述一下最新的ADT环境下如何进行Android混淆


在新版本的ADT创建项目时,混码的文件不再是proguard.cfg, 
而是project.properties和proguard-project.txt。 
我们把之前配置都配置好了,proguard已经在包含在sdk中了。

环境配置参考 Android学习心得(1) --- MAC下Android环境的搭建

新建一个项目的时候,会自动生成project.properties和proguard-project.txt文件, 
无需自己新建,如果你的项目无法自动生成,那么你就要检查一下你的ADT版本了 

技术分享

如果需要对项目进行全局混码,只需要进行一步操作:
将project.properties的中“#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt”
把“#”去掉就可以了。

技术分享
技术分享

 由于apk文件的混淆往往是伴随着文件的压缩和代码的优化问题,混淆的apk文件解压转换为jar文件, 
 使用ju-gui打开以后有一个不太引人注意的细节问题---其中找不到资源文件类。
 利用这一特性,我们可以直接利用apktool解压apk文件,对其smali文件的文件名进行分析, 
 如果存在一个或以上的资源的smali文件,就可以证明该apk文件没有混淆,反之,则说明已经是混淆过了的文件。 
 我们将没有混淆和混淆过的apk分别使用Eclipse导出并签名

参考Android学习心得(12) --- APK签名keystore
技术分享

分别通过dex2jar和jd-gui查看源代码

技术分享
技术分享

明显的发现,第二个显示的源代码已经被混淆过了,产生了a,b,c三个类,R.class已经不见了。
另外一个明显的区别是,混淆过后的apk大小是未混淆的apk三分之一,代码往往经过压缩和优化。

技术分享

版权声明:本文为博主原创文章,未经博主允许不得转载。

Android学习心得(13) --- Android代码混淆(1)

标签:android   sdk   adt   混淆   proguard   

原文地址:http://blog.csdn.net/qiyu93422/article/details/47706647

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!