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).