软件动态调试完整书单
一、基础原理层
理解程序为什么这样运行,是学好调试的前提
《深入理解计算机系统》(CS:APP)
- 作者:Bryant、O'Hallaron
- 核心内容:汇编与机器码、函数调用栈帧、虚拟内存、进程与线程、动态链接、异常控制流
- 作用:解释断点、寄存器、段错误、栈溢出背后的系统原理
《程序员的自我修养》
- 作者:俞甲子 等
- 核心内容:ELF/PE 格式、编译链接、符号解析、PLT/GOT、动态链接器
- 作用:理解调试器加载程序的底层机制,中文资料中的经典
二、调试器使用层
学会正确使用调试工具
GDB / Linux 方向
《The Art of Debugging with GDB, DDD, and Eclipse》
- 作者:Norman Matloff、Peter Jay Salzman
- 核心内容:断点、观察点、单步执行、调用栈、崩溃定位、多线程调试
- 适合:GDB 系统入门
《Debug It!》
- 作者:Paul Butcher
- 核心内容:调试思维方法论、定位复现 Bug 的系统策略
- 适合:培养调试思路,不依赖特定工具
WinDbg / Windows 方向
《Advanced Windows Debugging》
- 作者:Mario Hewardt、Daniel Pravat
- 核心内容:堆损坏、栈损坏、死锁、崩溃转储分析、用户态与内核态调试
- 适合:WinDbg 深度使用
《Windows Internals》Part 1 & Part 2
- 作者:Russinovich 等
- 核心内容:进程、线程、内存管理、对象、I/O、内核机制
- 作用:调试 Windows 程序必须理解的系统底层知识
三、逆向动态分析层
在调试器中看懂程序行为
Windows 平台入门
《逆向工程核心原理》
- 作者:李承远
- 核心内容:PE 文件、x86 汇编、API Hook、断点原理、反调试、代码注入、DLL 注入
- 适合:中文 Windows 逆向动态分析最佳入门书
《加密与解密》第 4 版
- 作者:段钢 等
- 核心内容:软件调试、反调试、加密保护、脱壳、虚拟机保护、漏洞分析
- 适合:中文综合参考手册,按专题查阅使用
Linux/ELF 平台
《Learning Linux Binary Analysis》
- 作者:Ryan O'Neill
- 核心内容:ELF 节区、符号表、PLT/GOT、动态链接、进程注入、ELF 病毒、二进制取证
- 适合:深入理解 Linux 可执行文件结构和动态分析
《Practical Binary Analysis》
- 作者:Dennis Andriesse
- 核心内容:二进制格式、反汇编原理、二进制插桩、动态污点分析、符号执行
- 适合:理解分析工具的内部工作原理
综合逆向进阶
《Practical Reverse Engineering》
- 作者:Bruce Dang 等
- 核心内容:x86/x64/ARM 逆向、Windows 内核逆向、代码混淆、虚拟机保护分析
- 适合:从会用工具进阶到看懂复杂程序
《The Ghidra Book》第 2 版
- 作者:Kara Nance、Chris Eagle
- 核心内容:Ghidra 使用、脚本自动化分析、逆向工作流
- 适合:现代逆向工具使用参考
四、恶意代码动态分析层
动态调试的高强度实战场景
《Practical Malware Analysis》
- 作者:Michael Sikorski、Andrew Honig
- 核心内容:
text
基础动态分析 ├── Process Monitor / Process Explorer ├── Regshot / Wireshark / INetSim ├── API 行为观察 高级动态分析 ├── OllyDbg / x64dbg ├── 反调试技术识别与绕过 └── 脱壳与代码还原 - 适合:动态调试实战能力强化
《Learning Malware Analysis》
- 作者:Monnappa K A
- 核心内容:安全隔离环境、内存取证、混淆分析、Rootkit 分析
- 适合:《Practical Malware Analysis》之后的进阶
五、Android 动态调试层
《Android 软件安全与逆向分析》
- 作者:丰生强
- 核心内容:APK 结构、Dalvik/ART 字节码、Smali、动态调试、加固对抗
- 注意:出版较早,需结合 Frida、JADX、ART 相关资料补充
《Android Security Internals》
- 作者:Nikolay Elenkov
- 核心内容:Binder 机制、权限模型、签名验证、密钥存储、启动链
- 作用:理解 Android 动态调试中遇到的系统级行为
六、配套工具官方文档
| 工具 | 文档资源 |
|---|---|
| GDB | sourceware.org/gdb/documentation |
| WinDbg | Microsoft Learn 官方文档 |
| x64dbg | x64dbg.com 官方文档 |
| Frida | frida.re 官方文档 |
| IDA Pro | hex-rays.com 官方文档 |
| Ghidra | ghidra-sre.org |
七、推荐学习路径
text
阶段一:基础原理
《深入理解计算机系统》 + 《程序员的自我修养》
↓
阶段二:调试器入门
《The Art of Debugging with GDB》(Linux)
《逆向工程核心原理》(Windows)
↓
阶段三:二进制分析
《Learning Linux Binary Analysis》
《Practical Binary Analysis》
↓
阶段四:逆向进阶
《Practical Reverse Engineering》
《加密与解密》(专题查阅)
↓
阶段五:实战强化
《Practical Malware Analysis》
《Learning Malware Analysis》
↓
阶段六:专项扩展
Android → 《Android软件安全与逆向分析》
Windows内核 → 《Windows Internals》 + 《Advanced Windows Debugging》
八、三本起步推荐
| 优先级 | 书名 | 理由 |
|---|---|---|
| ① | 《深入理解计算机系统》 | 所有调试知识的根基 |
| ② | 《逆向工程核心原理》 | 中文最系统的动态调试入门 |
| ③ | 《Practical Malware Analysis》 | 动态调试实战最密集的训练材料 |
重要提示:书中工具界面和系统版本可能过时,学习时应以书中原理和思路为主,具体操作以当前版本工具的官方文档为准。
免责声明
本文档所有内容仅供安全研究、学术交流与技术学习使用,严禁用于任何未经授权的逆向破解、网络攻击、隐私窃取、恶意软件开发及其他违反《中华人民共和国网络安全法》《数据安全法》等法律法规的行为,使用者应确保已获得目标软件权利人的合法授权并自行承担因使用本文档内容所产生的一切法律责任与后果,作者不对任何直接或间接损害承担任何责任,继续阅读即视为您已知悉并同意上述全部条款。
浙公网安备 33010602011771号