基于 LangChain 框架的 AFL++ 模糊测试自动化工作流系统。
Agent Fuzz 是一个使用 LangChain 框架实现的 AFL++ 模糊测试自动化工作流。它将 AFL++ 模糊测试的完整流程(从目标文件分析到结果分析)表示为可执行的自动化流程,支持使用免费的 API 进行测试。
- ✅ 完整工作流: 8 个主要阶段的自动化流程
- ✅ LangChain 集成: 使用 LangChain 框架实现智能工作流
- ✅ 免费 API 支持: 支持 Hugging Face Hub 等免费 API
- ✅ 灵活扩展: 易于添加新工具和工作流阶段
- ✅ 状态管理: 完整的工作流状态跟踪
- ✅ 错误处理: 健壮的错误处理和恢复机制
- 目标分析 (Analyze) - 分析 .o 文件,提取函数和符号
- 生成 Harness (Generate Harness) - 自动生成 fuzz harness 代码
- 环境准备 (Prepare Environment) - 准备 Docker 容器环境
- 编译 (Compile) - 使用 AFL++ 编译器编译
- 创建种子 (Create Seeds) - 生成测试种子文件
- 功能测试 (Functional Test) - 验证程序功能
- 覆盖率测试 (Coverage Test) - 检查代码覆盖率
- 模糊测试 (Fuzzing) - 启动 AFL++ 模糊测试
- 结果分析 (Analysis) - 分析测试结果
pip install -r requirements.txt# Windows PowerShell
$env:HUGGINGFACEHUB_API_TOKEN="your_token_here"
# Linux/Mac
export HUGGINGFACEHUB_API_TOKEN="your_token_here"获取 token: https://huggingface.co/settings/tokens
# 安装并运行 Ollama
ollama run llama2
# 设置环境变量
export OPENAI_API_BASE="http://localhost:11434/v1"
export OPENAI_API_KEY="ollama"python test_workflow.pyfrom afl_workflow_langchain import AFLWorkflowLangChain
# 创建工作流实例
workflow = AFLWorkflowLangChain(use_free_api=True)
# 执行完整工作流
results = workflow.execute_full_workflow("vul_bn_exp.o")agent_fuzz/
├── afl_workflow_langchain.py # 主工作流实现
├── test_workflow.py # 测试脚本
├── requirements.txt # 依赖列表
├── README.md # 项目说明
├── README_LANGCHAIN.md # LangChain 详细文档
└── .gitignore # Git 忽略文件
- LangChain: 工作流框架
- Python 3.8+: 编程语言
- Hugging Face Hub: 免费 LLM API
- AFL++: 模糊测试工具
MIT License
欢迎提交 Issue 和 Pull Request!