《Advanced Apple Debugging & Reverse Engineering》是由Walter Tyree撰写的一本专注于苹果平台调试与逆向工程的高级技术书籍,由Kodeco Inc.于2023年出版。本书面向中级到高级的开发者,旨在帮助读者深入掌握使用LLDB进行调试和逆向工程的高级技能。
内容层次
第一部分:LLDB基础命令
- 第1章:入门:介绍了如何绕过系统完整性保护(SIP)并使用LLDB附加到进程。
- 第2章:概述与获取帮助:讲解了如何使用LLDB的帮助命令和apropos命令来查找相关命令。
- 第3章:附加到进程:详细介绍了LLDB附加到现有进程、未来进程以及启动进程的不同方式。
- 第4章:代码中断:探讨了如何设置断点,包括符号断点、正则表达式断点等。
- 第5章:表达式:介绍了如何使用LLDB的表达式命令来检查和修改变量。
- 第6章:线程、栈帧与步进:讲解了如何在LLDB中操作线程、查看栈帧以及进行代码步进。
- 第7章:镜像:介绍了如何使用LLDB的image命令来查询模块信息。
第二部分:理解汇编
- 第11章:汇编寄存器调用约定:讲解了arm64架构下的寄存器调用约定。
- 第12章:汇编与内存:深入探讨了程序在内存中的执行过程,包括程序计数器(PC)寄存器的作用。
- 第13章:汇编与栈:详细介绍了栈的工作原理,包括栈指针(SP)、帧指针(FP)和链接寄存器(LR)的作用。
第三部分:低级调试
- 第14章:系统调用与ptrace:介绍了系统调用的基础知识,以及如何使用ptrace进行调试。
- 第15章:共享库:讲解了动态库和静态库的使用,以及如何通过dlopen和dlsym进行代码注入。
- 第16章:Hello, Mach-O:介绍了Mach-O文件格式的基础知识。
- 第17章:Mach-O的乐趣:深入探讨了Mach-O文件格式的高级特性。
- 第18章:代码签名:讲解了苹果平台的代码签名机制。
第四部分:自定义LLDB命令
- 第20章:Hello, Script Bridging:介绍了如何使用Python脚本扩展LLDB的功能。
- 第21章:调试脚本桥接:讲解了如何调试LLDB的Python脚本。
- 第22章:脚本桥接类与层次结构:深入探讨了LLDB的Python脚本桥接API。
- 第23章:带有选项和参数的脚本桥接:介绍了如何为LLDB脚本添加选项和参数。
- 第24章:使用SBValue和内存的脚本桥接:讲解了如何使用LLDB的SBValue API操作内存。
第五部分:DTrace
- 第28章:Hello, DTrace:介绍了DTrace的基础知识和使用方法。
- 第29章:中级DTrace:深入探讨了DTrace的高级特性。
附录
- 提供了LLDB命令速查表、Python环境设置指南以及一些有用的代码片段。
适用人群
本书适合以下类型的开发者:
- 希望提升LLDB调试技能的开发者。
- 对Swift和Objective-C底层实现感兴趣的开发者。
- 想要通过逆向工程深入了解程序运行机制的开发者。
- 关注现代逆向工程策略的开发者。
特色与亮点
- 实战性强:通过大量实例和代码,帮助读者快速掌握LLDB的高级用法。
- 深度覆盖:不仅讲解了LLDB的基本命令,还深入探讨了汇编语言、系统调用、Mach-O文件格式等低级知识。
- 扩展性强:提供了丰富的Python脚本示例,帮助读者自定义LLDB命令。
- 资源丰富:附录提供了LLDB命令速查表和Python环境设置指南,方便读者快速上手。
总体而言,《Advanced Apple Debugging & Reverse Engineering》是一本内容丰富、层次分明的高级技术书籍,适合希望在苹果平台调试和逆向工程领域深入探索的开发者阅读。