kchousos/OverHAuL
GitHub: kchousos/OverHAuL
基于 LLM 的 C/C++ 项目 fuzzing harness 自动生成工具,通过智能推理解决传统 fuzzing 需手写 harness 的痛点。
Stars: 13 | Forks: 1
OverHAuL
**OverHAuL**(*利用 LLM 的 Harness 自动化*)是一个使用 ReAct 风格 LLM agent 为 C 项目自动生成兼容 libFuzzer 的 harness 的系统。它通过工具辅助的推理迭代式地构建专为有效 fuzzing 量身定制的 harness——全程无需人工干预。OverHAuL 的目标是让 fuzzing 变得触手可及且立即可用,减少阻力,加速迈向更安全软件的进程。

## 安装
### 依赖项
- Python >=3.10
### 安装步骤
1. 克隆仓库并进入目录:
git clone https://github.com/kchousos/overhaul.git;
cd overhaul
2. 创建虚拟环境(可选):
python3.10 -m venv .venv;
source .venv/bin/activate # 适用于 bash
3. 安装项目:
pip install .
## 使用方法
1. 在 `.env` 中添加 OpenAI API key,例如:
# cat .env
OPENAI_API_KEY=
或将其导出为环境变量:
export OPENAI_API_KEY=
2. 执行主脚本:
overhaul
包含新生成 harness 的克隆仓库可在 `output/` 目录中找到。
### 命令行选项
```
$ overhaul --help
usage: overhaul [-h] [-c COMMIT] [-m MODEL] [-f FILES [FILES ...]] [-o OUTPUT_DIR] repo
Generate fuzzing harnesses for C/C++ projects
positional arguments:
repo Link of a project's git repo, for which to generate a harness.
options:
-h, --help show this help message and exit
-c COMMIT, --commit COMMIT
A specific commit of the project to check out
-m MODEL, --model MODEL
LLM model to be used. Available: o3-mini, o3, gpt-4o, gpt-4o-mini, gpt-4.1, gpt-4.1-mini
-f FILES [FILES ...], --files FILES [FILES ...]
File patterns to include in analysis (e.g. *.c *.h)
-o OUTPUT_DIR, --output-dir OUTPUT_DIR
Directory to clone the project into. Defaults to output
```
## 致谢
本项目是我在 [Thanassis Avgerinos](https://cgi.di.uoa.gr/~thanassis/) 教授指导下作为我的理学士(BSc)论文的一部分开发的。该论文[已在线托管](https://kchousos.github.io/BSc-Thesis/)。标签:AI, C2, C/C++, DevSecOps, DLL 劫持, DNS 反向解析, Fuzzing, Harness生成, LibFuzzer, LLM, Petitpotam, Python, ReAct Agent, TLS抓取, Unmanaged PE, 上游代理, 事务性I/O, 云安全监控, 人工智能, 代码安全, 域名收集, 大语言模型, 无后门, 智能代理, 测试用例生成, 漏洞枚举, 用户模式Hook绕过, 网络安全研究, 自动化代码审查, 误配置预防, 软件安全, 逆向工具, 静态分析