예제 #1
0
            public override void Write(StackTraceUnobfuscationResult res, Version target, Stream stream)
            {
                using (var writer = new StreamWriter(stream, Encoding.UTF8, 2048, true))
                {
                    foreach (var frame in res.StackFrames)
                    {
                        var alternatives = frame.Alternatives;
                        var best         = alternatives.FirstOrDefault();

                        if (best == null)
                        {
                            writer.WriteLine($"{frame.InputStackLine}?");
                        }
                        else
                        {
                            if (VersionUtils.NumEqual(best.VersionNumber, target) >= 3)
                            {
                                writer.WriteLine(best.Unfuscated);
                            }
                            else
                            {
                                writer.WriteLine(best.Unfuscated + "(v" + alternatives[0].Version + ")");
                            }
                        }
                    }
                }
            }
예제 #2
0
 public static void Write(this ResultWriter writer, StackTraceUnobfuscationResult res, Version target, TextWriter textWriter)
 {
     using (MemoryStream ms = new MemoryStream())
     {
         writer.Write(res, target, ms);
         ms.Seek(0, 0);
         using (var streamReader = new StreamReader(ms))
         {
             textWriter.Write(streamReader.ReadToEnd());
         }
     }
 }
예제 #3
0
            public override void Write(StackTraceUnobfuscationResult res, Version target, Stream stream)
            {
                DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(StackTraceUnobfuscationResult));

                serializer.WriteObject(stream, res);
            }
예제 #4
0
 /// <summary>
 ///   Writes the un-obfuscation result to a stream.
 /// </summary>
 /// <param name="res">Result to write.</param>
 /// <param name="target">The known version of the obfuscated stacktrace. (optional).</param>
 /// <param name="stream">Output stream.</param>
 public abstract void Write(StackTraceUnobfuscationResult res, Version target, Stream stream);