商品详情

(1)作者经验丰富:从事安全工作多年,看雪论坛版主,在逆向工程和移动安全领域积累了丰富的经验。(2)原理讲解深入:通过深入解析unidbg主要功能和模块的源代码来讲解unidbg的工作原理和实现细节,授人予渔。(3)包含大量案例:通过大量案例讲解和演示了如何利用unidbg来解决各种逆向工程的难题,手把手教。(4)注重生产实践:无论是理论讲解,还是实战案例,都直接瞄准生产环境,带领读者解决工程环境中的真实问题。

陈佳林 (ID:r0ysue)资深安全技术专家,在逆向工程、移动安全领域积累了丰富的经验。曾为政府机关单位提供涉密项目研究开发,多次为银行和电信行业以及政府部门提供安全方面的培训服务。看雪论坛的版主和资深讲师,看雪“安卓高级研修班”负责人,在看雪安全开发者峰会、GeekPwn 发表主题演讲,在看雪论坛、安全客、Freebuf 等平台发表大量技术文章。著有《安卓 Frida 逆向与抓包实战》《安卓Frida 逆向与协议分析》《Frida 安卓 SO 逆向深入实践》等书籍。开源项目r0capture 在 Github 的 star 数量超过 5000 个。

内容介绍这是一本从原理和实践角度讲解unidbg的著作,不仅深入解析了unidbg的使用方法、工作原理、实现细节,而且详细讲解了如何用unidbg解决生产环境中的各种逆向工程难题。它是作者多年安全工作经验的总结,得到了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服务器上。这部分内容对批量生产与对抗、大数据风控非常有价值,对于打击黑灰产、遏制网络犯罪有着非常积极的意义。
目 录?Contents前 言第一部分 进入unidbg的世界第1章 unidbg环境准备与快速上手 21.1 r0env环境介绍与集成 21.1.1 r0env各组件介绍 21.1.2 r0env下载及安装 51.2 IDEA安装及配置 61.3 第一个unidbg项目 71.3.1 unidbg介绍 71.3.2 unidbg下载与运行示例 81.3.3 unidbg示例讲解 91.4 本章小结 13第2章 unidbg模拟执行初探 142.1 第一个NDK项目 142.1.1 使用Android Studio创建NDK项目 142.1.2 编写自己的so业务代码 162.2 unidbg的符号调用与地址调用 182.2.1 unidbg主动调用前置准备 182.2.2 unidbg主动调用so函数 192.2.3 unidbg部分API简单讲解 222.3 本章小结 24第3章 unidbg补环境、Hook与Patch 253.1 为so添加交互:使用JNI接口编写md5方法 253.2 使用unidbg修补执行环境并模拟执行 273.3 脱离编译器,使用命令行编译so 343.4 unidbg的Hook 363.5 unidbg的Patch 393.6 本章小结 42第二部分 unidbg原理第4章 ELF文件执行视图解析 444.1 ELF文件结构 444.1.1 ELF头部结构 454.1.2 程序头部表 474.1.3 动态节区_DYNAMIC段 514.2 深入jelf代码细节,探究ELF解析 544.2.1 分析原版jelf代码 544.2.2 分析unidbg版jelf代码 564.3 本章小结 60第5章 Unicorn的初级使用与初探Linker 615.1 Unicorn的初级使用:模拟执行与Hook 615.1.1 使用Unicorn进行模拟执行 615.1.2 Unicorn的Hook 645.1.3 Keystone与Capstone 705.2 初探Android系统源码 715.2.1 Java层代码追踪 735.2.2 Native层代码追踪 755.3 本章小结 78第6章 深入Linker:so的加载、链接、初始化 796.1 so的加载过程 796.2 so的链接过程 906.3 so的初始化操作 1006.4 本章小结 102第7章 使用Unicorn模拟Linker:so的加载过程 1037.1 模拟Linker?:环境准备 1037.2 模拟Linker?:so的加载 1097.3 动态调试Linker,探究so的内存布局图 1187.4 本章小结 122第8章 使用Unicorn模拟Linker:so的链接过程 1238.1 so的依赖库加载过程 1238.2 so的动态链接 1278.3 初尝试:使用unidbg模拟执行简单so文件 1318.4 探究unidbg的Linker代码细节 1338.4.1 unidbg加载so文件代码入口 1348.4.2 处理so信息并载入内存 1358.4.3 对so的依赖库进行处理 1378.4.4 重定位操作 1388.4.5 处理so的初始化信息与生成module对象 1408.4.6 执行初始化 1418.5 本章小结 142第9章 R0dbg实战与Unidbg_FindKey 1439.1 模拟Linker?:so的初始化过程 1439.2 指令追踪与排错 1479.2.1 TLS线程局部存储环境初始化 1489.2.2 R0dbg对系统调用进行处理 1509.3 使用R0dbg模拟执行so 1529.4 Unidbg_FindKey牛刀小试 1549.5 本章小结 157第10章 unidbg源码解析:AndroidEmulator 15810.1 创建AndroidEmulator 15810.2 创建FileSystem 16510.3 创建Backend 16810.4 创建SvcMemory 16910.5 本章小结 172第11章 unidbg源码解析:DalvikVM 17311.1 分析createDalvikVM() 17311.2 Dvm相关类介绍 17811.2.1 BaseVM解析 17911.2.2 DalvikVM解析 18411.2.3 DvmObject解析 18511.2.4 DvmClass解析 18711.3 本章小结 188第12章 unidbg源码解析:模拟执行流程追踪 18912.1 编写含JNI交互的MD5算法并模拟执行 18912.1.1 编写含JNI交互的so 18912.1.2 使用unidbg进行模拟执行 19012.2 模拟执行流程追踪:寻找函数 19212.3 模拟执行流程追踪:处理参数并模拟执行 19512.4 本章小结 202第13章 unidbg源码解析:JNI交互流程追踪 20313.1 JNI注册 20313.2 JNI指令执行 20813.3 本章小结 217第14章 unidbg源码解析:Memory 21814.1 Memory模块的创建 21814.2 AndroidElfLoader的方法实现 21914.2.1 内存相关方法实现 21914.2.2 栈空间相关方法实现 22614.2.3 用户常用方法解析 22714.2.4 虚拟模块 23014.3 加载so的loader功能 23114.4 本章小结 237第15章 unidbg源码解析:Hook 2381- 新华一城书集 (微信公众号认证)
- 上海新华书店官方微信书店
- 扫描二维码,访问我们的微信店铺
- 随时随地的购物、客服咨询、查询订单和物流...