Naive comparison tracing made my custom fuzzer worse until I changed three things
A developer built a coverage-guided fuzzer in about 300 lines of C, without libFuzzer or AFL, to study how each technique affects bug-finding. Their first comparison-tracing version found no bug in 200,000 executions and lowered coverage, because the shared value pool was dominated by irrelevant size_t comparisons. Splitting the pool by operand width, storing one side of constant comparisons, and favouring the newest seed cut the executions needed from 124,573 to 2,309. The author notes that the gain came at the cost of one edge of peak coverage and argues that negative results are as valuable as successes. The full source and reproduction commands are published on GitLab.
This is an AI-generated summary. ShortSingh links to the original source for the complete article.
Discussion (0)
Log in to join the discussion and vote.
Log in