1 pe-data-directories-export-table {
2 #Simple assembly has 2 sections since it doesn't have any resources
3 assembly simple-assembly.exe
6 valid offset pe-optional-header + 96 set-uint 0
7 valid offset pe-optional-header + 100 set-uint 0
10 invalid offset pe-optional-header + 96 set-uint 0x2000 , offset pe-optional-header + 100 set-uint 10
14 pe-data-directories-import-table {
15 #Simple assembly has 2 sections since it doesn't have any resources
16 assembly simple-assembly.exe
18 #The IT is 40 bytes long
19 invalid offset pe-optional-header + 108 set-uint 0
20 invalid offset pe-optional-header + 108 set-uint 8
21 invalid offset pe-optional-header + 108 set-uint 0x10
22 invalid offset pe-optional-header + 108 set-uint 0x20
23 invalid offset pe-optional-header + 108 set-uint 0x27
24 valid offset pe-optional-header + 108 set-uint 0x28
26 #RVA + size must bounds check against the size of the entry.
27 invalid offset pe-optional-header + 108 set-uint 0x900
30 pe-data-directories-bad-tables {
31 #Simple assembly has 2 sections since it doesn't have any resources
32 assembly simple-assembly.exe
35 invalid offset pe-optional-header + 96 set-uint 0x2000
38 invalid offset pe-optional-header + 120 set-uint 0x2000
40 #certificate some assemblies have it.
41 #invalid offset pe-optional-header + 128 set-uint 0x2000
43 #debug MS uses it for putting debug info in the assembly
44 #invalid offset pe-optional-header + 144 set-uint 0x2000
47 invalid offset pe-optional-header + 152 set-uint 0x2000
50 invalid offset pe-optional-header + 160 set-uint 0x2000
53 invalid offset pe-optional-header + 168 set-uint 0x2000
56 invalid offset pe-optional-header + 176 set-uint 0x2000
59 invalid offset pe-optional-header + 184 set-uint 0x2000
62 invalid offset pe-optional-header + 200 set-uint 0x2000
65 invalid offset pe-optional-header + 216 set-uint 0x2000
70 #Simple assembly has 2 sections since it doesn't have any resources
71 assembly simple-assembly.exe
73 #Invalid rva for the import lookup table
74 invalid offset translate.rva.ind ( pe-optional-header + 104 ) + 0 set-uint 0x88888
75 #Invalid rva for the name
76 invalid offset translate.rva.ind ( pe-optional-header + 104 ) + 12 set-uint 0x88888
77 #Invalid rva for the import address table
78 invalid offset translate.rva.ind ( pe-optional-header + 104 ) + 16 set-uint 0x88888
82 #Simple assembly has 2 sections since it doesn't have any resources
83 assembly simple-assembly.exe
85 #Bad RVA for the Hint/Name table
86 invalid offset translate.rva.ind ( translate.rva.ind ( pe-optional-header + 104 ) + 0 ) set-uint 0x88888
88 #Bad content in the Hint/Name table
89 invalid offset translate.rva.ind ( translate.rva.ind ( translate.rva.ind ( pe-optional-header + 104 ) ) ) + 2 set-uint 0x454c
93 #Simple assembly has 2 sections since it doesn't have any resources
94 assembly simple-assembly.exe
96 #Bad RVA for the Hint/Name table
97 #LAMEIMPL - MS ignores this
98 invalid offset translate.rva.ind ( translate.rva.ind ( pe-optional-header + 104 ) + 16 ) set-uint 0x88888
100 #Bad content in the Hint/Name table
101 invalid offset translate.rva.ind ( translate.rva.ind ( translate.rva.ind ( pe-optional-header + 104 ) + 16 ) ) + 2 set-uint 0x454c
104 pe-import-table-name {
105 #Simple assembly has 2 sections since it doesn't have any resources
106 assembly simple-assembly.exe
109 invalid offset translate.rva.ind ( translate.rva.ind ( pe-optional-header + 104 ) + 12 ) set-uint 0x454c
113 #Simple assembly has 2 sections since it doesn't have any resources
114 assembly simple-assembly.exe
116 #Bad RVA to the Hint/Name table
117 #LAMEIMPL - MS ignores this
118 invalid offset translate.rva.ind ( pe-optional-header + 192 ) set-uint 0x88880
120 #Bad content in the Hint/Name table
121 invalid offset translate.rva.ind ( translate.rva.ind ( pe-optional-header + 192 ) ) + 2 set-uint 0x454c