Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
(gdb) disassemble main<br />
Dump of assembler code for function main:<br />
0x8048314 : push %ebp<br />
0x8048315 : mov %esp,%ebp<br />
0x8048317 : sub $0x8,%esp<br />
0x804831a : and $0xfffffff0,%esp<br />
0x804831d : mov $0x0,%eax<br />
0x8048322 : sub %eax,%esp<br />
0x8048324 : mov $0x1,%ebx<br />
0x8048329 : push $0xa<br />
0x804832b : push $0x7362614c<br />
0x8048330 : push $0x44544f4d<br />
0x8048335 : mov %esp,%ecx<br />
0x8048337 : mov $0xa,%edx<br />
0x804833c : mov $0x4,%eax<br />
0x8048341 : int $0x80<br />
0x8048343 : mov $0x0,%ebx<br />
0x8048348 : mov $0x1,%eax<br />
0x804834d : int $0x80<br />
0x804834f : leave<br />
0x8048350 : ret<br />
0x8048351 : nop<br />
0x8048352 : nop<br />
0x8048353 : nop<br />
0x8048354 : nop<br />
0x8048355 : nop<br />
0x8048356 : nop<br />
0x8048357 : nop<br />
0x8048358 : nop<br />
0x8048359 : nop<br />
0x804835a : nop<br />
0x804835b : nop<br />
0x804835c : nop<br />
0x804835d : nop<br />
0x804835e : nop<br />
0x804835f : nop<br />
End of assembler dump.<br />
(gdb)<br />
Hehehe, adoro isso! :)<br />
Pra quem sabe um pouco de assembly, sabe que o começo é o prelúdio,<br />
prólogo ou processo incial, ele também reserva um espaço no stack e<br />
alinha a memória. Eles serão úteis quando falarmos sobre buffer<br />
overflows numa outra oportunidade não distante. :P<br />
Maiores informações, vide os links no fim do arquivo sobre assembly. Lá<br />
vocês encontrarão as respostas para suas perguntas! Voltando...<br />
Repare que nosso código começa somente em e a última<br />
instrução começa em . Então devemos pegar todos os<br />
opcodes em hexadecimal a partir de até .<br />
Mas não seria até ??? Sim, mas repare que a instrução<br />
"começa" em e prossegue até , ou seja, 1 antes<br />
66