Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tinyfuzz

Minimal protocol fuzzing framework for quickly testing networked services and parsers.

Usage

# 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

Options

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

Mutation strategies

  • 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

Crash detection

  • TCP/UDP: connection refused, timeout, or socket error
  • Proc: non-zero exit code (excluding 0 and 1)

About

Minimal protocol fuzzing framework for quickly testing networked services and parsers.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages