Skip to content

Debug info disappeared after Sharpfuzz intrumentation #61

@headshog

Description

@headshog

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)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions