public ParsedInfo ParseStream(Stream stream) { if (stream == null) { throw new ArgumentNullException(nameof(stream)); } if (stream.Length < 512) { return null; } stream.Position = 0; if (stream.ReadByte() != MagicNumber[0] || stream.ReadByte() != MagicNumber[1]) { return null; } var seagments = new List<Seagment>(); var buffer = new byte[2]; foreach (var param in ExeParams) { var seagment = new Seagment(param.startIndex, param.length); stream.Position = param.startIndex; seagment.Description = param.languageKey; stream.Read(buffer, 0, 2); seagment.Value = $"0x{(buffer[0] + (buffer[1] << 8)).ToString("X")}"; seagments.Add(seagment); } return new ParsedInfo(seagments) { ParsedType = "Exe" }; }
public ParsedInfo ParseStream(Stream stream) { var seagments = new Seagment[] { new Seagment(0, 64) { Description = "DemoProperty", Value = "DemoValue" }, new Seagment(64, 64) { Description = "DemoProperty2", Value = "DemoValue2" } }; return(new ParsedInfo(seagments)); }