-
Notifications
You must be signed in to change notification settings - Fork 419
Description
Describe the desired feature
Description
In some workflows, it would be useful to instruct a running Echidna instance to perform specific actions on demand:
- Add entries to the corpus
- Save the current corpus
- Stop shrinking
- etc
This is useful when running Echidna in "detached mode" (such as in a cloud environments), where humans or AI can operate in parallel to gather additional insights about the codebase during a long fuzzing session.
Proposal
Enable an external process to send commands to a running Echidna instance. Two possible approaches:
- POSIX Signal-Based Actions
Echidna could interpret specific signals as commands:
kill -SIGUSR1 # ACTION_SAVE_CORPUS
kill -SIGUSR2 # ACTION_STOP_SHRINKING
...
On receiving a signal, Echidna would enqueue the corresponding action to be processed safely at the next stable point in its loop.
- Alternative IPC
If signals are limiting, we can consider having an RPC/HTTP interface with a more robust API, but I'd estimate this requires considerable more work