GKLBB

当你经历了暴风雨,你也就成为了暴风雨

导航

软件动态调试完整书单

 


一、基础原理层

理解程序为什么这样运行,是学好调试的前提

《深入理解计算机系统》(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》 动态调试实战最密集的训练材料

重要提示:书中工具界面和系统版本可能过时,学习时应以书中原理和思路为主,具体操作以当前版本工具的官方文档为准。

posted on 2026-08-27 19:51  GKLBB  阅读(21)  评论(0)    收藏  举报