-
Notifications
You must be signed in to change notification settings - Fork 110
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
How long it takes to finish fuzzing? #72
Comments
NOTE: This is a very simple explanation. I'm not a fuzzing expert It can be so that you fuzz for days and don't find a crash. It depends on some properties, like:
You can monitor the coverage of libfuzzer to observe the progress of the fuzzing process. Hope this helps a bit. |
Thanks.
What exactly do this numbers mean? |
Reference: http://llvm.org/docs/LibFuzzer.html#output |
Fuzzing is endless; it will continue to run forever. You're supposed to leave it running for a long time in the background to see if it returns anything. |
Thanks. |
I think it's worth understanding:
My first couple attempts with @RazrFalcon: After looking at the link provided by @ner0x652, you might also be interested in reading through the libfuzzer tutorial, which talks a bit about the workflow for C programs. Here's an example of what things look like when they're working:
For this run, I started with 105 files in We quickly discover two new inputs:
We can now access 1583 basic blocks using 78 files. The new files are written to And then a third new input:
Here, we can also see And now things start to slow down:
We've tried 65,536 inputs without seeing any improvements in coverage. There may still be bugs, but they're not easy to reach. And now let's leave it running all afternoon:
We're now at 130 million inputs, and we're still stuck at At this point, it's safe to say that the fuzzer has stalled: It has pretty good coverage, and it isn't finding any way to increase coverage despite trying close to half billion inputs. Now, if I left it running all week, I might find another bug. But my time is probably better spent inventing new inputs for (It would be nice to have something along the lines of #67, which would allow us to know which functions and lines of code haven't been reached yet. Then I could create new examples by hand to reach hard-to-reach corners of the code.) |
Thanks for details! |
It's not directly related to the cargo-fuzz, more to the llvm.
I'm new to fuzz-testing and can't understand how long it takes to finish fuzzing. Is it endless? Is there a progress somewhere in the output?
Now I'm just shutting down it after ~10 minutes.
The text was updated successfully, but these errors were encountered: