SuperAPI AI 工具集

fuzzing

通用与其它

查看项目

更新于 10-16 01:18

技能介绍

用途:指导智能体搭建并运行覆盖率引导的模糊测试,覆盖 libFuzzer(进程内)与 AFL++(基于 fork)两种方案,并配合 sanitizer 与 CI 流水线,用于在 C/C++ 中自动发现由输入驱动的缺陷,例如解析器、反序列化器等场景。

主要能力:编写 libFuzzer 模糊测试入口函数 LLVMFuzzerTestOneInput;使用 clang -fsanitize=fuzzer,address(可加 undefined)构建;运行、并行(-jobs、-workers)、限制时间(-max_total_time)、最小化语料(-merge=1);复现 crash-、oom-、timeout- 命名的崩溃输入。AFL++ 方面包含安装、插桩编译(afl-clang-fast)、基于 @@ 文件参数或 stdin 运行、持久模式 __AFL_LOOP、语料最小化 afl-cmin。还涵盖结构化模糊测试自定义变异器、Atheris(Python)、dataflow tracing、OSS-Fuzz 集成、Zig 内置 fuzzing 以及词典文件。

使用方式:按资料中的步骤写 fuzz target、构建并运行;命令需保持原样,例如 clang -fsanitize=fuzzer,address -g -O1 与 afl-fuzz -i afl-input -o afl-output -- ./prog_afl @@。CI 中可做短时回归运行并配合 -error_exitcode=1;长时间运行可使用 OSS-Fuzz 或 ClusterFuzz。

适用场景:解析器与反序列化器的模糊测试、如何编写 fuzz target、设置 libFuzzer 或 AFL++、在 CI 中运行 fuzzing、复现崩溃。

限制:资料未提供具体的费用、平台支持范围或效果保证;需注意模糊测试目标不得调用 abort()/exit()、不得读取越界,且应保持高效;部分工具需要特定编译器与运行环境。