-
Notifications
You must be signed in to change notification settings - Fork 8
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
Allow to specify options for certain instances only #39
Comments
One way I could think of would be introducing something like The format could either be based on AFL environment variables like Generally the idea seems valid but the logic needs to take Into account the parsing, options that interfere with each other and such. Might need a big rework on how the commands are being generated |
I added the more complex scenario where you enable compcov where you need multiple env variables:
in this case we need to group them with something like It may be easier to include the libcompcov.so everywhere (if used) with Also CLI flags is difficult because u may need to pass an argument, e.g. |
Good observation regarding the cases where you need multiple env vars and/or more complex parameters.. I couldnt come up with something that fits nicely for an environment variable yet but something like this looks decent for the toml based configuration… [afl_flags_partial]
# Single parameters
AFL_USE_QASAN = 0.3
# Groups of parameters
[[afl_flags_partial.groups]]
probability = 0.2
AFL_PRELOAD = "/path/to/libcompcov.so"
AFL_COMPCOV_LEVEL = 1
[[afl_flags_partial.groups]]
probability = 0.4
-x = "/tmp/dictionary1"
[[afl_flags_partial.groups]]
probability = 0.4
-x = "/tmp/dictionary2" Then again I think this feature requires some smart design as we probably need something like a map of parameters that definitely don’t work in combination with others. Also, if a parameter is defined in the partial group and it overlaps with a parameter that’s already defined in the “best configuration” one has to take precedence over the other.. |
The TOML solution looks very good. I wouldn.t even bother supporting it via env variable. I would also suggest to change
to become something like:
By always enforcing a probability and the envs it will simplify the parsing code and all entries will look the same in the config file. But its just a suggestion. Furthermore we could support |
Something like this could work. |
I just thought about something. I updated some of the implementations in #52 [1] and #53 [2] for how arguments are added to the command, either independently or mutually exclusive. If we changed our TOML format to something like this, we would have basically what is asked from this function signature(s) [[afl_flags_partial.groups]]
probability = 0.4
cmd = "-x /tmp/dictionary2" There are two issues:
|
I guess I need to rebase my feature branch... Btw If I'm not mistaken u implemented both the suggestions for CI fuzzing and the one in Using multiple cores. I noticed this because I started to see flags like |
Sorry for that 😄
I'll look into refactoring the current code to accommodate this behavior
That's up to us. This could be implemented either way. If a main token file is defined, ignore partial ones. Or apply partial ones first and apply token dictionary to those that were not getting a dictionary yet..
Good catch. I was experimenting with this. I'll push a branch that specifically removes the 2 more CI-centric flags. I'll keep the CMPLOG distribution, in case a CMPLOG binary is provided as that yielded good results. PS: Fixed in #54 |
For example I would like to be able to specify
AFL_USE_QASAN
(or COMPCOV preload and level) but only for certain instances (using a count or a percentage)The text was updated successfully, but these errors were encountered: