目录 基础篇 第1章构建Android安全分析环境 1.1常用adb命令一览 1.2NDK命令行编译Android动态链接库 1.3NDK工具链常用工具 1.4解除手机BL锁 1.5给手机刷入工厂镜像 1.6Root Android系统 1.7本章小结 第2章破解第一个Android应用 2.1反编译Apk 2.2分析包内文件 2.3修改Smali代码文件 2.4重编译并签名 2.5本章小结 理论篇 第3章移动应用安全基线 3.1移动应用评估思路 3.1.1移动应用可能面临的威胁 3.1.2移动应用的评估方向 3.1.3移动应用自动化检测思路 3.2安全检测的要点 3.2.1Android常见漏洞分析 3.2.2Android权限安全 3.3OWASP移动平台十大安全问题 3.4本章小结 第4章MobSF移动安全框架 4.1安装部署MobSF 4.2功能及源代码讲解 4.2.1MobSF功能模块分析 4.2.2一般功能分析 4.2.3静态扫描功能分析 4.2.4动态扫描功能分析 4.3Apk静态分析流程 4.4Apk动态分析流程 4.5规则自定义开发 4.6本章小结 工具篇 第5章静态逆向工具 5.1Apktool工具 5.1.1Apktool基础与用法 5.1.2Apktool源码分析 5.2JEB工具 5.2.1JEB安装 5.2.2JEB静态分析 5.3Jadxgui工具 5.4010editor工具 5.4.1010editor解析so文件 5.4.2010editor解析Dex文件 5.5本章小结 第6章动态调试工具 6.1动态调试介绍 6.2IDA Pro工具 6.2.1IDA简介以及基本用法 6.2.2IDA动态调试Apk 6.2.3IDA Dump Android应用内存 6.3JDB调试器 6.4JEB调试工具 6.5本章小结 第7章Hook工具 7.1Frida 7.1.1Frida简介 7.1.2Frida安装运行 7.1.3Frida程序编写与运行 7.2Xposed框架 7.2.1Xposed简介 7.2.2Xposed框架的安装 7.2.3Xposed程序的编写与运行 7.3本章小结 第8章Unicorn框架 8.1Unicorn基础 8.1.1Unicorn简介 8.1.2Unicorn快速入门 8.2Unicorn HelloWorld 8.2.1编译与安装 8.2.2编写HelloWorld程序 8.2.3使用Unicorn Hook函数 8.2.4利用Unicorn优化程序运行 8.3Unicorn与Android 8.3.1Unicorn建立ARM寄存器表 8.3.2Unicorn加载调用so文件 8.3.3Unicorn调试so文件 8.4本章小结 实战篇 第9章脱壳实战 9.1Frida脱壳 9.1.1Frida脱壳原理 9.1.2编写脱壳脚本 9.1.3执行脱壳脚本 9.2FART脱壳 9.2.1ART的脱壳点 9.2.2FART脱壳原理 9.2.3脱壳实践 9.3OLLVM脱壳 9.3.1指令替换混淆还原 9.3.2控制流平展的还原 9.3.3伪造控制流的还原 9.4本章小结 第10章逆向实战 10.1逆向分析Smali 10.1.1逆向分析Apk 10.1.2修改smali代码 10.1.3重编译运行 10.2逆向分析so文件 10.2.1逆向分析Apk 10.2.2使用IDA Pro分析so文件 10.2.3插入调试语句运行 10.3本章小结 第11章Hook实战 11.1Xposed Hook 11.1.1JEB分析Apk 11.1.2编写Xposed模块 11.1.3获取Flag 11.2Frida Hook 11.2.1JEB解析Apk 11.2.2使用IDA Pro分析foo.so 11.2.3编写Frida脚本 11.2.4获取flag 11.3本章小结 第12章调试实战 12.1静态调试 12.1.1从Activity切入分析应用 12.1.2使用Jadxgui分析应用 12.2动态调试 12.2.1获取目标逻辑的函数调用 12.2.2使用Android Studio调试 12.3Native调试 12.3.1Unidbg工具的介绍 12.3.2Unidbg工具的安装测试 12.3.3利用Unidbg直接调用so文件方法 12.4本章小结 第13章IoT安全分析实战 13.1IoT移动应用威胁建模 13.2反编译Android应用包 13.3Android代码静态分析 13.4Android数据存储分析 13.5动态分析测试 13.6本章小结 参考文献