You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Parallel fuzzing requires refactoring of coverage collection. Right now, coverage is collected in the child process and the new coverage is sent over a pipe shared between parent and child. The parent then compares the new coverage with the coverage previously stored (by the parent) and in case it increased, stores the binary returned by the child process.
The current approach has a number of limitations:
Coverage is recorded in the child process only. In case of multiple child processes, a sample may be considered to lead to new paths, while it just lead to a new path in a specific child process.
Binaries are needlessly sent back from child to parent, while the parent needs to keep the sample anyways to handle cases where the child process hangs or times out
The information returned is either a number (the current coverage) or the text of an exception. Ideally, the format should be more structured (e.g. a JSON document).
Design:
Child processes
The tracer is changed such that it can be reset.
Read the next job from the job queue
Reset the tracer
Put a status message into the result queue before execution the target
Run the target
If the target ran successfully, put report message into result queue
If the target crashed, put an error reported into the result queue
Utilize multiple CPU cores for fuzzing.
Parallel fuzzing requires refactoring of coverage collection. Right now, coverage is collected in the child process and the new coverage is sent over a pipe shared between parent and child. The parent then compares the new coverage with the coverage previously stored (by the parent) and in case it increased, stores the binary returned by the child process.
The current approach has a number of limitations:
Design:
Child processes
The tracer is changed such that it can be reset.
Status report
Coverage report
Error report
Parent process
Job
The text was updated successfully, but these errors were encountered: