2 # The following are examples of input sequences that almost look like
3 # predefined nop instruction sequences, but differ by 1, just to show
4 # that we do reject them.
10 # This is the correct nop case.
13 # This is an example where we have incremented the nop by 1.
16 # This is the (repeated) correct nop case.
19 # This is an example where we have decremented the nop by 1.
23 # This is the (repeated) correct nop case.
26 # Filler (add) to align block.
33 # This is an example of a different, correct, nop case.
34 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00
36 # This is an example where we have incremented the nop by 1.
38 2e 0f 1f 84 00 00 00 00 01
40 # Filler (move) to fill the rest of the block.
43 # This is the (repeated) correct nop case.
44 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00
46 # This is an example where we have decremented the nop by 1.
48 2e 0f 1f 83 ff ff ff ff ff
50 # Filler to realign the decoder.
53 # Filler (add) to fill the rest of the block.
56 # This is the (repeated) correct nop case.
57 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00
65 # This is the list of all nops, just to see if they validate.
67 66 0f 1f 84 00 00 00 00 00
68 # Filler (add) to fill the rest of the block.
70 66 2e 0f 1f 84 00 00 00 00 00
71 66 66 2e 0f 1f 84 00 00 00 00 00
72 # Filler (2 moves) to fill the rest of the block.
75 66 66 66 2e 0f 1f 84 00 00 00 00 00
76 66 66 66 66 2e 0f 1f 84 00 00 00 00 00
77 # Filler (move, nop) to fill the rest of the block.
80 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00
81 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00
83 VALIDATOR: 6: Undefined instruction
84 VALIDATOR: 12: Undefined instruction
85 VALIDATOR: 16: Undefined instruction
86 VALIDATOR: 2e: Bad prefix usage
87 VALIDATOR: 2e: Illegal instruction
88 VALIDATOR: 33: Bad prefix usage
89 VALIDATOR: 4e: Bad prefix usage
90 VALIDATOR: 4e: Illegal instruction
91 VALIDATOR: 53: Bad prefix usage
92 *** <input> IS UNSAFE ***
94 00000000: 66 0f 1f 44 00 00 nop
95 00000006: 66 0f 1f 44 00 01 nop
96 0000000c: 66 0f 1f 44 00 00 nop
97 00000012: 66 0f 1f 43 ff nop
98 00000017: ff 66 0f jmp %ds:[%esi+0xf]
100 0000001b: 44 inc %esp
101 0000001c: 00 00 add %ds:[%eax], %al
102 0000001e: 00 00 add %ds:[%eax], %al
103 00000020: 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 nop
104 0000002e: 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 01 nop
105 0000003c: 66 bf 88 77 mov %di, 0x7788
106 00000040: 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 nop
107 0000004e: 66 66 66 66 66 2e 0f 1f 83 ff ff ff ff nop
108 0000005b: ff 00 inc %ds:[%eax]
109 0000005d: 02 04 00 add %al, %ds:[%eax+%eax*1]
110 00000060: 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 nop
111 0000006e: 66 0f 1f 44 00 00 nop
112 00000074: 66 0f 1f 84 00 00 00 00 00 nop
113 0000007d: 02 04 00 add %al, %ds:[%eax+%eax*1]
114 00000080: 66 2e 0f 1f 84 00 00 00 00 00 nop
115 0000008a: 66 66 2e 0f 1f 84 00 00 00 00 00 nop
116 00000095: 66 a3 44 33 22 11 mov [0x11223344], %ax
117 0000009b: a0 44 33 22 11 mov %al, [0x11223344]
118 000000a0: 66 66 66 2e 0f 1f 84 00 00 00 00 00 nop
119 000000ac: 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 nop
120 000000b9: 66 a3 44 33 22 11 mov [0x11223344], %ax
122 000000c0: 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 nop
123 000000ce: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 nop
125 0: 66 0f 1f 44 00 00 nop
126 6: 66 0f 1f undefined
128 a: 00 01 add [%ecx], %eax
129 c: 66 0f 1f 44 00 00 nop
130 12: 66 0f 1f undefined
132 16: ff ff undefined %edi
133 18: 66 0f 1f 44 00 00 nop
134 1e: 00 00 add [%eax], %eax
135 20: 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 nop
136 2e: 66 66 66 66 66 [data16]
137 33: 2e 0f 1f 84 00 00 00 00 01 nop
138 3c: 66 bf 88 77 mov %edi, 0x7788
139 40: 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 nop
140 4e: 66 66 66 66 66 [data16]
141 53: 2e 0f 1f 83 ff ff ff ff nop
143 5d: 02 04 00 add %eax, [%eax + %eax]
144 60: 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 nop
145 6e: 66 0f 1f 44 00 00 nop
146 74: 66 0f 1f 84 00 00 00 00 00 nop
147 7d: 02 04 00 add %eax, [%eax + %eax]
148 80: 66 2e 0f 1f 84 00 00 00 00 00 nop
149 8a: 66 66 2e 0f 1f 84 00 00 00 00 00 nop
150 95: 66 a3 44 33 22 11 mov [0x11223344], %eax
151 9b: a0 44 33 22 11 mov %al, [0x11223344]
152 a0: 66 66 66 2e 0f 1f 84 00 00 00 00 00 nop
153 ac: 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 nop
154 b9: 66 a3 44 33 22 11 mov [0x11223344], %eax
156 c0: 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 nop
157 ce: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 nop
159 6: [0] unrecognized instruction
160 12: [1] unrecognized instruction
161 16: [2] unrecognized instruction
162 2e: [0] unrecognized instruction
163 33: [1] unrecognized instruction
164 4e: [0] unrecognized instruction
165 53: [1] unrecognized instruction