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

"process dead" issue that is not occured by WinAFL or other Fuzzer #55

Open
hyjun0407 opened this issue Feb 4, 2024 · 6 comments
Open

Comments

@hyjun0407
Copy link

Hello, I'm trying to use Jackalope, and I have a 'process death' issue that doesn't happen with winAFL or kAFL.
The fuzzer should be executed on the assumption that it is repeated and executed within the function fuzzme(), where Jackalope does not loop and the process 'dead'. It actually crash target process (WerFault.exe) and the target process dies.
What I suspect is that dlls that are targeting fuzzing will generate C++ exceptions (CPPEH), which JackAlpope does not seem to send to the original exception handler. I'm flustered that this problem hasn't happened with DynamicRIO or Host. What should I do in this case?

@hyjun0407
Copy link
Author

I already Tried with:
-generate_unwind
-patch_return_addresses

@hyjun0407
Copy link
Author

hyjun0407 commented Feb 4, 2024

Of course, after the target process dies, the program is start again, but the program I'm targeting should be Loopable because the initial initial process takes too long.

@ifratric
Copy link
Collaborator

ifratric commented Feb 5, 2024

Hi, could you share the output you're getting from Jackalope?

Does the test program work correctly for you:
fuzzer.exe -in in -out out -t 1000 -delivery shmem -instrument_module test.exe -target_module test.exe -target_method fuzz -nargs 1 -iterations 10000 -persist -loop -cmp_coverage -- test.exe -m @@

@hyjun0407
Copy link
Author

YES. I got everything ok with other things(original test.cpp) but, my harness's DLL make some Exception(C++ EH exception, in normal situation, it will be handle by program's handler) but It handle by Jackalope and Program died so I cant loop.
And I can't understand what do you mean for "output from jackalope"

@ifratric
Copy link
Collaborator

ifratric commented Feb 5, 2024

By "output from jackalope", I mean what Jackalope prints.
It's difficult to diagnose the issue without knowing more about your target, but if it was due to C++ exceptions, then -generate_unwind or patch_return_addresses should have fixed it. One other thing you can try is -stack_offset 1024.

@hyjun0407
Copy link
Author

Jackalope doesn't export any error messages. But, EXEC/s is zero, and only runs(exec increase) once every 10 seconds. (I can infer that it runs once and the process dies because the time for the first initialization is about 10 seconds, and when I look at it in Process Explorer, it's actually dying.) I'll try additional solutions and let you know the results right away.

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