-
Notifications
You must be signed in to change notification settings - Fork 269
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
AFL integration with multiple AFL instances running and a SymCC instance with only a single AFL process. #1166
Conversation
As an extra note on this, I assume this is something that should also be considered in other integrations? For example, Van Hauser mentions another example of comparing Eclipser and afl++ versus afl++ and afl++. Down the line it may also be that more multi-process tools are coming in. |
Can you request an experiment as well in this pr |
Yeah. I will also a second flavour of SymCC that relies on a single AFL instance rather than one (the documentation suggests two https://github.com/eurecom-s3/symcc/blob/9b20609adab02279c181010c8b1e61a9a9acac62/docs/Fuzzing.txt#L91 but also says It is possible to run SymCC with only an AFL master or only a secondary AFLinstance; see the AFL docs for the implications. https://github.com/eurecom-s3/symcc/blob/9b20609adab02279c181010c8b1e61a9a9acac62/docs/Fuzzing.txt#L112) @sebastianpoeplau am not entirely sure what implications this refers to - if you have the time then I would be happy to hear about those. |
I have run the three modified fuzzers from this pr |
Pull request was converted to draft
My understanding from the AFL docs is that master instances perform a set of deterministic mutations before proceeding to randomly mutating inputs (called "havoc" in the AFL UI); secondary instances skip the deterministic stage and start with "havoc" immediately. The consequences for SymCC, I think, are that running with only a secondary instance will lose any benefit that the deterministic mutations might have; running with only a master doesn't have that problem, but I believe then it takes longer until AFL reads inputs from SymCC for the first time. |
In afl++ we just changed this - -M does not do deterministic anymore because it is pretty pointless (as analyzed from several experiments I made). |
Sounds good! In vanilla afl |
@sebastianpoeplau yes. basically if neither -M or -S is given |
This integrates a version where two AFL processes are started.
The reason for this integration is that some integrations (eclipser and symcc) rely on multiple processes as part of their workflow. This potentially gives an unfair total amount of CPU time or an unfair amount of time spent context switching in comparison to the other integrations, which in turn may twist the truth of the results. This integration is meant to be used as a comparison to such integrations. This came up from a discussion with @vanhauser-thc over here #1165 (comment)