目录 基础篇 第1章Android虚拟机 1.1Dalvik虚拟机 1.1.1DVM的特点 1.1.2DVM虚拟机启动流程 1.1.3DVM虚拟机运行过程 1.2odex文件 1.3ART虚拟机 1.3.1ART虚拟机的创建 1.3.2ART虚拟机的启动 1.4dex2oat 1.4.1概述 1.4.2Oat文件格式介绍 1.4.3ART文件介绍 1.4.4Oat与ART文件关系 1.5ART虚拟机类的链接与初始化 1.6本章小结 第2章Native层 2.1Native开发 2.1.1JNI介绍 2.1.2JNI数据类型转换 2.1.3Native调用Java代码 2.2ARM汇编 2.2.1ARM汇编介绍 2.2.2ARM汇编数据类型 2.2.3ARM寄存器 2.2.4ARM模式与Thumb模式 2.2.5ARM指令 2.3Native Hook 2.3.1Got/Plt Hook 2.3.2inline Hook 2.4本章小结 第3章iOS基础知识 3.1iOS包结构分析 3.1.1_CodeSignature文件夹 3.1.2lproj文件夹 3.1.3xcent文件 3.1.4mobileprovision文件 3.1.5info.plist文件 3.2iOS应用启动过程分析 3.3本章小结 理论篇 第4章ATT&CK框架 4.1ATT&CK框架背景介绍 4.2ATT&CK框架的使用 4.3本章小结 第5章ATT&CK for mobile框架 5.1初始访问技术 5.2执行战术 5.3持久化战术 5.4权限提升战术 5.5防御规避 5.6凭证访问战术 5.7发现战术 5.8横向移动战术 5.9收集战术 5.10命令控制战术 5.11渗滤技术 5.12冲击战术 5.13本章小结 第6章LLVM编译框架 6.1LLVM概论 6.1.1LLVM介绍 6.1.2LLVM功能 6.1.3LLVM的主要子项目 6.1.4LLVM周边项目 6.1.5LLVM目录结构 6.2LLVM安装与编译 6.2.1LLVM的下载与安装 6.2.2LLVM的编译 6.2.3LLVM的使用 6.2.4编写LLVM Pass 6.3IR入门 6.4本章小结 实战篇 第7章整体加固实战 7.1第一代加固技术简介 7.1.1早期静态壳 7.1.2后期动态加载壳 7.2APK包的结构 7.2.1APK打包过程 7.2.2软件安装过程 7.2.3软件启动流程 7.2.4AndroidManifest.xml 7.2.5resource.arsc 7.3原理介绍 7.4加固流程 7.5代码实现 7.6本章小结 第8章指令抽取加固实战 8.1第二代加固技术简介 8.2Dex文件结构 8.3指令抽取恢复介绍 8.4加固流程 8.5代码实现 8.6本章小结 第9章so文件加固 9.1第三代加固技术 9.1.1Dex2C 9.1.2VMP 9.2upx 9.3so文件格式 9.3.132位Elf文件解析 9.3.264位Elf文件解析 9.4upx的编译 9.5本章小结 第10章基于OLLVM的加固壳开发 10.1OLLVM基础 10.2OLLVM编译与使用 10.3OLLVM壳原理 10.3.1指令替换混淆源码分析 10.3.2控制流平展混淆源码分析 10.3.3伪造控制流混淆源码分析 10.4本章小结 第11章VMP加固技术 11.1VMP加固原理 11.2Dex VMP 11.2.1Dex VMP介绍 11.2.2Dvm虚拟机的解释流程 11.2.3Advmp功能与源码解析 11.3ARM VMP 11.3.1ARM VMP介绍 11.3.2编写ARM VMP解释器 11.3.3ARM VMP的加固流程 11.4本章小结 第12章iOS逆向工具的使用 12.1砸壳工具 12.1.1Clutch 12.1.2CrackerXI 12.2Classdump工具 12.3Tweaks工具 12.3.1Theos的前置环境 12.3.2安装Theos 12.3.3编写Tweaks程序 12.3.4Tweaks程序的编译与安装 12.4Cycript工具 12.4.1Cycript的安装使用 12.4.2使用Cycript分析应用 12.4.3Cycript脚本 12.5本章小结 第13章进阶逆向技巧 13.1使用Frida绕过SSLPinning 13.1.1HTTPS协议简介 13.1.2SSLPinning技术 13.1.3绕过证书绑定 13.1.4使用SSLContext导入自定义证书 13.2终极抓包脚本 13.2.1抓包的攻防 13.2.2r0capture抓包原理 13.2.3r0capture抓包实践 13.3Frida追踪函数调用 13.3.1Frida Trace脚本解析 13.3.2Frida Trace脚本使用 13.4本章小结 案例篇 第14章Android恶意软件分析 14.1远程操控手机App分析 14.1.1配置MSF框架 14.1.2生成Android payload 14.1.3逆向分析木马 14.2分析锁机勒索软件样本 14.2.1勒索软件的初步分析 14.2.2分析危险行为 14.2.3分析软件释放出来的应用 14.2.4锁机软件的解除 14.3可自我扩散的手机短信蠕虫分析 14.3.1蠕虫病毒分析 14.3.2分析木马的本体 14.3.3分析结果 14.4本章小结 第15章APT攻击案例分析 15.1APT简介 15.2KONNI远控木马病毒 15.2.1KONNI恶意行为分析 15.2.2KONNI源码逆向分析 15.2.3远程控制机制解析 15.3GravityRAT间谍软件 15.3.1GravityRAT恶意行为分析 15.3.2GravityRAT源码逆向分析 15.4Anubis木马 15.4.1Anubis木马的功能与发展 15.4.2Anubis样本行为逆向分析 15.5本章小结 参考文献