Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
PEHeader.cs
Go to the documentation of this file.
1
namespace
System.Reflection.PortableExecutable
;
2
3
public
sealed
class
PEHeader
4
{
5
internal
const
int
OffsetOfChecksum
= 64;
6
7
public
PEMagic
Magic
{
get
; }
8
9
public
byte
MajorLinkerVersion
{
get
; }
10
11
public
byte
MinorLinkerVersion
{
get
; }
12
13
public
int
SizeOfCode
{
get
; }
14
15
public
int
SizeOfInitializedData
{
get
; }
16
17
public
int
SizeOfUninitializedData
{
get
; }
18
19
public
int
AddressOfEntryPoint
{
get
; }
20
21
public
int
BaseOfCode
{
get
; }
22
23
public
int
BaseOfData
{
get
; }
24
25
public
ulong
ImageBase
{
get
; }
26
27
public
int
SectionAlignment
{
get
; }
28
29
public
int
FileAlignment
{
get
; }
30
31
public
ushort
MajorOperatingSystemVersion
{
get
; }
32
33
public
ushort
MinorOperatingSystemVersion
{
get
; }
34
35
public
ushort
MajorImageVersion
{
get
; }
36
37
public
ushort
MinorImageVersion
{
get
; }
38
39
public
ushort
MajorSubsystemVersion
{
get
; }
40
41
public
ushort
MinorSubsystemVersion
{
get
; }
42
43
public
int
SizeOfImage
{
get
; }
44
45
public
int
SizeOfHeaders
{
get
; }
46
47
public
uint
CheckSum
{
get
; }
48
49
public
Subsystem
Subsystem
{
get
; }
50
51
public
DllCharacteristics
DllCharacteristics
{
get
; }
52
53
public
ulong
SizeOfStackReserve
{
get
; }
54
55
public
ulong
SizeOfStackCommit
{
get
; }
56
57
public
ulong
SizeOfHeapReserve
{
get
; }
58
59
public
ulong
SizeOfHeapCommit
{
get
; }
60
61
public
int
NumberOfRvaAndSizes
{
get
; }
62
63
public
DirectoryEntry
ExportTableDirectory
{
get
; }
64
65
public
DirectoryEntry
ImportTableDirectory
{
get
; }
66
67
public
DirectoryEntry
ResourceTableDirectory
{
get
; }
68
69
public
DirectoryEntry
ExceptionTableDirectory
{
get
; }
70
71
public
DirectoryEntry
CertificateTableDirectory
{
get
; }
72
73
public
DirectoryEntry
BaseRelocationTableDirectory
{
get
; }
74
75
public
DirectoryEntry
DebugTableDirectory
{
get
; }
76
77
public
DirectoryEntry
CopyrightTableDirectory
{
get
; }
78
79
public
DirectoryEntry
GlobalPointerTableDirectory
{
get
; }
80
81
public
DirectoryEntry
ThreadLocalStorageTableDirectory
{
get
; }
82
83
public
DirectoryEntry
LoadConfigTableDirectory
{
get
; }
84
85
public
DirectoryEntry
BoundImportTableDirectory
{
get
; }
86
87
public
DirectoryEntry
ImportAddressTableDirectory
{
get
; }
88
89
public
DirectoryEntry
DelayImportTableDirectory
{
get
; }
90
91
public
DirectoryEntry
CorHeaderTableDirectory
{
get
; }
92
93
internal
static
int
Size
(
bool
is32Bit)
94
{
95
return
72 + 4 * (is32Bit ? 4 : 8) + 4 + 4 + 128;
96
}
97
98
internal
PEHeader
(ref
PEBinaryReader
reader)
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
}
176
}
System.BadImageFormatException
Definition
BadImageFormatException.cs:10
System.Reflection.PortableExecutable.PEHeader.ImageBase
ulong ImageBase
Definition
PEHeader.cs:25
System.Reflection.PortableExecutable.PEHeader.BoundImportTableDirectory
DirectoryEntry BoundImportTableDirectory
Definition
PEHeader.cs:85
System.Reflection.PortableExecutable.PEHeader.MajorImageVersion
ushort MajorImageVersion
Definition
PEHeader.cs:35
System.Reflection.PortableExecutable.PEHeader.MinorOperatingSystemVersion
ushort MinorOperatingSystemVersion
Definition
PEHeader.cs:33
System.Reflection.PortableExecutable.PEHeader.MinorLinkerVersion
byte MinorLinkerVersion
Definition
PEHeader.cs:11
System.Reflection.PortableExecutable.PEHeader.PEHeader
PEHeader(ref PEBinaryReader reader)
Definition
PEHeader.cs:98
System.Reflection.PortableExecutable.PEHeader.ImportTableDirectory
DirectoryEntry ImportTableDirectory
Definition
PEHeader.cs:65
System.Reflection.PortableExecutable.PEHeader.ExportTableDirectory
DirectoryEntry ExportTableDirectory
Definition
PEHeader.cs:63
System.Reflection.PortableExecutable.PEHeader.BaseOfData
int BaseOfData
Definition
PEHeader.cs:23
System.Reflection.PortableExecutable.PEHeader.SizeOfImage
int SizeOfImage
Definition
PEHeader.cs:43
System.Reflection.PortableExecutable.PEHeader.BaseRelocationTableDirectory
DirectoryEntry BaseRelocationTableDirectory
Definition
PEHeader.cs:73
System.Reflection.PortableExecutable.PEHeader.ResourceTableDirectory
DirectoryEntry ResourceTableDirectory
Definition
PEHeader.cs:67
System.Reflection.PortableExecutable.PEHeader.DebugTableDirectory
DirectoryEntry DebugTableDirectory
Definition
PEHeader.cs:75
System.Reflection.PortableExecutable.PEHeader.DllCharacteristics
DllCharacteristics DllCharacteristics
Definition
PEHeader.cs:51
System.Reflection.PortableExecutable.PEHeader.SizeOfCode
int SizeOfCode
Definition
PEHeader.cs:13
System.Reflection.PortableExecutable.PEHeader.AddressOfEntryPoint
int AddressOfEntryPoint
Definition
PEHeader.cs:19
System.Reflection.PortableExecutable.PEHeader.MinorImageVersion
ushort MinorImageVersion
Definition
PEHeader.cs:37
System.Reflection.PortableExecutable.PEHeader.MajorLinkerVersion
byte MajorLinkerVersion
Definition
PEHeader.cs:9
System.Reflection.PortableExecutable.PEHeader.DelayImportTableDirectory
DirectoryEntry DelayImportTableDirectory
Definition
PEHeader.cs:89
System.Reflection.PortableExecutable.PEHeader.LoadConfigTableDirectory
DirectoryEntry LoadConfigTableDirectory
Definition
PEHeader.cs:83
System.Reflection.PortableExecutable.PEHeader.FileAlignment
int FileAlignment
Definition
PEHeader.cs:29
System.Reflection.PortableExecutable.PEHeader.CopyrightTableDirectory
DirectoryEntry CopyrightTableDirectory
Definition
PEHeader.cs:77
System.Reflection.PortableExecutable.PEHeader.SizeOfStackCommit
ulong SizeOfStackCommit
Definition
PEHeader.cs:55
System.Reflection.PortableExecutable.PEHeader.SizeOfHeapReserve
ulong SizeOfHeapReserve
Definition
PEHeader.cs:57
System.Reflection.PortableExecutable.PEHeader.MajorOperatingSystemVersion
ushort MajorOperatingSystemVersion
Definition
PEHeader.cs:31
System.Reflection.PortableExecutable.PEHeader.NumberOfRvaAndSizes
int NumberOfRvaAndSizes
Definition
PEHeader.cs:61
System.Reflection.PortableExecutable.PEHeader.BaseOfCode
int BaseOfCode
Definition
PEHeader.cs:21
System.Reflection.PortableExecutable.PEHeader.SizeOfHeaders
int SizeOfHeaders
Definition
PEHeader.cs:45
System.Reflection.PortableExecutable.PEHeader.GlobalPointerTableDirectory
DirectoryEntry GlobalPointerTableDirectory
Definition
PEHeader.cs:79
System.Reflection.PortableExecutable.PEHeader.CertificateTableDirectory
DirectoryEntry CertificateTableDirectory
Definition
PEHeader.cs:71
System.Reflection.PortableExecutable.PEHeader.Subsystem
Subsystem Subsystem
Definition
PEHeader.cs:49
System.Reflection.PortableExecutable.PEHeader.SizeOfInitializedData
int SizeOfInitializedData
Definition
PEHeader.cs:15
System.Reflection.PortableExecutable.PEHeader.CorHeaderTableDirectory
DirectoryEntry CorHeaderTableDirectory
Definition
PEHeader.cs:91
System.Reflection.PortableExecutable.PEHeader.Magic
PEMagic Magic
Definition
PEHeader.cs:7
System.Reflection.PortableExecutable.PEHeader.ThreadLocalStorageTableDirectory
DirectoryEntry ThreadLocalStorageTableDirectory
Definition
PEHeader.cs:81
System.Reflection.PortableExecutable.PEHeader.SizeOfUninitializedData
int SizeOfUninitializedData
Definition
PEHeader.cs:17
System.Reflection.PortableExecutable.PEHeader.SizeOfHeapCommit
ulong SizeOfHeapCommit
Definition
PEHeader.cs:59
System.Reflection.PortableExecutable.PEHeader.SizeOfStackReserve
ulong SizeOfStackReserve
Definition
PEHeader.cs:53
System.Reflection.PortableExecutable.PEHeader.Size
static int Size(bool is32Bit)
Definition
PEHeader.cs:93
System.Reflection.PortableExecutable.PEHeader.MajorSubsystemVersion
ushort MajorSubsystemVersion
Definition
PEHeader.cs:39
System.Reflection.PortableExecutable.PEHeader.ExceptionTableDirectory
DirectoryEntry ExceptionTableDirectory
Definition
PEHeader.cs:69
System.Reflection.PortableExecutable.PEHeader.ImportAddressTableDirectory
DirectoryEntry ImportAddressTableDirectory
Definition
PEHeader.cs:87
System.Reflection.PortableExecutable.PEHeader.OffsetOfChecksum
const int OffsetOfChecksum
Definition
PEHeader.cs:5
System.Reflection.PortableExecutable.PEHeader.SectionAlignment
int SectionAlignment
Definition
PEHeader.cs:27
System.Reflection.PortableExecutable.PEHeader.MinorSubsystemVersion
ushort MinorSubsystemVersion
Definition
PEHeader.cs:41
System.Reflection.PortableExecutable.PEHeader.CheckSum
uint CheckSum
Definition
PEHeader.cs:47
System.Reflection.PortableExecutable.PEHeader
Definition
PEHeader.cs:4
System.SR.UnknownPEMagicValue
static string UnknownPEMagicValue
Definition
SR.cs:56
System.SR
Definition
SR.cs:7
System.Reflection.PortableExecutable.DllCharacteristics
DllCharacteristics
Definition
DllCharacteristics.cs:5
System.Reflection.PortableExecutable.Subsystem
Subsystem
Definition
Subsystem.cs:4
System.Reflection.PortableExecutable.PEMagic
PEMagic
Definition
PEMagic.cs:4
System.Reflection.PortableExecutable
Definition
Characteristics.cs:1
System
Definition
BlockingCollection.cs:8
System.Reflection.PortableExecutable.DirectoryEntry
Definition
DirectoryEntry.cs:4
System.Reflection.PortableExecutable.PEBinaryReader
Definition
PEBinaryReader.cs:7
source
System.Reflection.Metadata
System.Reflection.PortableExecutable
PEHeader.cs
Generated by
1.10.0