Thanks to visit codestin.com
Credit goes to GitHub.com

Skip to content

kchousos/OverHAuL

Repository files navigation

OverHAuL

Improve your code security one harness at a time.

Project Status: Active – The project has reached a stable, usable state and is being actively developed. uoadl:5300250 python GitHub License Static Badge

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

Installation Steps

  1. Clone the repository and cd into it:

    git clone https://github.com/kchousos/overhaul.git;
    cd overhaul
  2. Create a virtual environment (optional):

    python3.10 -m venv .venv;
    source .venv/bin/activate # for bash
  3. Install the project:

    pip install .

Usage

  1. Add an OpenAI API key in .env, such as:

    # cat .env
    OPENAI_API_KEY=<API-key-here>

    Or export it as an environment variable:

    export OPENAI_API_KEY=<API-key-here>
  2. Execute the main script:

    overhaul <repo-link>

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

Acknowledgments

This project was developed as part of my BSc Thesis, under the supervision of Prof. Thanassis Avgerinos. The thesis is hosted online.

Packages

No packages published

Contributors 2

  •  
  •