Skip to content
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

Feature: Make executors and feedbacks easier to use outside of the fuzzing loop #2511

Open
wants to merge 14 commits into
base: main
Choose a base branch
from

Conversation

Lukas-Dresel
Copy link

@Lukas-Dresel Lukas-Dresel commented Sep 6, 2024

It would be nice to be able to use LibAFL components more easily outside of LibAFL's fuzzer harnessing (by which I mean the plug-and-play fuzzing loop) to allow for more reuse.
For example, I found myself ripping my hair out over trying to just run the forkserver with an observer to simply collect, aggregate and plot coverage. To do so, I had to provide types for fuzzers, feedbacks, schedulers, etc. even though none of those things were relevant for my use-case.

I ended up making changes like the ones in this PR in my own fork and it made it quite a bit nicer to use, now you can reuse some of the components and are only required to satisfy the directly needed type constraints for these components.

@Lukas-Dresel Lukas-Dresel changed the title Feature: Make executors and feedbacks more easy to use without the full integration Feature: Make executors and feedbacks more easier to use outside of the normal fuzzing loop Sep 6, 2024
@Lukas-Dresel Lukas-Dresel changed the title Feature: Make executors and feedbacks more easier to use outside of the normal fuzzing loop Feature: Make executors and feedbacks more easier to use outside of the fuzzing loop Sep 6, 2024
@Lukas-Dresel Lukas-Dresel changed the title Feature: Make executors and feedbacks more easier to use outside of the fuzzing loop Feature: Make executors and feedbacks easier to use outside of the fuzzing loop Sep 6, 2024
@domenukk
Copy link
Member

domenukk commented Sep 8, 2024

@addisoncrump can you take a look? It might interfere with #2438 somewhat (?)

@domenukk
Copy link
Member

domenukk commented Sep 8, 2024

It would be nice to be able to use LibAFL components more easily outside of LibAFL's fuzzer harnessing (by which I mean the plug-and-play fuzzing loop) to allow for more reuse. For example, I found myself ripping my hair out over trying to just run the forkserver with an observer to simply collect, aggregate and plot coverage. To do so, I had to provide types for fuzzers, feedbacks, schedulers, etc. even though none of those things were relevant for my use-case.

ideally the normal run_target would already be reusable / have minimal generic bounds/ have sensible Nop Variants for easy use.
But it might be a goal that's harder to achieve :D

@addisoncrump
Copy link
Collaborator

Sorry for the delay -- lots of IRL stuff right now. I will look at this tomorrow.

@domenukk
Copy link
Member

Sorry for the delay, I think we can merge this.

@tokatoka
Copy link
Member

wait, i'll check this when i refactor (or before) executor.
don't merge now

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.

4 participants