Minimal protocol fuzzing framework for quickly testing networked services and parsers.
# Fuzz a TCP service
python tinyfuzz.py "GET / HTTP/1.0\r\n\r\n" tcp localhost 8080
# Fuzz a UDP service
python tinyfuzz.py "ping" udp localhost 9999 --timeout 2.0
# Fuzz a local binary via stdin
python tinyfuzz.py "hello" proc ./target_binary
# Use a binary seed file
python tinyfuzz.py @seed.bin tcp localhost 8080
# Reproducible run
python tinyfuzz.py "hello" tcp localhost 8080 --seed-val 42 -n 500| Flag | Default | Description |
|---|---|---|
-n |
1000 | Number of iterations |
-d |
0.0 | Delay between sends (seconds) |
--timeout |
3.0 | Socket timeout (tcp/udp) |
--seed-val |
— | RNG seed for reproducibility |
- Bit flip — flips a random bit in the payload
- Byte random — replaces a random byte with a random value
- Boundary — replaces payload with a known-dangerous value
- Repeat — repeats a chunk of the payload many times
- Truncate — shortens the payload
- TCP/UDP: connection refused, timeout, or socket error
- Proc: non-zero exit code (excluding 0 and 1)