AFLplusplus / LibAFL

Advanced Fuzzing Library - Slot your Fuzzer together in Rust! Scales across cores and machines. For Windows, Android, MacOS, Linux, no_std, ...
Other
2.03k stars 316 forks source link

Implement a method to compute state metadata from an Observer #25

Closed andreafioraldi closed 3 years ago

andreafioraldi commented 3 years ago

At the moment, a Feedback can process an Observer and produce just testcase metadata.

As Feedback it related to the Corpus evolution, and as part of State cannot handle State for borrowing reasons, I propose to add state metadata based on observers in the post_exec() method of Executor.

We should create the MetaCollectorExecutor trait that override post_exec and forward it to an underlying base implementation.

Something like

let executor = DictionaryCollectorExecutor::new(InProcessExecutor::new(...));
andreafioraldi commented 3 years ago

This will imply that there will be some observers just for this that are never used in any feedback. We should avoid to pack them when sending the NewTestcase event.

I'm thinking about different solutions to do this:

andreafioraldi commented 3 years ago

Done with #84