sharpfuzz icon indicating copy to clipboard operation
sharpfuzz copied to clipboard

Debug info disappeared after Sharpfuzz intrumentation

Open headshog opened this issue 1 year ago • 0 comments

Hi! I am using Casr to analyze program crashes found with Sharpfuzz. But the problem is that Casr analyzes stacktraces reproduced by crashes, but the debug-info in target binary disappears after Sharpfuzz instrumentation. For example: Stacktrace without Sharpfuzz intrumentation:

Unhandled exception. System.ArgumentException: Global tags must be valid URIs. (Parameter 'value')
   at YamlDotNet.Core.TagName..ctor(String value) in /YamlDotNet/YamlDotNet/Core/TagName.cs:line 51
   at YamlDotNet.Core.Parser.ParseNode(Boolean isBlock, Boolean isIndentlessSequence) in /YamlDotNet/YamlDotNet/Core/Parser.cs:line 496
   at YamlDotNet.Core.Parser.StateMachine() in /YamlDotNet/YamlDotNet/Core/Parser.cs:line 134
   at YamlDotNet.Core.Parser.MoveNext() in /YamlDotNet/YamlDotNet/Core/Parser.cs:line 107
   at YamlDotNet.Core.ParserExtensions.TryConsume[T](IParser parser, T& event) in /YamlDotNet/YamlDotNet/Core/ParserExtensions.cs:line 58
   at YamlDotNet.Serialization.Deserializer.Deserialize(IParser parser, Type type) in /YamlDotNet/YamlDotNet/Serialization/Deserializer.cs:line 131
   at YamlDotNet.Serialization.Deserializer.Deserialize(TextReader input, Type type) in /YamlDotNet/YamlDotNet/Serialization/Deserializer.cs:line 108
   at YamlDotNet.Serialization.Deserializer.Deserialize(TextReader input) in /YamlDotNet/YamlDotNet/Serialization/Deserializer.cs:line 92
   at Program.<>c__DisplayClass0_0.<Main>b__0(Stream stream) in /afl_build_fuzz/ProgramAFL.cs:line 40
   at SharpFuzz.Fuzzer.RunWithoutAflFuzz(Action`1 action, Stream stream)
   at SharpFuzz.Fuzzer.OutOfProcess.Run(Action`1 action)
   at Program.Main(String[] args) in /afl_build_fuzz/ProgramAFL.cs:line 30

Stacktrace after Sharpfuzz intrumentation:

Unhandled exception. System.ArgumentException: Global tags must be valid URIs. (Parameter 'value')
   at YamlDotNet.Core.TagName..ctor(String value)
   at YamlDotNet.Core.Parser.ParseNode(Boolean isBlock, Boolean isIndentlessSequence)
   at YamlDotNet.Core.Parser.StateMachine()
   at YamlDotNet.Core.Parser.MoveNext()
   at YamlDotNet.Core.ParserExtensions.TryConsume[T](IParser parser, T& event)
   at YamlDotNet.Serialization.Deserializer.Deserialize(IParser parser, Type type)
   at YamlDotNet.Serialization.Deserializer.Deserialize(TextReader input, Type type)
   at YamlDotNet.Serialization.Deserializer.Deserialize(TextReader input)
   at Program.<>c__DisplayClass0_0.<Main>b__0(Stream stream) in /afl_build_fuzz/ProgramAFL.cs:line 40
   at SharpFuzz.Fuzzer.RunWithoutAflFuzz(Action`1 action, Stream stream)
   at SharpFuzz.Fuzzer.OutOfProcess.Run(Action`1 action)
   at Program.Main(String[] args) in /afl_build_fuzz/ProgramAFL.cs:line 30

Why is it so? And is it possible for Sharpfuzz not to remove this debug-info? It would be really nice, because it makes crash triage pipeline much easier)

headshog avatar Apr 08 '24 10:04 headshog