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

in_app persistent mode not working correctly #455

Open
personnumber3377 opened this issue Jan 17, 2025 · 1 comment
Open

in_app persistent mode not working correctly #455

personnumber3377 opened this issue Jan 17, 2025 · 1 comment

Comments

@personnumber3377
Copy link

Hi!

I have found a method inside a closed source binary and then patched the binary to go into a loop when executing the function of interest. (I added a jmp after the return from the target function such that it jumps back to the call instruction). The fuzzer seems to work correctly, however the persistence doesn't work, since it opens the entire program again on each fuzzing cycle. How to make it such that it actually loops correctly? The program is ORGCHART.EXE in microsoft office and you can read more about that here: https://personnumber3377.github.io/projects/fuzzing_orgchat.html . I am trying to essentially fuzz ORGCHART.EXE and I patched the binary such that it should loop the function of interest, however afl-fuzz opens the binary on each cycle again.

@ifratric
Copy link
Collaborator

ifratric commented Feb 4, 2025

Hi, I can't help with your target, but you can test the in_app persistent mode as described in https://github.com/googleprojectzero/winafl/blob/master/readme_dr.md#in-app-persistence-mode and report if you encounter problems with that.

But also, you shouldn't have to patch your target to run a function in a loop - by default, WinAFL's instrumentation will loop over the target function on its own. The in_app persistent mode is mostly useful when the target already loops over the target method for some reason.

Note that the target process being restarted for each iteration could be a sing that there is another issue with your setup and the target is being killed for this other reason and then restarted for each iteration.

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

2 participants