安卓逆向之路 基础扫盲

Android历史版本

API1: Android 1.0

API2: Android 1.1               Petit Four

API3: Android 1.5               Cupcake

API4: Android 1.6               Donut

API5: Android 2.0               éclair

API6: Android 2.0.1            éclair

API7: Android 2.1               éclair

API8: Android 2.2 - 2.2.3    Froyo

API9: Android 2.3 - 2.3.2    Gingerbread

API10:Android 2.3.3-2.3.7 Gingerbread

API11:Android 3.0               Honeycomb

API12:Android 3.1               Honeycomb

API13:Android 3.2               Honeycomb

API14:Android 4.0 - 4.0.2   Ice Cream Sandwich

API15:Android 4.0.3 - 4.0.4 Ice Cream Sandwich

API16:Android 4.1               Jelly Bean

API17:Android 4.2                Jelly Bean

API18:Android 4.3                Jelly Bean

API19:Android 4.4               KitKat

API20:Android 4.4W

API21:Android 5.0               Lollipop

API22:Android 5.1               Lollipop

API23:Android 6.0               Marshmallow

API24:Android 7.0               Nougat

API25:Android 7.1               Nougat

API26:Android 8.0               Oreo

 

从Android 5.0(Android L)开始,Android系统开始改用ART虚拟机,Android系统也开始分32位版本和64位版本

Android体系结构

APK基本结构

assets                      资源文件(图片、音频、数据库、网页、配置文件等)

res                            资源文件,需要编译(布局)

lib                             各种平台下使用的对应的so文件

libs                          

META-INF              签名文件

resources.arsc  资源加密(语言包)

AndroidManifest.xml 清单文件(图标、界面、权限、入口)

classes.dex            源代码

JVM、DVM与ART

JVM

Java虚拟机,运行的是.java文件编译后的.class文件

 

Dalvik 
Android4.4及以前使用的都是Dalvik虚拟机,我们知道Apk在打包的过程中会先将java等源码通过javac编译成.class文件,但是我们的Dalvik虚拟机只会执行.dex文件,这个时候dx会将.class文件转换成Dalvik虚拟机执行的.dex文件。Dalvik虚拟机在启动的时候会先将.dex文件转换成快速运行的机器码,又因为65535这个问题,导致我们在应用冷启动的时候有一个合包的过程,最后导致的一个结果就是我们的app启动慢,这就是Dalvik虚拟机的JIT特性。

ART 
ART虚拟机是在Android5.0才开始使用的Android虚拟机,ART虚拟机必须要兼容Dalvik虚拟机的特性,但是ART有一个很好的特性AOT(ahead of time),这个特性就是我们在安装APK的时候就将dex直接处理成可直接供ART虚拟机使用的机器码,ART虚拟机将.dex文件转换成可直接运行的.oat文件,ART虚拟机天生支持多dex,所以也不会有一个合包的过程,所以ART虚拟机会很大的提升APP冷启动速度。

 

Xposed hook的是Java代码,所以Xposed不支持5.0以及以上系统。

APK文件结构

 

 

APK打包流程

APK安装流程

虚拟机

 

Android Killer配置

 

 

 

 

 

 

 

 

 

posted @ 2020-03-17 14:15  沐风先生  阅读(164)  评论(0)    收藏  举报