# 8 FUZZING
Fuzzing 一直以来都是个热点话题,因为使用它能非常高 效的寻找出软件的漏洞。简单的说,Fuzzing 就是向目标程序发 送畸形或者半畸形的数据以引发错误。这一章,让我们先了解几 个不同类型的 fuzzer 还有 bug,之后我们还要自己动手写实现一 个 file fuzzer。下一章,会详细的介绍 Sulley fuzzing 框架和如何设计一个针对 Windows 驱动的 fuzzer。
fuzzers 基本上分成 2 大类:generation(产生) 和 mutation(变异)。Generation fuzzers 创建数据,然后发送到到目标程序, mutation fuzzers 并不创建数据,而是截获程序接收的 数据,然后修改数据。 举个例子,当我们要 fuzz 一个 web 服务器的时候,generation fuzzer 会生成一套变形的 Http 请求然后发送给 web 服务器,而 mutation fuzzer 会捕获 Http 请求, 在请求传递给 web 服务器前修改它们。
为了将来我们创建创建一个高效的 fuzzer,我们需要先对不同类型的 bug 做一个简单的 了解,并且看看 fuzzer 如何触发它们。如果要更详细的了解软件安全检测,可以看下面的书。
- 序
- 1 搭建开发环境
- 1.1 操作系统准备
- 1.2 获取和安装 Python2.5
- 1.3 配置 Eclipse 和 PyDev
- 2 调试器设计
- 2.1 通用 CPU 寄存器
- 2.2 栈
- 2.3 调试事件
- 2.4 断点
- 3 自己动手写一个 windows 调试器
- 3.2 获得 CPU 寄存器状态
- 3.3 实现调试事件处理
- 3.4 全能的断点
- 4 PyDBG---纯 PYTHON 调试器
- 4.1 扩展断点处理
- 4.2 处理访问违例
- 4.3 进程快照
- 5 IMMUNITY----最好的调试器
- 5.1 安装 Immunity 调试器
- 5.2 Immunity Debugger 101
- 5.3 Exploit 开发
- 5.4 搞定反调试机制
- 6 HOOKING
- 6.1 用 PyDbg 实现 Soft Hooking
- 6.2 Hard Hooking
- 7 Dll 和代码注入
- 7.1 创建远线程
- 7.2 邪恶的代码
- 8 FUZZING
- 8.1 Bug 的分类
- 8.2 File Fuzzer
- 8.3 改进你的 Fuzzer
- 9 SULLEY
- 9.1 安装 Sulley
- 9.2 Sulley primitives
- 9.3 猎杀 WarFTPD
- 10 Fuzzing Windows 驱动
- 10.1 驱动通信
- 10.2 用 Immunity fuzzing 驱动
- 10.4 构建 Driver Fuzzer
- 11 IDAPYTHON --- IDA 脚本
- 11.1 安装 IDAPython
- 11.2 IDAPython 函数
- 11.3 脚本例子
- 12 PyEmu
- 12.1 安装 PyEmu
- 12.2 PyEmu 一览
- 12.3 IDAPyEmu