sharpfuzz
sharpfuzz copied to clipboard
Windows support
Is Sharpfuzz available on windows?
Yes! Latest SharpFuzz release (2.0.0) supports libFuzzer on Windows (https://github.com/Metalnem/sharpfuzz/pull/24).
SharpFuzz documentation for libFuzzer (https://github.com/Metalnem/sharpfuzz/blob/master/docs/libFuzzer.md) still doesn't have the necessary instructions for using it on Windows, though. I plan to fix that, but I don't know yet when it will happen.
Actually, I think @ranweiler already wrote the documentation :) https://github.com/microsoft/onefuzz/blob/main/src/agent/LibFuzzerDotnetLoader/README.md
Actually, I think @ranweiler already wrote the documentation :) https://github.com/microsoft/onefuzz/blob/main/src/agent/LibFuzzerDotnetLoader/README.md
☺️ Note for end users: these docs are mostly for an auxiliary project that is part of OneFuzz, and mostly describe additional features that require that project.
However, this section is still relevant, and replaces Step 4 in the main docs. The only difference when using SharpFuzz on Windows that you need to compile a different source file to get libfuzzer-dotnet.exe
.
Hello, @ranweiler and @Metalnem! I don't understand how the fuzzer knows that the program's status is CRUSH. When does he recieve "2" through the channel? Or how? Because there is no SIGSEGV, SIGABRT, SIGILL in Windows. Thanks for your reply!
Fuzzer executes the user-provided function inside the try-catch block. If it catches an exception, it reports it as a crash to the fuzzing backend:
https://github.com/Metalnem/sharpfuzz/blob/master/src/SharpFuzz/Fuzzer.cs#L359