标签
内容简介
本书由知名安全机构 Immunity Inc 的资深安全研究员 Justin Seitz 撰写,是较早系统讲解“如何用 Python 完成黑客与逆向工程日常任务”的中文技术书之一。全书避开对现成工具的简单罗列,而是从底层原理入手:先讲清 CPU 通用寄存器、栈结构、调试事件与软断点、硬件断点和内存断点的实现机制,再用 Python 的 ctypes 库调用 Windows 调试 API,从零写出一个可用的 Windows 调试器。 在此基础上,作者依次展开调试器扩展、PyDbg 纯 Python 调试器、Immunity Debugger 的 PyCommand 与 PyHooks 用法、软钩子与硬钩子技术、远程线程创建与 DLL 注入和代码注入、文件 Fuzzer 与 Sulley 框架、Windows 驱动 Fuzzing,以及用 IDAPython 自动化静态分析、用 PyEmu 进行脚本化仿真与 UPX 脱壳等内容。书中的示例多借鉴 Paimei 等开源安全项目,强调“读得懂、跑得起来、改得动”。 由于原书成书于 Python 2.5 时代,代码以 32 位 Windows 环境为主,今天的读者更适合把它当作理解调试器、注入与 Fuzzing 内部原理的经典读本,而不是照抄即用的工具手册。
编辑推荐
如果你想弄明白“逆向工程师平时到底在写什么代码”,这本书提供了一个非常难得的、别人很少系统讲解的视角。它不把调试器、钩子、注入、Fuzzing 当作黑箱工具来介绍,而是一层层拆开:寄存器怎么存、断点怎么下、DLL 怎么被塞进别人的进程、Fuzzer 怎么生成变异样本。把这些原理讲透之后,再交给你一段能跑的 Python 代码。 作者 Justin Seitz 长期在 Immunity 做漏洞挖掘与漏洞利用开发,书中的例子多是他的实际工作场景,技术编辑还是 Immunity 创始人 Dave Aitel,因此内容并不空泛。中文版译者为丁赟卿,由 Team509 的崔孝晨审校并为中文版撰写推荐序,译文对术语的处理相当到位,原书中若干代码错误也在中文版中得到了修正。 需要坦率提醒的是:本书原版出版于 2009 年,示例基于 Python 2.5 和 32 位 Windows,部分工具链(如旧版 Immunity Debugger、Sulley)在今天的环境里配置起来会颇为费劲。但“调试器怎么写”“注入怎么做”“Fuzzing 的模型怎么搭”这些知识并不过时,反而是很多只学框架、不碰底层的读者最缺的一块拼图。
适合谁读
适合
- 已掌握 Python 基础语法、想深入系统底层与二进制世界的开发者
- 从事安全研究、渗透测试或恶意软件分析,希望自己造工具的从业者
- 学习逆向工程与漏洞挖掘,需要补足调试器、注入、Fuzzing 原理的学生
- CTF 二进制方向选手,想理解常见工具背后实现机制的人
不适合
- 完全没有编程经验、也缺少 C 语言与内存模型概念的零基础读者
- 希望找一本“照着步骤就能用现成工具拿分”的速成手册的读者
- 只在 Linux 或现代 64 位环境工作、不愿搭旧环境复现示例的读者
阅读建议
- 先补一点 x86 汇编、进程与内存、Windows API 的基础,否则第 2、3 章会读得很吃力。
- 按章节顺序动手敲代码,边调边改;示例依赖 Python 2.5 与 32 位环境,可先用虚拟机搭一套可复现的旧环境。
- 遇到已停止维护的库(PyDbg、Sulley 等)时,重点理解设计思路,再对照当下的替代工具(如 Frida、AFL、angr)思考异同。
- 把每章末尾的工具当作起点而非终点,试着改成自己需要的功能,这是本书最想训练的能力。
出版社简介
电子工业出版社
中国 · 成立于 1982 年
电子工业出版社是一家以电子信息及相关领域为出版特色的综合性出版社。从库内三千余种图书来看,其出版方向覆盖编程设计、人工智能、计算机综合、财经、摄影与社科等门类,既关注技术前沿,也兼顾大众阅读。代表图书包括《因子投资:方法与实践》《x86汇编语言:从实模式到保护模式》《RISC-V开放架构设计之道》《人工智能:语音识别理解与实践》《相控阵雷达技术》《雷达目标特性》及《100个Go语言典型错误》等,多围绕技术方法与工程实践展开。作者资源方面,有石川、李忠、王晓波、大卫·帕特森、安德鲁·沃特曼、余子濠等中外作者。受公开资料所限,暂不展开更多出版特色。
目录
- 第1章 搭建开发环境
- 第2章 调试器原理和设计
- 第3章 构建自己的Windows调试器
- 第4章 PyDbg——Windows下的纯Python调试器
- 第5章 Immunity Debugger——两极世界的最佳选择
- 第6章 钩子的艺术
- 第7章 DLL注入与代码注入技术
- 第8章 Fuzzing
- 第9章 Sulley
- 第10章 面向Windows驱动的Fuzzing测试技术
- 第11章 IDAPython——IDA Pro环境下的Python脚本编程
- 第12章 PyEmu——脚本驱动式仿真器
常见问题
这本书讲的是黑帽黑客的内容吗?
书名中的“灰帽子”指介于白帽与黑帽之间的技术地带。书中确有后门编写、文件隐藏、绕过 DEP 与反调试等内容,但落点在原理与工程实现,目的是帮助安全研究人员理解攻击面并做好防御,作者与译者也都在安全行业从事相关工作。
书里的代码现在还能直接运行吗?
原书基于 Python 2.5 与 32 位 Windows 编写,PyDbg、Sulley 等库大多已停止维护,直接照抄在现代系统上大概率跑不通。建议在虚拟机中搭建旧环境复现,或把重点放在理解原理上,再迁移到当前工具链。
和《Python黑帽子》是同一本书吗?
不是。本书英文原名为 Gray Hat Python,2011 年由电子工业出版社出版,译者丁赟卿;《Python黑帽子:黑客与渗透测试编程之道》是同一作者后来的 Black Hat Python,聚焦网络渗透方向,由另一位译者翻译,两本书内容与侧重都不同。
没有 C 语言基础能读懂吗?
会比较吃力。书中大量涉及 ctypes 调用 Windows API、结构体与联合体定义、指针传参、寄存器与栈操作,具备基本 C 语言和内存模型概念会让阅读顺畅很多;完全不熟悉的话,建议先补这部分基础。
本书和《加密与解密》这类书有什么区别?
《加密与解密》偏重逆向分析的方法论与工具全景,本书则聚焦“用 Python 自己动手造安全工具”,从调试器、钩子、注入到 Fuzzing 与仿真器,更强调实现细节与代码落地,两者可以互补阅读。
读者评论
查询本书
本站为索引目录:「全网查询」由您发起、在您的浏览器中运行,所列入口均指向第三方站点,请自行判断可用性。