https://github.com/niklasb/bspfuzz
https://github.com/niklasb/bspfuzz
Last synced: about 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/niklasb/bspfuzz
- Owner: niklasb
- License: bsd-3-clause
- Created: 2018-08-26T15:07:11.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2021-07-30T13:04:35.000Z (almost 5 years ago)
- Last Synced: 2025-04-04T10:47:04.453Z (over 1 year ago)
- Language: C++
- Homepage: https://phoenhex.re/2018-08-26/csgo-fuzzing-bsp
- Size: 2.93 MB
- Stars: 90
- Watchers: 3
- Forks: 18
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# CS:GO map file fuzzing using AFL in QEMU mode
Author: [@_niklasb](https://github.com/_niklasb)
[Overview article.](https://phoenhex.re/2018-08-26/csgo-fuzzing-bsp)
See LICENSE.
## Prerequisites
```bash
$ sudo apt install gdb valgrind build-essential python3-minimal python-minimal
$ cd ~
$ git clone https://github.com/niklasb/gdbinit
$ cd gdbinit
$ ./setup.sh
```
Then, build AFL with qemu mode support and `afl_patches.diff` applied. Set
`AFL_PATH` correctly in your `.bashrc`.
## Setup
1. `git clone https://github.com/niklasb/bspfuzz/ && cd bspfuzz`
2. Copy over `bin/` and `csgo/` directories from the CS:GO server installation
into the `bspfuzz` directory
3. Adapt offsets in `main.cpp` and `patch.py` for your version
4. `./setup.sh`
## Running
```bash
$ cd /path/to/bspfuzz
$ ./run_afl.sh 1
$ ./run_afl.sh 2
$ ./run_afl.sh 3
...
```
## Triaging
```bash
$ sudo sysctl -w kernel.randomize_va_space=0
$ cd /path/to/bspfuzz/triage
$ ./triage.sh
$ ./valgrind.sh
```