编辑推荐
深入解析unidbg使用方法、工作原理、实现细节。
内容简介
全书共31章,分为四个部分。
第一部分(第1~3章)unidbg基础主要介绍了unidbg的基本使用和操作,包括工作环境的准备、so文件加载、简单补环境、Hook和Patch的方法等。
第二部分(第4~15章)unidbg原理与实现通过源码分析的方式对unidbg的原理与实现进行了详细的剖析,首先分析了Unicorn模拟linker实现so的加载、链接、初始化的原理,然后深入分析了unidbg主要功能和模块的源码实现,包括AndroidEmulator、JNI交互流程追踪、DalvikVM、Memory、Hook等。
第三部分(第16~26章)补环境与模拟执行实战通过实战案例讲解了unidbg在生产环境中的使用,包括如I/O重定向、Debugger自吐,指针参数与Debugger、魔改Base64还原、使用unidbg动态分析内存中的数据、使用unidbg主动调用fork进程,并对补环境中的补环境入门、标识记录、设备风控、补环境加强等进行分析,指导读者编写实际的补环境代码,更好地将理论知识运用于实践中。
第四部分(第27~31章)反制与生产环境部署。介绍了环境变量检测、xHook框架检测、JNI层常见函数处理等,对常规检测进行了总结,并介绍了在检测之后如何把so部署到x86服务器上。这部分内容对批量生产与对抗、大数据风控非常有价值,对于打击黑灰产、遏制网络犯罪有着非常积极的意义。
作者简介
作者陈佳林,资深安全技术专家,在逆向工程、移动安全领域积累了丰富的经验。曾为政府机关单位提供涉密项目研究开发,多次为银行和电信行业以及政府部门提供安全方面的培训服务。
章节目录
版权信息
内容简介
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动态分析内存中的数据
20.1 环境搭建
20.2 APK基本分析
20.3 使用IDA静态分析so并使用unidbg动态验证
20.4 本章小结
Chapter 21 第21章 unidbg实战:使用unidbg主动调用fork进程
21.1 样本情景复现
21.2 样本反编译分析
21.3 so中代码的分析
21.4 使用unidbg对fork进程中的函数做处理
21.5 本章小结
Chapter 22 第22章 unidbg补环境实战:补环境入门
22.1 为什么要补环境
22.2 unidbg补环境的案例情景复现
22.3 模拟执行so
22.4 本章小结
Chapter 23 第23章 unidbg补环境实战:标识记录
23.1 样本一:如何补JNI_OnLoad环境
23.2 样本二:文件标识的补环境策略
23.3 样本总结
23.4 本章小结
Chapter 24 第24章 unidbg补环境实战:设备风控
24.1 Android系统API补全策略
24.2 目录获取
24.3 样本最后一个函数的调用
24.4 本章小结
Chapter 25 第25章 unidbg补环境实战:补环境加强
25.1 上文回顾
25.2 样本的框架搭建
25.3 补环境实操
25.4 本章小结
Chapter 26 第26章 unidbg补环境实战:总结
26.1 补环境初始化
26.2 补环境适用场景
26.3 补环境的规范
26.4 本章小结
第四部分 Part 4 反制与生产环境部署
Chapter 27 第27章 Anti-unidbg系列:环境变量检测
27.1 Linux中的环境变量
27.2 Android中的环境变量
27.3 环境变量源码解析
27.4 unidbg如何设置环境变量
27.5 本章小结
Chapter 28 第28章 Anti-unidbg系列:xHook检测
28.1 xHook的基本使用
28.2 xHook的原理阐述
28.3 xHook检测实现
28.4 unidbg xHook检测
28.5 补充Inline Hook检测
28.6 本章小结
Chapter 29 第29章 Anti-unidbg系列:JNI层常见函数处理
29.1 FindClass反制策略
29.2 methodID反制策略
29.3 本章小结
Chapter 30 第30章 Anti-unidbg系列:unidbg常规检测总结
30.1 检测说明
30.2 基地址检测
30.3 JNI环境之JNI调用
30.4 JNI环境之类检测
30.5 文件描述符
30.6 uname
30.7 运行时间检测
30.8 检测Unicorn
30.9 本章小结
Chapter 31 第31章 unidbg生产环境部署
31.1 Spring Boot框架的基本使用方法
31.2 Spring Boot和unidbg结合
31.3 unidbg-boot-schmerver简介
31.4 unidbg-boot-schmerver项目实例
31.5 本章小结
推荐阅读
作者简介
unidbg逆向工程:原理与实践是2023年由机械工业出版社出版,作者陈佳林。
得书感谢您对《unidbg逆向工程:原理与实践》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。