コード例 #1
0
        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"
            };
        }
コード例 #2
0
        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));
        }