aboutsummaryrefslogtreecommitdiff
path: root/PETools/PETools.format.ps1xml
blob: c5102818a04d4545d8d9dca8c9d27d7d82de1f87 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
<?xml version="1.0" encoding="utf-8" ?>
<Configuration>
    <SelectionSets>
            <SelectionSet>
                <Name>OptionHeaderTypes</Name>
                <Types>
                    <TypeName>PE+_IMAGE_OPTIONAL_HEADER32</TypeName>
                    <TypeName>PE+_IMAGE_OPTIONAL_HEADER64</TypeName>
                </Types>
            </SelectionSet>
        </SelectionSets>
    <ViewDefinitions>
        <View>
            <Name>PEView</Name>
            <ViewSelectedBy>
                <TypeName>PEHeader</TypeName>
            </ViewSelectedBy>
            <ListControl>
                <ListEntries>
                    <ListEntry>
                        <ListItems>
                            <ListItem>
                                <PropertyName>Module</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>DOSHeader</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>FileHeader</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>OptionalHeader</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>SectionHeaders</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>Imports</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>Exports</PropertyName>
                            </ListItem>
                        </ListItems>
                    </ListEntry>
                </ListEntries>
            </ListControl>
        </View>
        <View>
            <Name>OptionalHeaderView</Name>
            <ViewSelectedBy>
                <SelectionSetName>OptionHeaderTypes</SelectionSetName>
            </ViewSelectedBy>
            <ListControl>
                <ListEntries>
                    <ListEntry>
                        <ListItems>
                            <ListItem>
                                <PropertyName>Magic</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>MajorLinkerVersion</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>MinorLinkerVersion</PropertyName>
                            </ListItem>
                            <ListItem>
                                <Label>SizeOfCode</Label>
                                <ScriptBlock>"0x$($_.SizeOfCode.ToString('X8'))"</ScriptBlock>
                            </ListItem>
                            <ListItem>
                                <Label>SizeOfInitializedData</Label>
                                <ScriptBlock>"0x$($_.SizeOfInitializedData.ToString('X8'))"</ScriptBlock>
                            </ListItem>
                            <ListItem>
                                <Label>SizeOfUninitializedData</Label>
                                <ScriptBlock>"0x$($_.SizeOfUninitializedData.ToString('X8'))"</ScriptBlock>
                            </ListItem>
                            <ListItem>
                                <Label>AddressOfEntryPoint</Label>
                                <ScriptBlock>"0x$($_.AddressOfEntryPoint.ToString('X8'))"</ScriptBlock>
                            </ListItem>
                            <ListItem>
                                <Label>BaseOfCode</Label>
                                <ScriptBlock>"0x$($_.BaseOfCode.ToString('X8'))"</ScriptBlock>
                            </ListItem>
                            <ListItem>
                                <Label>BaseOfData</Label>
                                <ScriptBlock>"0x$($_.BaseOfData.ToString('X8'))"</ScriptBlock>
                            </ListItem>
                            <ListItem>
                                <Label>ImageBase</Label>
                                <ScriptBlock>if ($_.Magic.ToString() -eq 'PE32') { "0x$($_.ImageBase.ToString('X8'))" } else { "0x$($_.ImageBase.ToString('X16'))" }</ScriptBlock>
                            </ListItem>
                            <ListItem>
                                <Label>SectionAlignment</Label>
                                <ScriptBlock>"0x$($_.SectionAlignment.ToString('X8'))"</ScriptBlock>
                            </ListItem>
                            <ListItem>
                                <Label>FileAlignment</Label>
                                <ScriptBlock>"0x$($_.FileAlignment.ToString('X8'))"</ScriptBlock>
                            </ListItem>
                            <ListItem>
                                <PropertyName>MajorOperatingSystemVersion</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>MinorOperatingSystemVersion</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>MajorSubsystemVersion</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>MinorSubsystemVersion</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>Win32VersionValue</PropertyName>
                            </ListItem>
                            <ListItem>
                                <Label>SizeOfImage</Label>
                                <ScriptBlock>"0x$($_.SizeOfImage.ToString('X8'))"</ScriptBlock>
                            </ListItem>
                            <ListItem>
                                <Label>SizeOfHeaders</Label>
                                <ScriptBlock>"0x$($_.SizeOfHeaders.ToString('X8'))"</ScriptBlock>
                            </ListItem>
                            <ListItem>
                                <Label>CheckSum</Label>
                                <ScriptBlock>"0x$($_.CheckSum.ToString('X8'))"</ScriptBlock>
                            </ListItem>
                            <ListItem>
                                <PropertyName>Subsystem</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>DllCharacteristics</PropertyName>
                            </ListItem>
                            <ListItem>
                                <Label>SizeOfStackReserve</Label>
                                <ScriptBlock>if ($_.Magic.ToString() -eq 'PE32') { "0x$($_.SizeOfStackReserve.ToString('X8'))" } else { "0x$($_.SizeOfStackReserve.ToString('X16'))" }</ScriptBlock>
                            </ListItem>
                            <ListItem>
                                <Label>SizeOfStackCommit</Label>
                                <ScriptBlock>if ($_.Magic.ToString() -eq 'PE32') { "0x$($_.SizeOfStackCommit.ToString('X8'))" } else { "0x$($_.SizeOfStackCommit.ToString('X16'))" }</ScriptBlock>
                            </ListItem>
                            <ListItem>
                                <Label>SizeOfHeapReserve</Label>
                                <ScriptBlock>if ($_.Magic.ToString() -eq 'PE32') { "0x$($_.SizeOfHeapReserve.ToString('X8'))" } else { "0x$($_.SizeOfHeapReserve.ToString('X16'))" }</ScriptBlock>
                            </ListItem>
                            <ListItem>
                                <Label>SizeOfHeapCommit</Label>
                                <ScriptBlock>if ($_.Magic.ToString() -eq 'PE32') { "0x$($_.SizeOfHeapCommit.ToString('X8'))" } else { "0x$($_.SizeOfHeapCommit.ToString('X16'))" }</ScriptBlock>
                            </ListItem>
                            <ListItem>
                                <PropertyName>LoaderFlags</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>NumberOfRvaAndSizes</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>DataDirectory</PropertyName>
                            </ListItem>
                        </ListItems>
                    </ListEntry>
                </ListEntries>
            </ListControl>
        </View>
        <View>
		    <Name>SectionHeaderView</Name>
                <ViewSelectedBy>
		            <TypeName>PE+_IMAGE_SECTION_HEADER</TypeName>
		        </ViewSelectedBy>
                <TableControl>
                    <AutoSize/>
                    <TableHeaders>
                        <TableColumnHeader>
                            <Label>Name</Label>
                            <Alignment>Right</Alignment>
                        </TableColumnHeader>
                        <TableColumnHeader>
                            <Label>VirtualSize</Label>
                        </TableColumnHeader>
                        <TableColumnHeader>
                            <Label>VirtualAddress</Label>
                        </TableColumnHeader>
                        <TableColumnHeader>
                            <Label>SizeOfRawData</Label>
                        </TableColumnHeader>
                        <TableColumnHeader>
                            <Label>PointerToRawData</Label>
                        </TableColumnHeader>
                        <TableColumnHeader>
                            <Label>Characteristics</Label>
                            <Alignment>Left</Alignment>
                        </TableColumnHeader>
                    </TableHeaders>
                    <TableRowEntries>
                        <TableRowEntry>
                            <TableColumnItems>
                                <TableColumnItem>
                                    <Alignment>Right</Alignment>
                                    <PropertyName>Name</PropertyName>
                                </TableColumnItem>
                                <TableColumnItem>
                                    <ScriptBlock>"0x$($_.VirtualSize.ToString('X8'))"</ScriptBlock>
                                </TableColumnItem>
                                <TableColumnItem>
                                    <ScriptBlock>"0x$($_.VirtualAddress.ToString('X8'))"</ScriptBlock>
                                </TableColumnItem>
                                <TableColumnItem>
                                    <ScriptBlock>"0x$($_.SizeOfRawData.ToString('X8'))"</ScriptBlock>
                                </TableColumnItem>
                                <TableColumnItem>
                                    <ScriptBlock>"0x$($_.PointerToRawData.ToString('X8'))"</ScriptBlock>
                                </TableColumnItem>
                                <TableColumnItem>
                                    <PropertyName>Characteristics</PropertyName>
                                </TableColumnItem>
                            </TableColumnItems>
                        </TableRowEntry>
                    </TableRowEntries>
                </TableControl>
        </View>
        <View>
            <Name>FileHeaderView</Name>
            <ViewSelectedBy>
                <TypeName>PE+_IMAGE_FILE_HEADER</TypeName>
            </ViewSelectedBy>
            <ListControl>
                <ListEntries>
                    <ListEntry>
                        <ListItems>
                            <ListItem>
                                <PropertyName>Machine</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>NumberOfSections</PropertyName>
                            </ListItem>
                            <ListItem>
                                <Label>TimeDateStamp</Label>
                                <!-- GMT compile time -->
                                <ScriptBlock>(New-Object DateTime(1970, 1, 1, 0, 0, 0)).AddSeconds($_.TimeDateStamp)</ScriptBlock>
                                <!-- Compile time assuming it was compiled in Redmond, Washington (PST - GMT-8) -->
                                <!-- <ScriptBlock>(New-Object DateTime(1969, 12, 31, 16, 0, 0)).AddSeconds($_.TimeDateStamp)</ScriptBlock> -->
                            </ListItem>
                            <ListItem>
                                <PropertyName>PointerToSymbolTable</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>NumberOfSymbols</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>SizeOfOptionalHeader</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>Characteristics</PropertyName>
                            </ListItem>
                        </ListItems>
                    </ListEntry>
                </ListEntries>
            </ListControl>
        </View>
        <View>
            <Name>DataDirectoryView</Name>
                <ViewSelectedBy>
		            <TypeName>PE+_IMAGE_DATA_DIRECTORY</TypeName>
		        </ViewSelectedBy>
                <TableControl>
                    <AutoSize/>
                    <TableHeaders>
                        <TableColumnHeader>
                            <Label>VirtualAddress</Label>
                        </TableColumnHeader>
                        <TableColumnHeader>
                            <Label>Size</Label>
                        </TableColumnHeader>
                    </TableHeaders>
                    <TableRowEntries>
                        <TableRowEntry>
                            <TableColumnItems>
                                <TableColumnItem>
                                    <ScriptBlock>"0x$($_.VirtualAddress.ToString('X8'))"</ScriptBlock>
                                </TableColumnItem>
                                <TableColumnItem>
                                    <ScriptBlock>"0x$($_.Size.ToString('X8'))"</ScriptBlock>
                                </TableColumnItem>
                            </TableColumnItems>
                        </TableRowEntry>
                    </TableRowEntries>
                </TableControl>
        </View>
        <View>
            <Name>ImportView</Name>
                <ViewSelectedBy>
		            <TypeName>Import</TypeName>
		        </ViewSelectedBy>
                <TableControl>
                    <AutoSize/>
                    <TableHeaders>
                        <TableColumnHeader>
                            <Label>ModuleName</Label>
                            <Alignment>Right</Alignment>
                        </TableColumnHeader>
                        <TableColumnHeader>
                            <Label>VA/FT</Label>
                        </TableColumnHeader>
                        <TableColumnHeader>
                            <Label>Ordinal</Label>
                        </TableColumnHeader>
                        <TableColumnHeader>
                            <Label>FunctionName</Label>
                        </TableColumnHeader>
                    </TableHeaders>
                    <TableRowEntries>
                        <TableRowEntry>
                            <TableColumnItems>
                                <TableColumnItem>
                                    <Alignment>Right</Alignment>
                                    <PropertyName>ModuleName</PropertyName>
                                </TableColumnItem>
                                <TableColumnItem>
                                    <PropertyName>RVA</PropertyName>
                                </TableColumnItem>
                                <TableColumnItem>
                                    <PropertyName>Ordinal</PropertyName>
                                </TableColumnItem>
                                <TableColumnItem>
                                    <PropertyName>FunctionName</PropertyName>
                                </TableColumnItem>
                            </TableColumnItems>
                        </TableRowEntry>
                    </TableRowEntries>
                </TableControl>
        </View>
        <View>
            <Name>ExportView</Name>
                <ViewSelectedBy>
		            <TypeName>Export</TypeName>
		        </ViewSelectedBy>
                <TableControl>
                    <AutoSize/>
                    <TableHeaders>
                        <TableColumnHeader>
                            <Label>RVA</Label>
                        </TableColumnHeader>
                        <TableColumnHeader>
                            <Label>Ordinal</Label>
                        </TableColumnHeader>
                        <TableColumnHeader>
                            <Label>FunctionName</Label>
                        </TableColumnHeader>
                        <TableColumnHeader>
                            <Label>ForwardedName</Label>
                        </TableColumnHeader>
                    </TableHeaders>
                    <TableRowEntries>
                        <TableRowEntry>
                            <TableColumnItems>
                                <TableColumnItem>
                                    <PropertyName>RVA</PropertyName>
                                </TableColumnItem>
                                <TableColumnItem>
                                    <PropertyName>Ordinal</PropertyName>
                                </TableColumnItem>
                                <TableColumnItem>
                                    <PropertyName>FunctionName</PropertyName>
                                </TableColumnItem>
                                <TableColumnItem>
                                    <PropertyName>ForwardedName</PropertyName>
                                </TableColumnItem>
                            </TableColumnItems>
                        </TableRowEntry>
                    </TableRowEntries>
                </TableControl>
        </View>
    </ViewDefinitions>
</Configuration>