2 assembly simple-assembly.exe
5 valid offset translate.rva.ind ( cli-header + 8 ) set-uint 0x424A5342
6 valid offset cli-metadata + 0 set-uint 0x424A5342
8 invalid offset cli-metadata + 0 set-uint 0x434A5342
9 invalid offset cli-metadata + 0 set-uint 0x42455342
10 invalid offset cli-metadata + 0 set-uint 0x424A0342
11 invalid offset cli-metadata + 0 set-uint 0x424A5332
13 #we don't care about major/minor versions no runtime cares about them
16 invalid offset cli-header + 12 set-uint 15
17 invalid offset cli-header + 12 set-uint 20
18 invalid offset cli-header + 12 set-uint 30
20 #version name is irrelevant as well
22 #the stream must have exactly 5 streams
23 valid offset cli-metadata + 16 + read.uint ( cli-metadata + 12 ) + 2 set-ushort 5
24 invalid offset cli-metadata + 16 + read.uint ( cli-metadata + 12 ) + 2 set-ushort 4
27 cli-metadata-stream-headers {
28 assembly simple-assembly.exe
29 #simple-assembly has version v2.0.50727 so the heade takes 32 bytes
32 valid offset cli-metadata + 32 set-uint 0x6c
33 valid offset stream-header ( 0 ) + 0 set-uint 0x6c
36 invalid offset cli-header + 12 set-uint 34
37 invalid offset cli-header + 12 set-uint 39
40 #offset doesn't bounds check
41 invalid offset stream-header ( 0 ) + 0 set-uint 0x888888
42 invalid offset stream-header ( 1 ) + 0 set-uint 0x888888
43 invalid offset stream-header ( 2 ) + 0 set-uint 0x888888
44 invalid offset stream-header ( 3 ) + 0 set-uint 0x888888
45 invalid offset stream-header ( 4 ) + 0 set-uint 0x888888
47 #size doesn't bounds check
48 invalid offset stream-header ( 0 ) + 4 set-uint 0x888888
49 invalid offset stream-header ( 1 ) + 4 set-uint 0x888888
50 invalid offset stream-header ( 2 ) + 4 set-uint 0x888888
51 invalid offset stream-header ( 3 ) + 4 set-uint 0x888888
52 invalid offset stream-header ( 4 ) + 4 set-uint 0x888888
55 invalid offset stream-header ( 0 ) + 8 set-byte 0x42
57 #duplicate name, change #~ to #US
58 invalid offset stream-header ( 0 ) + 9 set-byte 0x55 , offset stream-header ( 0 ) + 10 set-byte 0x53