Android Studio逆向分析APK(Analyse APK)

前言

Android Studio升到2.0版本以后,有个很好的功能,就是可以直接逆向分析apk,查看到里面的内容。

条件

Android Studio 版本为2.0以上

Analyze APK

  1. Build->Analyze APK
    2.择一个apk

内容说明

Android Studio生成的apk总是把上一版的apk删除掉 android studio生成apk报错_apk

apk大小和下载大小

Android Studio生成的apk总是把上一版的apk删除掉 android studio生成apk报错_资源文件_02

raw size是apk包的大小,download size是apk在Google Play上下载的apk包的大小(一个高度压缩的版本的文件),对于应用程序的更新,谷歌播放服务的补丁,通常要小得多,安装尺寸可能会高于原始大小取决于各种其他因素。

Android Studio生成的apk总是把上一版的apk删除掉 android studio生成apk报错_android studio_03

classes.dex

Android Studio生成的apk总是把上一版的apk删除掉 android studio生成apk报错_apk_04

dex是Java源码编译生成的字节码文件,可以查看项目里面包含的所有类,可以查看每个类里面包含的方法,当然,混淆过的就查看不了了,只会显示abcd等的方法名。

Android Studio生成的apk总是把上一版的apk删除掉 android studio生成apk报错_android_05

这句话的意思时这个dex文件定义了4129类23370种方法,并引用29656种方法,可以显示项目里面说定义的类的数量,方法的数量,引用的方法的数量。

resources.arsc

Android Studio生成的apk总是把上一版的apk删除掉 android studio生成apk报错_apk_06

es里面的文件的id值都是数值,不能确定是什么,所有就用到它,描述那些具有id值的资源的配置信息,它的内容就相当于是一个资源索引表。

res目录

Android Studio生成的apk总是把上一版的apk删除掉 android studio生成apk报错_android_07

直接查看res里面的资源文件

Android Studio生成的apk总是把上一版的apk删除掉 android studio生成apk报错_Android_08

直接查看图片

assest

Android Studio生成的apk总是把上一版的apk删除掉 android studio生成apk报错_Android_09

assest里面存放的都是一些打包的时候不会编译的一些资源文件。

META-INF

Android Studio生成的apk总是把上一版的apk删除掉 android studio生成apk报错_apk_10

存放的是apk的签名信息,MANIFEST.MF文件里面的内容是版本号以及对每一个文件的哈希值;CERT.SF文件里面的内容与MANIFEST.MF文件类似;CERT.RSA文件里面是apk包的签名,同时还有证书的公钥。

libs

Android Studio生成的apk总是把上一版的apk删除掉 android studio生成apk报错_android studio_11

可以查看项目里面用到的so文件

比较两个apk

Android Studio生成的apk总是把上一版的apk删除掉 android studio生成apk报错_android studio_12

通过点击右上角的Compare with…可以选择多一个apk来比较,可以用来比较apk升级后的大小差别。

后话

这里的的所应用到的不能说是反编译apk,毕竟不能直接从里面查看详细的内容和提取各种资源文件,若要反编译,还是要靠其他方法才行。