0x1 安卓系统的架构
1.安卓系统分成四层架构
应用层 |
APP应用 |
应用框架 |
app基于这层框架开发,开发组件 |
类库/Android Runtime |
Dalvik虚拟机执行(.dex)的Dalvik可执行文件 |
系统内核 |
Android平台的基础是Linux内核,调用底层Linux内核来执行功能。 |
0x2 APK打包流程
1.APK打包流程

2.编写java文件,通过javac编译成.class文件,再通过dx工具,转化成.dex文件(Dalvik虚拟机可执行),再通过apkbuilder将.dex文件和应用程序的一些其他资源打包,最终变成apk文件。
0x3 安卓逆向流程(静态)
1.安卓逆向流程(静态)

2.通过apktool反编译apk文件得到smali文件(Dalvik虚拟机的汇编语言),我们通过修改smali文件,在使用apktool重新编译成apk文件。
0x4 安卓逆向流程(动态)
1.安卓逆向流程(动态)

2.有三个HOOK框架,Frida,Objection,Xposed。主要原理是通过动态注入到app程序里。
3.动态分析调用了哪些库函数,使用了库文件,找到关键点,编写我们的HOOK代码,完成自动化HOOK。
|