From d80eec8cbaadcb6c17c375291aec7d93b4863ea1 Mon Sep 17 00:00:00 2001 From: Solomon Rutzky Date: Sun, 30 Aug 2020 18:06:44 -0400 Subject: [PATCH] Fix several "Size" values in OptionalHeader All of the UInt16 values were given a size of 4 when they really should be 2. --- ILSpy/Metadata/OptionalHeaderTreeNode.cs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/ILSpy/Metadata/OptionalHeaderTreeNode.cs b/ILSpy/Metadata/OptionalHeaderTreeNode.cs index cc7c6db30..a26b55f6c 100644 --- a/ILSpy/Metadata/OptionalHeaderTreeNode.cs +++ b/ILSpy/Metadata/OptionalHeaderTreeNode.cs @@ -74,18 +74,18 @@ namespace ICSharpCode.ILSpy.Metadata entries.Add(new Entry(reader.Offset, header.Magic == PEMagic.PE32Plus ? reader.ReadUInt64() : reader.ReadUInt32(), header.Magic == PEMagic.PE32Plus ? 8 : 4, "Image Base", "Shall be a multiple of 0x10000.")); entries.Add(new Entry(reader.Offset, reader.ReadInt32(), 4, "Section Alignment", "Shall be greater than File Alignment.")); entries.Add(new Entry(reader.Offset, reader.ReadInt32(), 4, "File Alignment", "")); - entries.Add(new Entry(reader.Offset, reader.ReadUInt16(), 4, "Major OS Version", "")); - entries.Add(new Entry(reader.Offset, reader.ReadUInt16(), 4, "Minor OS Version", "")); - entries.Add(new Entry(reader.Offset, reader.ReadUInt16(), 4, "Major Image Version", "")); - entries.Add(new Entry(reader.Offset, reader.ReadUInt16(), 4, "Minor Image Version", "")); - entries.Add(new Entry(reader.Offset, reader.ReadUInt16(), 4, "Major Subsystem Version", "")); - entries.Add(new Entry(reader.Offset, reader.ReadUInt16(), 4, "Minor Subsystem Version", "")); + entries.Add(new Entry(reader.Offset, reader.ReadUInt16(), 2, "Major OS Version", "")); + entries.Add(new Entry(reader.Offset, reader.ReadUInt16(), 2, "Minor OS Version", "")); + entries.Add(new Entry(reader.Offset, reader.ReadUInt16(), 2, "Major Image Version", "")); + entries.Add(new Entry(reader.Offset, reader.ReadUInt16(), 2, "Minor Image Version", "")); + entries.Add(new Entry(reader.Offset, reader.ReadUInt16(), 2, "Major Subsystem Version", "")); + entries.Add(new Entry(reader.Offset, reader.ReadUInt16(), 2, "Minor Subsystem Version", "")); entries.Add(new Entry(reader.Offset, reader.ReadUInt32(), 4, "Win32VersionValue", "")); entries.Add(new Entry(reader.Offset, reader.ReadInt32(), 4, "Image Size", "Size, in bytes, of image, including all headers and padding; shall be a multiple of Section Alignment.")); entries.Add(new Entry(reader.Offset, reader.ReadInt32(), 4, "Header Size", "Combined size of MS-DOS Header, PE Header, PE Optional Header and padding; shall be a multiple of the file alignment.")); entries.Add(new Entry(reader.Offset, reader.ReadInt32(), 4, "File Checksum", "")); - entries.Add(new Entry(reader.Offset, reader.ReadUInt16(), 4, "Subsystem", header.Subsystem.ToString())); - entries.Add(new Entry(reader.Offset, reader.ReadUInt16(), 4, "DLL Characteristics", header.DllCharacteristics.ToString())); + entries.Add(new Entry(reader.Offset, reader.ReadUInt16(), 2, "Subsystem", header.Subsystem.ToString())); + entries.Add(new Entry(reader.Offset, reader.ReadUInt16(), 2, "DLL Characteristics", header.DllCharacteristics.ToString())); entries.Add(new Entry(reader.Offset, header.Magic == PEMagic.PE32Plus ? reader.ReadUInt64() : reader.ReadUInt32(), header.Magic == PEMagic.PE32Plus ? 8 : 4, "Stack Reserve Size", "")); entries.Add(new Entry(reader.Offset, header.Magic == PEMagic.PE32Plus ? reader.ReadUInt64() : reader.ReadUInt32(), header.Magic == PEMagic.PE32Plus ? 8 : 4, "Stack Commit Size", "")); entries.Add(new Entry(reader.Offset, header.Magic == PEMagic.PE32Plus ? reader.ReadUInt64() : reader.ReadUInt32(), header.Magic == PEMagic.PE32Plus ? 8 : 4, "Heap Reserve Size", ""));