Share
## https://sploitus.com/exploit?id=FDE9C2F6-AB95-550F-83DF-2EEC32724065
# Autonomous Binary Vulnerability Agent (ABVA)

**Educational portfolio project** β€” AI-assisted discovery of intentional CTF-style binary bugs using symbolic execution (angr) and optional reinforcement learning, with sandboxed crash reproduction and teaching reports.

> ABVA does **not** generate ROP chains, shellcode, or weaponized exploit scripts.  
> Analysis runs in a **Docker sandbox** (`network_mode: none`) against **in-repo** challenge binaries only.

## Why this project

Automated exploit generation is a research frontier; shipping weaponized payloads is not the goal here. ABVA focuses on the hard, portfolio-relevant pieces:

1. **ELF triage** β€” NX / PIE / canary / RELRO
2. **Symbolic exploration** β€” find crash / IP-overwrite / write-what-where *candidates*
3. **RL navigation** β€” reach menu-gated vulnerable states when paths are deep
4. **Crash reproduction** β€” feed concretized inputs and capture signals
5. **Educational reporting** β€” JSON + Markdown writeups for defenders and learners

## Architecture

```text
ELF challenge β†’ Triage β†’ Symbolic (angr) ─┐
                     β””β†’ RL explorer (PPO) ─┴→ Findings β†’ Repro β†’ REPORT.md / crash.bin
```

## Quick start (Docker)

```bash
docker compose build
docker compose run --rm abva analyze challenges/C1_stack_overflow
# artifacts under ./out/C1_stack_overflow/
docker compose run --rm abva eval
```

Sandbox defaults (see `docker-compose.yml`):

- `network_mode: none`
- `cap_drop: [ALL]`
- `no-new-privileges`
- read-only root FS with writable `out/` and `models/`

## Challenge suite

| ID | Name | Teaching goal |
| --- | --- | --- |
| C1 | `stack_overflow` | Classic buffer overflow β†’ IP overwrite candidate |
| C2 | `menu_overflow` | Menu-gated vuln path (RL-friendly) |
| C3 | `write_what_where` | Constrained WWW classification |
| C4 | `format_string` | Format-string sink |
| C5 | `guarded_path` | Token gate + overflow (hybrid) |

## CLI

```text
abva analyze  [--rl] [-o out]
abva train-rl  [--timesteps N]
abva report 
abva eval
abva version
```

## Local Python (optional)

Linux recommended. On Windows, prefer Docker for ELF execution.

```bash
python3.11 -m venv .venv
source .venv/bin/activate  # or .venv\Scripts\activate
pip install -e ".[dev]"
# Build challenges on Linux:
make -C challenges all
pytest
```

## Ethics

See [docs/ETHICS.md](docs/ETHICS.md). Use only on binaries you are authorized to analyze (this repo’s challenges).

## License

MIT β€” see [LICENSE](LICENSE).