Replies: 1 comment · 3 replies
-
Many things that are not good :) fastresume.bin only helps you if the target binary did not change - so was not recompiled sind the last run. otherwise it will detect there is a change and perform calibration - and ignore the data in fastresume.bin (it has to!). also if you can use fastresume.bin, you cannot restart with additional new inputs. IF the target binary did not change, and you want to restart AND add new seeds, then you just start normally with But TLDR: fastresume.bin wont help you because of the target was recompiled, right? Finally some words about Fuzzing in a CI. bad idea. usually a very bad idea. |
Beta Was this translation helpful? Give feedback.
-
I am implementing CI-fuzzing to stress an SQL parser, for which the input corpus is a set of various queries supported by the database. Since the database is quickly growing, there will be new syntaxes and functions supported that will need to get added to the corpus from time to time.
In our current setup, we maintain this corpus under the same project repo where we keep the harness. Today, when a CI fuzzing campaign starts, it re-seeds the fuzzer with the entire input corpus. Before the job ends, crash data is uploaded to an internal S3 for analysis.
This ofc is not efficient in the long run, so I am thinking of saving the entire output (
queue
,fastresume.bin
..) , and merging the previous queue with the incrementally updated input seed before the next run.The problem is, I can't seem to understand how the fuzzing will be impacted, if I execute
afl-fuzz -i merged_seed_with_previous_queue -o folder_containing_fastresume.bin /path/to/target
. OTOH, AFL++ allows fuzz resumption with thei -
flag, but then I miss out on seeding it with the new inputs.Would appreciate some leads here. TIA!
Beta Was this translation helpful? Give feedback.
All reactions