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

AFL forkserver does not start in Unicorn Mode until an instruction is emulated #3

Open
njv299 opened this issue Nov 9, 2017 · 0 comments

Comments

@njv299
Copy link
Collaborator

njv299 commented Nov 9, 2017

The current Unicorn Mode patches are such that the AFL forkserver is not kicked off until an instruction is emulated. This leads to problems when fuzzing Unicorn test harnesses, because if the mutated input is retrieved from disk before the forks occur then the same input is repeatedly used and no fuzzing is ever actually performed.

A cleaner implementation of this would probably be to either:

  • Send the 'Start forkserver' whenever a UnicornEngine instance is created
    or
  • Add an API to UnicornEngine (or a derived class) specifically to start the fork server

For now the workaround is to just run a single instruction, then load the mutated input, then emulate the rest of the code (as discussed in the blog post, readme, and example test harnesses).

@njv299 njv299 changed the title AFL forkserver does not start until 1 instruction is emulated AFL forkserver does not start in Unicorn Mode until 1 instruction is emulated Nov 9, 2017
@njv299 njv299 changed the title AFL forkserver does not start in Unicorn Mode until 1 instruction is emulated AFL forkserver does not start in Unicorn Mode until an instruction is emulated Nov 9, 2017
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

No branches or pull requests

1 participant