Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ PEHeader()

System.Reflection.PortableExecutable.PEHeader.PEHeader ( ref PEBinaryReader reader)
inlinepackage

Definition at line 98 of file PEHeader.cs.

99 {
100 PEMagic pEMagic = (PEMagic)reader.ReadUInt16();
101 if (pEMagic != PEMagic.PE32 && pEMagic != PEMagic.PE32Plus)
102 {
103 throw new BadImageFormatException(System.SR.UnknownPEMagicValue);
104 }
105 Magic = pEMagic;
106 MajorLinkerVersion = reader.ReadByte();
107 MinorLinkerVersion = reader.ReadByte();
108 SizeOfCode = reader.ReadInt32();
109 SizeOfInitializedData = reader.ReadInt32();
110 SizeOfUninitializedData = reader.ReadInt32();
111 AddressOfEntryPoint = reader.ReadInt32();
112 BaseOfCode = reader.ReadInt32();
113 if (pEMagic == PEMagic.PE32Plus)
114 {
115 BaseOfData = 0;
116 }
117 else
118 {
119 BaseOfData = reader.ReadInt32();
120 }
121 if (pEMagic == PEMagic.PE32Plus)
122 {
123 ImageBase = reader.ReadUInt64();
124 }
125 else
126 {
127 ImageBase = reader.ReadUInt32();
128 }
129 SectionAlignment = reader.ReadInt32();
130 FileAlignment = reader.ReadInt32();
131 MajorOperatingSystemVersion = reader.ReadUInt16();
132 MinorOperatingSystemVersion = reader.ReadUInt16();
133 MajorImageVersion = reader.ReadUInt16();
134 MinorImageVersion = reader.ReadUInt16();
135 MajorSubsystemVersion = reader.ReadUInt16();
136 MinorSubsystemVersion = reader.ReadUInt16();
137 reader.ReadUInt32();
138 SizeOfImage = reader.ReadInt32();
139 SizeOfHeaders = reader.ReadInt32();
140 CheckSum = reader.ReadUInt32();
141 Subsystem = (Subsystem)reader.ReadUInt16();
142 DllCharacteristics = (DllCharacteristics)reader.ReadUInt16();
143 if (pEMagic == PEMagic.PE32Plus)
144 {
145 SizeOfStackReserve = reader.ReadUInt64();
146 SizeOfStackCommit = reader.ReadUInt64();
147 SizeOfHeapReserve = reader.ReadUInt64();
148 SizeOfHeapCommit = reader.ReadUInt64();
149 }
150 else
151 {
152 SizeOfStackReserve = reader.ReadUInt32();
153 SizeOfStackCommit = reader.ReadUInt32();
154 SizeOfHeapReserve = reader.ReadUInt32();
155 SizeOfHeapCommit = reader.ReadUInt32();
156 }
157 reader.ReadUInt32();
158 NumberOfRvaAndSizes = reader.ReadInt32();
159 ExportTableDirectory = new DirectoryEntry(ref reader);
160 ImportTableDirectory = new DirectoryEntry(ref reader);
161 ResourceTableDirectory = new DirectoryEntry(ref reader);
162 ExceptionTableDirectory = new DirectoryEntry(ref reader);
163 CertificateTableDirectory = new DirectoryEntry(ref reader);
164 BaseRelocationTableDirectory = new DirectoryEntry(ref reader);
165 DebugTableDirectory = new DirectoryEntry(ref reader);
166 CopyrightTableDirectory = new DirectoryEntry(ref reader);
167 GlobalPointerTableDirectory = new DirectoryEntry(ref reader);
168 ThreadLocalStorageTableDirectory = new DirectoryEntry(ref reader);
169 LoadConfigTableDirectory = new DirectoryEntry(ref reader);
170 BoundImportTableDirectory = new DirectoryEntry(ref reader);
171 ImportAddressTableDirectory = new DirectoryEntry(ref reader);
172 DelayImportTableDirectory = new DirectoryEntry(ref reader);
173 CorHeaderTableDirectory = new DirectoryEntry(ref reader);
174 new DirectoryEntry(ref reader);
175 }
static string UnknownPEMagicValue
Definition SR.cs:56
Definition SR.cs:7

References System.Reflection.PortableExecutable.PEHeader.AddressOfEntryPoint, System.Reflection.PortableExecutable.PEHeader.BaseOfCode, System.Reflection.PortableExecutable.PEHeader.BaseOfData, System.Reflection.PortableExecutable.PEHeader.BaseRelocationTableDirectory, System.Reflection.PortableExecutable.PEHeader.BoundImportTableDirectory, System.Reflection.PortableExecutable.PEHeader.CertificateTableDirectory, System.Reflection.PortableExecutable.PEHeader.CheckSum, System.Reflection.PortableExecutable.PEHeader.CopyrightTableDirectory, System.Reflection.PortableExecutable.PEHeader.CorHeaderTableDirectory, System.Reflection.PortableExecutable.PEHeader.DebugTableDirectory, System.Reflection.PortableExecutable.PEHeader.DelayImportTableDirectory, System.Reflection.PortableExecutable.PEHeader.DllCharacteristics, System.Reflection.PortableExecutable.PEHeader.ExceptionTableDirectory, System.Reflection.PortableExecutable.PEHeader.ExportTableDirectory, System.Reflection.PortableExecutable.PEHeader.FileAlignment, System.Reflection.PortableExecutable.PEHeader.GlobalPointerTableDirectory, System.Reflection.PortableExecutable.PEHeader.ImageBase, System.Reflection.PortableExecutable.PEHeader.ImportAddressTableDirectory, System.Reflection.PortableExecutable.PEHeader.ImportTableDirectory, System.Reflection.PortableExecutable.PEHeader.LoadConfigTableDirectory, System.Reflection.PortableExecutable.PEHeader.Magic, System.Reflection.PortableExecutable.PEHeader.MajorImageVersion, System.Reflection.PortableExecutable.PEHeader.MajorLinkerVersion, System.Reflection.PortableExecutable.PEHeader.MajorOperatingSystemVersion, System.Reflection.PortableExecutable.PEHeader.MajorSubsystemVersion, System.Reflection.PortableExecutable.PEHeader.MinorImageVersion, System.Reflection.PortableExecutable.PEHeader.MinorLinkerVersion, System.Reflection.PortableExecutable.PEHeader.MinorOperatingSystemVersion, System.Reflection.PortableExecutable.PEHeader.MinorSubsystemVersion, System.Reflection.PortableExecutable.PEHeader.NumberOfRvaAndSizes, System.Reflection.PortableExecutable.PEHeader.ResourceTableDirectory, System.Reflection.PortableExecutable.PEHeader.SectionAlignment, System.Reflection.PortableExecutable.PEHeader.SizeOfCode, System.Reflection.PortableExecutable.PEHeader.SizeOfHeaders, System.Reflection.PortableExecutable.PEHeader.SizeOfHeapCommit, System.Reflection.PortableExecutable.PEHeader.SizeOfHeapReserve, System.Reflection.PortableExecutable.PEHeader.SizeOfImage, System.Reflection.PortableExecutable.PEHeader.SizeOfInitializedData, System.Reflection.PortableExecutable.PEHeader.SizeOfStackCommit, System.Reflection.PortableExecutable.PEHeader.SizeOfStackReserve, System.Reflection.PortableExecutable.PEHeader.SizeOfUninitializedData, System.Reflection.PortableExecutable.PEHeader.Subsystem, System.Reflection.PortableExecutable.PEHeader.ThreadLocalStorageTableDirectory, and System.SR.UnknownPEMagicValue.