File tree 1 file changed +82
-69
lines changed
1 file changed +82
-69
lines changed Original file line number Diff line number Diff line change 1
- ; elf header see http://muppetlabs.com/~breadbox/software/tiny/teensy.html
1
+ ; - code disassembled from C executable with `objconv -fnasm httpd temp.asm`
2
+ ; - tweaked by prepending _start to _001 and removing the exit call
3
+ ; - tiny elf header see http://muppetlabs.com/~breadbox/software/tiny/teensy.html
2
4
3
5
BITS 64
4
6
@@ -40,12 +42,14 @@ _start:
40
42
xor r9 , r9
41
43
pop rdi
42
44
mov rsi , rsp
45
+
46
+ ?_001:
43
47
push r14
44
48
push r13
45
49
push r12
50
+ mov r12 , rsi
46
51
push rbp
47
52
push rbx
48
- mov rbx , rsi
49
53
sub rsp , 8224
50
54
cmp edi , 3
51
55
jnz ?_004
@@ -62,132 +66,142 @@ _start:
62
66
lea eax , [ rax + rdx - 30H ]
63
67
jmp ?_002
64
68
65
- ?_003: xchg al , ah
69
+ ?_003: mov edx , eax
70
+ xchg dl , dh
66
71
test ax , ax
67
72
jnz ?_007
68
- ?_004: mov rbp , qword [ rbx ]
73
+ ?_004: mov rbx , qword [ r12 ]
69
74
mov edx , 7
70
75
mov edi , 1
71
76
lea rsi , [ rel ?_033 ]
72
77
call ?_027
73
- mov rdx , rbp
78
+ mov rdx , rbx
74
79
?_005: cmp byte [ rdx ], 0
75
80
jz ?_006
76
81
inc rdx
77
82
jmp ?_005
78
83
79
- ?_006: sub rdx , rbp
80
- mov rsi , rbp
84
+ ?_006: sub edx , ebx
85
+ mov rsi , rbx
81
86
mov edi , 1
82
87
call ?_027
83
88
mov edx , 11
84
89
mov edi , 1
85
90
lea rsi , [ rel ?_034 ]
86
91
call ?_027
87
92
mov edi , 1
88
- call ?_017
93
+ call ?_018
94
+ xor edx , edx
95
+ ?_007: mov word [ rsp + 12H ], dx
89
96
xor eax , eax
90
- ?_007: xorps xmm0 , xmm0
97
+ xor ecx , ecx
91
98
lea rsi , [ rsp + 0CH ]
92
99
lea rdi , [ rsp + 10H ]
93
100
mov edx , 4
94
- movups oword [ rsp + 10H ], xmm0
101
+ mov qword [ rsp + 14H ], rax
95
102
mov dword [ rsp + 0CH ], 1
103
+ mov dword [ rsp + 1CH ], ecx
104
+
96
105
mov word [ rsp + 10H ], 2
97
- mov word [ rsp + 12H ], ax
98
106
call ?_029
99
107
mov r13d , eax
100
- ?_008: xor edx , edx
108
+ ?_008: xor ecx , ecx
109
+ xor esi , esi
110
+ or edi , 0FFFFFFFFH
111
+ mov edx , 1
112
+ call ?_017
113
+ test eax , eax
114
+ jg ?_008
115
+ xor edx , edx
101
116
xor esi , esi
102
117
mov edi , r13d
103
118
call ?_023
104
- mov ebp , eax
119
+ mov ebx , eax
105
120
test eax , eax
106
- js ?_008
121
+ js ?_015
107
122
xor eax , eax
108
- call ?_018
109
- mov r12d , eax
123
+ call ?_019
124
+ mov ebp , eax
110
125
test eax , eax
111
- jnz ?_008
112
- mov r14 , qword [ rbx + 10H ]
113
- lea r13 , [ rsp + 20H ]
126
+ jne ?_015
127
+ mov r13 , qword [ r12 + 10H ]
128
+ lea r12 , [ rsp + 20H ]
114
129
?_009: mov edx , 8192
115
- mov rsi , r13
116
- mov edi , ebp
130
+ mov rsi , r12
131
+ mov edi , ebx
117
132
call ?_028
118
- mov ebx , eax
133
+ mov r14d , eax
119
134
test eax , eax
120
135
jle ?_010
121
- mov edx , ebx
122
- mov rsi , r13
136
+ mov edx , r14d
137
+ mov rsi , r12
123
138
mov edi , 1
124
139
call ?_027
125
- movsxd rax , ebx
126
- lea rax , [ r13 + rax - 3H ]
127
- cmp ebx , 2
140
+ lea edx , [ r14 - 3H ]
141
+ movsxd rdx , edx
142
+ add rdx , r12
143
+ cmp r14d , 2
128
144
jg ?_011
129
- ?_010: xor esi , esi
130
- mov rdi , r14
145
+ ?_010: mov rdi , r13
146
+ xor esi , esi
131
147
call ?_026
132
- mov ebx , eax
148
+ mov r13d , eax
133
149
test eax , eax
134
150
jns ?_012
135
151
mov edx , 39
136
152
lea rsi , [ rel ?_035 ]
137
- mov edi , ebp
153
+ mov edi , ebx
138
154
call ?_027
139
- jmp ?_015
155
+ jmp ?_014
140
156
141
- ?_011: cmp byte [ rax ], 10
157
+ ?_011: cmp byte [ rdx ], 10
142
158
jnz ?_009
143
- cmp byte [ rax + 1H ], 13
159
+ cmp byte [ rdx + 1H ], 13
144
160
jnz ?_009
145
- cmp byte [ rax + 2H ], 10
161
+ cmp byte [ rdx + 2H ], 10
146
162
jnz ?_009
147
163
jmp ?_010
148
164
149
165
?_012: mov edx , 19
150
166
lea rsi , [ rel ?_036 ]
151
- mov edi , ebp
167
+ mov edi , ebx
152
168
call ?_027
153
169
?_013: mov edx , 8192
154
- mov rsi , r13
155
- mov edi , ebx
170
+ mov rsi , r12
171
+ mov edi , r13d
156
172
call ?_028
157
173
mov edx , eax
158
174
test eax , eax
159
- jle ?_014
160
- mov rsi , r13
161
- mov edi , ebp
175
+ jle ?_016
176
+ mov rsi , r12
177
+ mov edi , ebx
162
178
call ?_027
163
179
test eax , eax
164
180
jns ?_013
165
- jmp ?_015
181
+ ?_014: mov ebp , 1
182
+ jmp ?_016
166
183
167
- ?_014: mov edi , ebp
168
- mov esi , 2
169
- call ?_022
170
- mov edi , ebp
184
+ ?_015: mov edi , ebx
171
185
call ?_025
172
- jmp ?_016
186
+ jmp ?_008
173
187
174
- ?_015: mov r12d , 1
175
- ?_016: add rsp , 8224
176
- mov eax , r12d
188
+ ?_016:
189
+ add rsp , 8224
190
+ mov eax , ebp
177
191
pop rbx
178
192
pop rbp
179
193
pop r12
180
194
pop r13
181
195
pop r14
182
- call ?_017
196
+ ret
183
197
184
198
?_017:
185
- add r9 , 3
199
+ add r9 , 1
186
200
?_018: add r9 , 3
187
- ?_019: add r9 , 4
188
- ?_020: add r9 , 1
201
+ ?_019: add r9 , 3
202
+ ?_020: add r9 , 4
189
203
?_021: add r9 , 1
190
- ?_022: add r9 , 5
204
+ ?_022: add r9 , 6
191
205
?_023: add r9 , 2
192
206
?_024: add r9 , 38
193
207
?_025: add r9 , 1
@@ -199,50 +213,49 @@ _start:
199
213
syscall
200
214
ret
201
215
202
-
203
216
?_029:
204
- push r13
205
- mov r13 , rsi
206
- mov esi , 1
207
217
push r12
218
+ mov r12 , rsi
219
+ mov esi , 1
208
220
push rbp
209
221
mov rbp , rdi
210
222
mov edi , 2
223
+ push rbx
211
224
sub rsp , 16
212
225
mov dword [ rsp + 0CH ], edx
213
226
mov edx , 6
214
227
call ?_024
215
228
mov r8d , dword [ rsp + 0CH ]
216
229
test eax , eax
217
- mov r12d , eax
230
+ mov ebx , eax
218
231
jns ?_031
219
232
?_030: mov edi , 1
220
- call ?_017
233
+ call ?_018
221
234
jmp ?_032
222
235
223
- ?_031: mov rcx , r13
236
+ ?_031: mov rcx , r12
224
237
mov edx , 2
225
238
mov esi , 1
226
239
mov edi , eax
227
- call ?_019
240
+ call ?_020
228
241
test eax , eax
229
242
jnz ?_030
230
243
mov edx , 16
231
244
mov rsi , rbp
232
- mov edi , r12d
233
- call ?_021
245
+ mov edi , ebx
246
+ call ?_022
234
247
test eax , eax
235
248
jnz ?_030
236
249
mov esi , 10
237
- mov edi , r12d
238
- call ?_020
250
+ mov edi , ebx
251
+ call ?_021
239
252
test eax , eax
240
253
jnz ?_030
241
254
?_032: add rsp , 16
242
- mov eax , r12d
255
+ mov eax , ebx
256
+ pop rbx
243
257
pop rbp
244
258
pop r12
245
- pop r13
246
259
ret
247
260
248
261
?_035:
You can’t perform that action at this time.
0 commit comments