Skip to content

Conversation

@jiradeto
Copy link
Collaborator

This PR randomly adjusts AFL's fuzzing parameters which typically are constants. Basically at the beginning of the fuzzing cycle, we repeatedly randomize parameter's value with some probabilities that can be set with env variable AFL_RP_PROB.

@jiradeto jiradeto marked this pull request as draft July 23, 2021 16:25
@wuestholz
Copy link

@jiradeto Thanks! Somehow I must have missed this PR... It looks like it's going in the right direction. Have you already tested this a bit? If so, you can probably start extending it to cover more parameters.

@jiradeto
Copy link
Collaborator Author

jiradeto commented Jul 28, 2021

@wuestholz, I have started the initial experiment with just a single parameter tweak HAVOC_STACK_POW2. The results are available for bloaty_sqlite and libjpeg_libxml.

And yeah, if this PR looks good I will add more fuzzing parameters and start experimenting shortly.

@wuestholz
Copy link

@jiradeto Oh, wow! The differences are quite big and it looks like in some benchmarks the randomization helps.

What value did you use for AFL_RP_PROB?

@jiradeto
Copy link
Collaborator Author

@wuestholz, sorry I gave you the wrong experiment. The one I shown you is the initial experiment with AFL_RP_PROB = 0 just to confirm that there is no issue with this PR. The differences shown is solely because of the changes from #6 in which this PR is based.

I just pushed the latest changes which adds more parameters with a set of random values from our discussion.

@wuestholz
Copy link

@jiradeto Oh, I see. :) No problem! Yeah, let's see what the effect is once we enable this. I might start with AFL_RP_PROB=20.

…_seed

[WIP] Assign probability for random params per seed
@jiradeto jiradeto marked this pull request as ready for review August 12, 2021 11:12
@jiradeto jiradeto merged commit f31d164 into random_weight_and_favored Aug 12, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants