TrackmaniaFuzzer
LibAFL-based snapshot fuzzer to fuzz TMNF's RPC interface. Includes a free RCE exploit!
Install / Use
/learn @RickdeJager/TrackmaniaFuzzerREADME
Trackmania Nations Forever fuzzer
blog posts
This repository is accompanied by two blog posts, so for more information I'd recommend you read those first:
- Hacking TMNF: Part 1 - Fuzzing the game server
- Hacking TMNF: Part 2 - Exploiting a blind format string
POC video
Fuzzer
Requirements
- You need to be able to build
libafl_qemu, so besides Rust, you also need the following packages (assuming apt)
sudo apt-get install -y build-essential python3-dev automake cmake git flex bison libglib2.0-dev libpixman-1-dev python3-setuptools cargo libgtk-3-dev ninja-build
- You need to be able to build
nautilus, which requires nightly rust. The latest version doesn't seem fully compatible with LibAFL at the time of writing (?). I used version 1.65.0-nightly, which you can install using rustup:
rustup install nightly-2022-08-16
rustup default nightly-2022-08-16
Setup
- Download and extract the Trackmania server in the "Server" directory in the repository.
- Ensure that the user that will be running the fuzzer does not have permission to create new files here. You will have a bad time if you don't do this, as RPC calls can legitimately create new files.

If Qemu is giving you trouble on startup, you may need to run the server in qemu-user once with "normal" file permissions first, before removing write/create permissions again.
Running
- execute the "run.sh" script from within "./GrammarFuzzer"
- wait for the server to initialize and run
python3 kick.pyto send the initial RPC message
Triaging
- execute the "repro.sh" script from within "./GrammarFuzzer" to get the raw XML files that caused a crash.
- You can send these payloads to a server using the included
throw.pyscript.
Crashes
Some example crash files are included in this repository.
Related Skills
node-connect
349.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
109.8kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
349.9kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
349.9kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。

