You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
da próxima instrução que no caso seria . Voltando a caça<br />
dos opcodes... O comando que usaremos é o x/xb, que irá nos retornar o<br />
código em hexa.:<br />
(gdb) x/xb main+16<br />
0x8048324 : 0xbb<br />
(gdb)<br />
0x8048325 : 0x01<br />
(gdb)<br />
0x8048326 : 0x00<br />
(gdb)<br />
0x8048327 : 0x00<br />
(gdb)<br />
0x8048328 : 0x00<br />
(gdb)<br />
...<br />
...<br />
...<br />
0x804834a : 0x00<br />
(gdb)<br />
0x804834b : 0x00<br />
(gdb)<br />
0x804834c : 0x00<br />
(gdb)<br />
0x804834d : 0xcd<br />
(gdb)<br />
0x804834e : 0x80<br />
(gdb)<br />
Dica: Depois do x/xb main+16, aperte e segure a tecla ENTER, você<br />
verá que o processo será bem mais rápido. :)<br />
Ok, temos os códigos em hexadecimal e agora?<br />
Agora nós iremos montá-lo para poder ser executado.:<br />
shellcode/hexawrite.c<br />
/*<br />
* Shellcode pronto em hexadecimal.<br />
* Imprime a string "MOTDLabs" na tela.<br />
* by IP_FIX .<br />
* MotdLabs .<br />
* Compilação: # gcc -o hexawrite hexawrite.c<br />
*/<br />
#include <br />
char shellcode[] =<br />
"\xbb\x01\x00\x00\x00" /* mov $0x1, %ebx */<br />
"\x6a\x0a" /* push $0x0A */<br />
"\x68\x4c\x61\x62\x73" /* push $0x7362614C */<br />
"\x68\x4d\x4f\x54\x44" /* push $0x44544F4D */<br />
"\x89\xe1" /* mov %esp, %ecx */<br />
"\xba\x0a\x00\x00\x00" /* mov $0xa, %edx */<br />
"\xb8\x04\x00\x00\x00" /* mov $0x4, %eax */<br />
"\xcd\x80" /* int $0x80 */<br />
67