界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
效率与协作 · SKILL.md

performing-fuzzing-with-aflplusplus

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++ 模糊测试活动的请求。

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: performing-fuzzing-with-aflplusplus description: > 使用 AFL++(American Fuzzy Lop Plus Plus)对编译后的二进制文件执行覆盖率引导模糊测试(Coverage-Guided Fuzzing), 以发现内存损坏、崩溃和安全漏洞。测试人员使用 afl-cc/afl-clang-fast 对目标二进制文件进行插桩, 使用 afl-cmin 和 afl-tmin 管理输入语料库,运行并行模糊测试活动,并使用 CASR 或 GDB 脚本对崩溃进行分类。 适用于涉及二进制模糊测试、崩溃发现、覆盖率引导测试或 AFL++ 模糊测试活动的请求。 domain: cybersecurity subdomain: application-security tags: [fuzzing, aflplusplus, coverage-guided, crash-triage, binary-analysis, security-testing] version: "1.0" author: mahipal license: Apache-2.0

使用 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/秒
我的收藏