更新时间:2024-09-24 17:43:54
封面
版权页
·内容简介·
Preface 前言
第一部分 Part 1 进入unidbg的世界
Chapter 1 第1章 unidbg环境准备与快速上手
1.1 r0env环境介绍与集成
1.2 IDEA安装及配置
1.3 第一个unidbg项目
1.4 本章小结
Chapter 2 第2章 unidbg模拟执行初探
2.1 第一个NDK项目
2.2 unidbg的符号调用与地址调用
2.3 本章小结
Chapter 3 第3章 unidbg补环境、Hook与Patch
3.1 为so添加交互:使用JNI接口编写md5方法
3.2 使用unidbg修补执行环境并模拟执行
3.3 脱离编译器,使用命令行编译so
3.4 unidbg的Hook
3.5 unidbg的Patch
3.6 本章小结
第二部分 Part 2 unidbg原理
Chapter 4 第4章 ELF文件执行视图解析
4.1 ELF文件结构
4.2 深入jelf代码细节,探究ELF解析
4.3 本章小结
Chapter 5 第5章 Unicorn的初级使用与初探Linker
5.1 Unicorn的初级使用:模拟执行与Hook
5.2 初探Android系统源码
5.3 本章小结
Chapter 6 第6章 深入Linker:so的加载、链接、初始化
6.1 so的加载过程
6.2 so的链接过程
6.3 so的初始化操作
6.4 本章小结
Chapter 7 第7章 使用Unicorn模拟Linker:so的加载过程
7.1 模拟Linker:环境准备
7.2 模拟Linker:so的加载
7.3 动态调试Linker,探究so的内存布局图
7.4 本章小结
Chapter 8 第8章 使用Unicorn模拟Linker:so的链接过程
8.1 so的依赖库加载过程
8.2 so的动态链接
8.3 初尝试:使用unidbg模拟执行简单so文件
8.4 探究unidbg的Linker代码细节
8.5 本章小结
Chapter 9 第9章 R0dbg实战与Unidbg_FindKey
9.1 模拟Linker:so的初始化过程
9.2 指令追踪与排错
9.3 使用R0dbg模拟执行so
9.4 Unidbg_FindKey牛刀小试
9.5 本章小结
Chapter 10 第10章 unidbg源码解析:AndroidEmulator
10.1 创建AndroidEmulator
10.2 创建FileSystem
10.3 创建Backend
10.4 创建SvcMemory
10.5 本章小结
Chapter 11 第11章 unidbg源码解析:DalvikVM
11.1 分析createDalvikVM()
11.2 Dvm相关类介绍
11.3 本章小结
Chapter 12 第12章 unidbg源码解析:模拟执行流程追踪
12.1 编写含JNI交互的MD5算法并模拟执行
12.2 模拟执行流程追踪:寻找函数
12.3 模拟执行流程追踪:处理参数并模拟执行
12.4 本章小结
Chapter 13 第13章 unidbg源码解析:JNI交互流程追踪
13.1 JNI注册
13.2 JNI指令执行
13.3 本章小结
Chapter 14 第14章 unidbg源码解析:Memory
14.1 Memory模块的创建
14.2 AndroidElfLoader的方法实现
14.3 加载so的loader功能
14.4 本章小结
Chapter 15 第15章 unidbg源码解析:Hook
15.1 unidbg的Hook框架
15.2 Debugger模块解析
15.3 本章小结
第三部分 Part 3 模拟执行与补环境实战
Chapter 16 第16章 unidbg实战:I/O重定向
16.1 分析App的内部逻辑
16.2 unidbg模拟执行分析
16.3 本章小结
Chapter 17 第17章 unidbg实战:Debugger自吐
17.1 分析App的内部逻辑
17.2 使用unidbg工具进行分析
17.3 本章小结
Chapter 18 第18章 unidbg实战:指针参数与Debugger
18.1 指针参数的使用
18.2 快速识别AES算法
18.3 本章小结
Chapter 19 第19章 unidbg实战:魔改Base64还原
19.1 逆向环境搭建
19.2 APK分析
19.3 so文件详细分析
19.4 使用unidbg辅助分析so
19.5 本章小结
Chapter 20 第20章 unidbg实战:使用unidbg动态分析内存中的数据