Advertisement
Guest User

shellcode_generator

a guest
Jan 20th, 2013
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.33 KB | None | 0 0
  1. /* Izvorni autor ovoga koda je Mark Russanovich. (Tako je navedeno u README
  2.  * datoteci koja se nalazila uz sam kod).
  3.  * Preuzeti kod je malo modificiran, no logika i funkcionalnost su ostale iste.
  4.  *
  5.  * Zaglavlje shellcode.h se generira na temelju datoteke čija je putanja
  6.  * argument komandne linije. U datoteku shellcode.h sprema se proslijeđena
  7.  * datoteka na način da se bajtovi te datoteke u hex obliku dodaju polju
  8.  * shellcode koje je tipa unsigned char.
  9.  */
  10. #include <stdio.h>
  11. #include <stdlib.h>
  12.  
  13. int main(int argc, char *argv[]){
  14.  
  15.     FILE *f;
  16.     int i, c;
  17.     char *arr_name;
  18.    
  19.     if (argc < 2) {
  20.         fprintf(stderr, "Koristenje: %s naziv_kriptirane_datoteke\n", argv[0]);
  21.         return 1;
  22.     }
  23.    
  24.     f = fopen(argv[1], "rb");
  25.     if (f == NULL) {
  26.         fprintf(stderr, "%s: fopen(%s) nije uspio", argv[0], argv[1]);
  27.         return 1;
  28.     }
  29.  
  30.    
  31.     freopen ("shellcode.h","w",stdout);
  32.    
  33.     arr_name = "shellcode";
  34.    
  35.     printf("unsigned char %s[] = {", arr_name);
  36.  
  37.     for (i=0;;i++) {
  38.         if ((c = fgetc(f)) == EOF) break;
  39.         if (i != 0) printf(",");
  40.         if ((i % 12) == 0) printf("\n\t");
  41.         printf("0x%.2X", (unsigned char)c);
  42.     }
  43.  
  44.     printf("\n\t};\n");
  45.    
  46.     printf("unsigned int size = %i;\n", i);
  47.    
  48.     fclose(f);
  49.     fclose(stdout);
  50.    
  51.     return 0;
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement