# Performing Fuzzing With Aflplusplus

> 使用 AFL++（American Fuzzy Lop Plus Plus）对编译后的二进制文件执行覆盖率引导模糊测试（Coverage-Guided Fuzzing）， 以发现内存损坏、崩溃和安全漏洞。测试人员使用 afl-cc/afl-clang-fast 对目标二进制文件进行插桩， 使用 afl-cmin 和 afl-tmin 管理输入语料库，运行并行模糊测试活动，并使用 CASR 或 GDB 脚本对崩溃进行分类。 适用于涉及二进制模糊测试、崩溃发现、覆盖率引导测试或 AFL++ 模糊测试活动的请求。

- Skill: `killvxk/performing-fuzzing-with-aflplusplus` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add killvxk/performing-fuzzing-with-aflplusplus`
- Raw SKILL.md: https://api.skillmd.com/api/skills/killvxk/performing-fuzzing-with-aflplusplus/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: Apache-2.0
- Author: killvxk (https://skillmd.com/u/killvxk)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/killvxk/performing-fuzzing-with-aflplusplus

---

# 使用 AFL++ 执行模糊测试

## 概述

AFL++ 是 American Fuzzy Lop（AFL）的社区维护分支，为编译后的二进制文件提供覆盖率引导模糊测试。它在编译时或通过 QEMU/Unicorn 模式（用于纯二进制模糊测试）对目标进行插桩，然后对输入语料库进行变异以发现新的代码路径。AFL++ 包含高级调度算法（MOpt、rare）、自定义变异器、用于输入到状态比较求解的 CMPLOG，以及用于高吞吐量模糊测试的持久模式。

## 前置条件

- 已安装 AFL++（`apt install afl++` 或从源码构建）
- 目标二进制文件的源代码（用于编译时插桩）或使用 QEMU 模式进行纯二进制测试
- 目标格式的有效输入初始种子语料库
- 已配置 `/proc/sys/kernel/core_pattern` 的 Linux 系统

## 操作步骤

1. 使用 `afl-cc` 或 `afl-clang-fast` 对目标二进制文件进行插桩
2. 准备包含最小有效输入的种子语料库目录
3. 使用 `afl-cmin` 最小化语料库以删除冗余种子
4. 使用适当参数运行 `afl-fuzz`（-i 输入目录 -o 输出目录）
5. 通过 afl-whatsup 和 UI 统计信息监控模糊测试进度
6. 使用 `afl-tmin` 最小化和 CASR/GDB 分析对崩溃进行分类
7. 报告唯一崩溃及其复现步骤

## 预期输出

```
+++ 发现结果 +++
  唯一崩溃: 12
  唯一挂起: 3
  最近崩溃: 00:02:15 前
+++ 覆盖率 +++
  映射密度: 4.23% / 8.41%
  发现路径: 1847
  执行速度: 2145/秒
```

