https://github.com/kchousos/overhaul
Unleash the fuzz on your C codebase.
https://github.com/kchousos/overhaul
c-projects fuzzing harness llm neurosymbolic-ai python security security-automation
Last synced: 6 months ago
JSON representation
Unleash the fuzz on your C codebase.
- Host: GitHub
- URL: https://github.com/kchousos/overhaul
- Owner: kchousos
- License: gpl-3.0
- Created: 2025-04-17T17:04:03.000Z (9 months ago)
- Default Branch: master
- Last Pushed: 2025-06-25T14:24:09.000Z (7 months ago)
- Last Synced: 2025-06-25T15:26:49.107Z (7 months ago)
- Topics: c-projects, fuzzing, harness, llm, neurosymbolic-ai, python, security, security-automation
- Language: Python
- Homepage: https://kchousos.github.io/OverHAuL/
- Size: 22.4 MB
- Stars: 7
- Watchers: 1
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
OverHAuL
**OverHAuL** (*Harness Automation with LLMs*) is a system for automatically generating libFuzzer-compatible harnesses for C projects using ReAct-style LLM agents. It iteratively builds harnesses tailored for effective fuzzing through tool-assisted reasoning — all without manual intervention. OverHAuL's goal is to make fuzzing accessible and immediate, reducing friction and accelerating the path to safer software.
## Installation
### Dependencies
- Python >=3.10
- [uv](https://docs.astral.sh/uv/)
### Installation Steps
1. Clone the repository and cd into it:
```bash
git clone https://github.com/kchousos/overhaul.git;
cd overhaul
```
2. Create a virtual environment (optional):
```bash
python3.10 -m venv .venv;
source .venv/bin/activate # for bash
```
3. Install the project:
```bash
uv pip install .
```
## Usage
1. Add an OpenAI API key in `.env`, such as:
```bash
# cat .env
OPENAI_API_KEY=
```
Or export it as an environment variable:
```bash
export OPENAI_API_KEY=
```
2. Execute the main script:
```bash
overhaul
```
The cloned repo with the newly generated harness can be found in the `output/` directory.
### Command-Line Options
```
$ 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
```