1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324
|
#include <stdio.h> #include <stdlib.h> #include <string.h>
char *base64decode(const char *input);
char *base64decode(const char *input) { size_t len = 0; char base64Charset[66]; strcpy(base64Charset, "ABCDIdHIJKLqrstuE6745eIbb7"); strcpy(base64Charset + 16, "vwxMNOefqhEFGijV97B9Bit7Yres"); strcpy(base64Charset + 32, "TU234WXYnopyzT1kvQ64ciIo8y12d"); strcpy(base64Charset + 48, "lmRS567PQZab89+/="); while (input[len] != '\0') { len++; }
base64Charset[4] = 'c'; base64Charset[24] = 'g'; size_t y = 44; base64Charset[++y] = '0';
size_t outputLen = (len / 4) * 3; if (input[len - 1] == '=') outputLen--; if (input[len - 2] == '=') outputLen--;
char *output = (char *)malloc(outputLen + 1); size_t j = 0; size_t i = 0;
for (; i < len; i += 4) { int sextet_a = input[i] == '=' ? 0 & i++ : strchr(base64Charset, input[i]) - base64Charset; int sextet_b = input[i + 1] == '=' ? 0 & i++ : strchr(base64Charset, input[i + 1]) - base64Charset; int sextet_c = input[i + 2] == '=' ? 0 & i++ : strchr(base64Charset, input[i + 2]) - base64Charset; int sextet_d = input[i + 3] == '=' ? 0 & i++ : strchr(base64Charset, input[i + 3]) - base64Charset;
int triple = (sextet_a << 18) + (sextet_b << 12) + (sextet_c << 6) + sextet_d;
if (j < outputLen) output[j++] = (triple >> 16) & 0xFF; if (j < outputLen) output[j++] = (triple >> 8) & 0xFF; if (j < outputLen) output[j++] = triple & 0xFF; } output[outputLen] = '\0'; return output; }
char *part1Code = "e4oOv6wHj5W1wHNShC5=";
int part2Code[] = {118, 871, 67, 10, 77, 821, 109, 6, 71, 825, 60, 79, 14, 861}; int cd1(int inputy) { return inputy ^ 0x23; } int cd2(int inputy) { return inputy - 776; } int cd3(int inputy) { return 67; } int cd4(int inputy) { return inputy + 42; } int (*part2funcList[])(int) = {cd1, cd2, cd3, cd4}; char *part2Decoded() { size_t len = sizeof(part2Code) / sizeof(part2Code[0]); char *result = (char *)malloc(len + 1); for (size_t i = 0; i < len; i++) { result[i] = part2funcList[i % 4](part2Code[i]); } result[6] = 109; result[10] = 102; result[len] = '\0'; return result; }
char *AES_secret_key = "ZJUCTF{flag_is_here_just_kidding}"; char *AES_iv = "This is a RC2 IV";
#include <openssl/evp.h> #include <openssl/err.h>
char *part3_AES_decrypt(const char *encryptedHex) { OpenSSL_add_all_algorithms(); ERR_load_crypto_strings();
long len = strlen(encryptedHex); int enc_len = len / 2; unsigned char *enc_data = (unsigned char *)malloc(enc_len); for(int i = 0; i < enc_len; i++) { sscanf(encryptedHex + 2*i, "%2hhx", &enc_data[i]); }
EVP_CIPHER_CTX *ctx = EVP_CIPHER_CTX_new(); if(!ctx) { free(enc_data); return NULL; }
if(1 != EVP_DecryptInit_ex(ctx, EVP_aes_256_cbc(), NULL, (unsigned char*)AES_secret_key, (unsigned char*)AES_iv)) { EVP_CIPHER_CTX_free(ctx); free(enc_data); return NULL; }
int out_len = enc_len + EVP_CIPHER_CTX_block_size(ctx); unsigned char *out_buf = (unsigned char *)malloc(out_len); int final_len = 0, total_len = 0;
if(1 != EVP_DecryptUpdate(ctx, out_buf, &out_len, enc_data, enc_len)) { free(enc_data); free(out_buf); EVP_CIPHER_CTX_free(ctx); return NULL; } total_len = out_len;
if(1 != EVP_DecryptFinal_ex(ctx, out_buf + total_len, &final_len)) { free(enc_data); free(out_buf); EVP_CIPHER_CTX_free(ctx); return NULL; } total_len += final_len;
out_buf[total_len] = '\0';
EVP_CIPHER_CTX_free(ctx); free(enc_data);
return (char *)out_buf; }
unsigned char Part5Code[] = {0x87,0x13,0x90,0x98,0x98,0x98,0x98,0x98,0x98,0x9b,0x9d,0x59,0x4f,0x3a,0x19,0x98,0x98,0x98,0x48,0x7f,0x5a,0xa7,0xd0,0x4a,0x2d,0xcf,0xbd,0xb3,0x89,0x2a,0x13,0xc8,0x81,0xb9,0x2a,0xda,0x0a,0xa5,0x62,0x6e,0xe3,0xd6,0x78,0x72,0x2f,0x32,0x84,0xe6,0xa7,0xfe,0x41,0x0a,0xae,0x07,0x9a,0xcb,0x08,0xe1,0xfd,0x77,0x2c,0x48,0x2c,0x81,0x43,0x2f,0x48,0x0a,0x5e,0x50,0x1f,0x2e,0x02,0x1d,0x13,0x99,0x29,0xa6,0xd3,0x45,0x44,0x4c,0x79,0x1c,0x82,0x40,0xd5,0xea,0xa5,0xb4,0x56,0x17,0x65,0x79,0x59,0xea,0x2a,0xd1,0x67,0x72,0x23,0xdd,0xd7,0x4a,0xaf,0x27,0xe6,0x63,0x8b,0xb0,0x1f,0xdd,0x59,0x01,0x5a,0x3f,0x33,0x03,0x31,0x90,0x8f,0x61,0xa8,0x38,0x1b,0x99,0xf4,0xb1,0x94,0x50,0xbd,0xf3,0xdb,0x24,0x65,0x3c,0xce,0x01,0x78,0xbe,0x6a,0xa6,0x5f,0x32,0x92,0x4c,0x09,0x76,0xe5,0xae,0xa1,0xa4,0x62,0xef,0x27,0xd6,0xf2,0xaf,0xd4,0x97,0x11,0xf4,0x8d,0x71,0x5d,0xa4,0x59,0x57,0xff,0xab,0x0f,0xa7,0xad,0x7b,0x8e,0xf0,0x0e,0xdc,0xb0,0x3a,0xbf,0x4c,0x23,0xf3,0x24,0x4e,0x7a,0x92,0xb9,0xea,0x43,0xce,0xbb,0x1c,0x28,0xb6,0xa7,0x87,0xd7,0x6b,0xc4,0xab,0x8c,0xde,0xd7,0x82,0xe9,0x25,0x6c,0xe2,0x4d,0x0e,0x37,0x0e,0xe6,0x17,0x51,0xdf,0xab,0xe1,0xf5,0x60,0xd9,0xd5,0x6e,0xce,0x94,0xc0,0x6f,0xf9,0x54,0x6c,0x1d,0xb7,0xed,0x1e,0x54,0xf9,0x1b,0xf1,0x72,0x97,0x74,0x9a,0x77,0xc3,0x74,0xac,0x21,0x1c,0x74,0x7c,0xfa,0xad,0xa3,0xa7,0xbe,0x77,0x92,0xc7,0x96,0x8f,0x72,0x82,0x74,0x24,0x0a,0x70,0x71,0x02,0xf8,0x4d,0x6f,0xde,0x18,0xce,0x16,0x7b,0x98,0x14,0x1b,0x9f,0xcf,0x55,0x6f,0x4d,0x27,0xd0,0x9e,0xed,0x9b,0x41,0x5d,0x52,0x30,0xb8,0x71,0xe3,0xec,0x8b,0x65,0xb5,0xf9,0x90,0x3c,0xd5,0xd8,0xac,0xcf,0x29,0xff,0x78,0xd1,0x75,0x86,0x29,0x4b,0x06,0x16,0xc5,0x24,0x3a,0x00,0xb1,0x2f,0x20,0x96,0xe6,0x3b,0x38,0x3d,0x5f,0xba,0x62,0xe6,0x55,0x63,0xf3,0x16,0xf6,0x5f,0x49,0x34,0x4f,0x61,0x59,0x2b,0x03,0xee,0xb3,0x8b,0xe3,0x8d,0xc0,0xd6,0x16,0xef,0xe4,0xff,0xc3,0x30,0x1a,0x06,0xb7,0x71,0xd6,0x7c,0x56,0x46,0x1d,0x22,0x71,0x42,0x60,0x08,0xda,0x44,0x56,0xf6,0x58,0x50,0xb1,0x71,0xbf,0x03,0xe7,0xf7,0x8c,0xe1,0x91,0x39,0xee,0x03,0xf8,0x4a,0xb3,0xe6,0x04,0xf2,0xf4,0xb0,0xf2,0xcc,0x2b,0x7d,0x85,0x5d,0x88,0x95,0x6f,0x7c,0x25,0xb7,0x35,0xa7,0x2a,0x3b,0x90,0xd9,0x6b,0xab,0xbb,0x40,0x97,0x3a,0xac,0x40,0xc1,0x63,0x8b,0x67,0xd3,0x04,0xa6,0x58,0x40,0x73,0xf6,0x93,0xe9,0xc6,0x31,0x21,0x0a,0x4c,0x5a,0x0a,0xd6,0x24,0xa2,0xd0,0x0a,0x55,0x1a,0xc0,0x8b,0x1f,0x9f,0x12,0xe2,0x77,0xca,0xb7,0x57,0xe1,0x25,0x96,0x92,0x20,0x1d,0x1b,0x3d,0xbc,0x2e,0x04,0x77,0x0a,0xd1,0x5d,0xaf,0x9b,0x85,0xb9,0xa5,0x0e,0xd5,0xe9,0x6c,0xb8,0xd4,0x4d,0xb8,0x9f,0xea,0x0f,0xc8,0xeb,0xe3,0x45,0x80,0x2f,0xca,0x17,0x36,0x89,0x95,0x63,0xb5,0x36,0x71,0xb4,0x45,0x62,0x6e,0x9c,0xed,0xbd,0xce,0x06,0x42,0xe3,0x62,0x23,0xc3,0x03,0x7c,0x69,0x29,0xf7,0x17,0xa4,0x42,0x8e,0x20,0xee,0xa9,0xe0,0x10,0x51,0x79,0xb6,0x44,0x44,0xdf,0xa6,0x51,0x85,0x23,0x0d,0x3a,0x43,0x6e,0xd8,0xbb,0x7d,0x7a,0xaa,0x20,0x5e,0x2e,0xd6,0xda,0x02,0xd7,0x7a,0xf5,0x2e,0x47,0x60,0xb4,0x58,0x41,0x5d,0x8b,0xc1,0x81,0x96,0x06,0x62,0x18,0x99,0x25,0x73,0xf1,0x34,0x23,0x9a,0xdf,0x2e,0x6e,0x68,0xf9,0x8a,0x7e,0x24,0x29,0x33,0x1a,0x08,0x64,0x69,0x65,0x60,0x86,0xfc,0x38,0xa4,0x6f,0x1f,0x9f,0x93,0x52,0x26,0xf2,0xcb,0x6c,0xaa,0xd3,0xa9,0xe0,0x4d,0xc5,0xc5,0x32,0xcb,0xa9,0x8a,0x20,0x0f,0xce,0x57,0x8f,0xc4,0x74,0x75,0x7c,0x3f,0x8b,0xc0,0xa7,0x4a,0xf4,0x72,0x9c,0x80,0x38,0xb4,0xd4,0xf4,0x67,0x51,0x4d,0x94,0x35,0xe6,0x2c,0x8a,0x5d,0x14,0x5b,0x9a,0x6f,0xe2,0xb9,0x0d,0x06,0xd0,0x12,0xa2,0xc3,0x7e,0xf0,0xb0,0x3b,0x6c,0xdf,0x24,0x09,0xce,0x4b,0x1e,0xe3,0xec,0x27,0x3c,0x59,0x6e,0xf1,0x87,0x8e,0x33,0x33,0x4a,0xb6,0xaa,0x74,0x7e,0x1a,0x8d,0xd6,0x37,0x74,0x86,0x2d,0x75,0x69,0x53,0xb4,0x6f,0x0b,0xe6,0xd7,0xc7,0xdd,0x58,0xcf,0x21,0xec,0x77,0xb3,0xf7,0x35,0x0c,0x6b,0x3b,0x61,0x47,0xde,0x60,0xea,0x43,0xb9,0x57,0x15,0x62,0x9e,0xc1,0xb0,0x7c,0xd4,0xc0,0xb3,0x94,0x72,0x66,0x77,0x87,0x0f,0x6a,0xfc,0x13,0x14,0x68,0xb8,0xc1,0x39,0x05,0x37,0x03,0x9e,0xe8,0x77,0xcf,0x4a,0x59,0x39,0x27,0x9e,0x8f,0x4e,0x81,0x78,0xe3,0xdc,0x2e,0xfa,0x10,0x26,0x36,0x2c,0x80,0xde,0x0e,0x29,0x43,0x7c,0x12,0xf4,0x69,0xdc,0x68,0xb7,0x43,0xb3,0xd5,0xbc,0xf9,0x09,0xe6,0xed,0xda,0xa2,0x48,0xdd,0xff,0x43,0x4b,0x61,0xdf,0xa0,0x73,0xd0,0xab,0x70,0x51,0xc1,0x91,0x69,0x48,0xf6,0x2f,0x12,0x75,0xb3,0x54,0x93,0x72,0x25,0xf4,0x7b,0x36,0x89,0x35,0x2d,0x78,0xa5,0xb0,0xef,0xd3,0xe3,0xb4,0xe2,0x6e,0xcc,0xe6,0x63,0x46,0xc7,0x05,0xdc,0x7a,0xe8,0x68,0x70,0x55,0xb6,0x59,0xdd,0x6e,0x64,0x59,0x6a,0x45,0x98,0xe4,0x71,0x2d,0xc0,0x2a,0x94,0xd7,0xdd,0xa7,0x7d,0x71,0x57,0x77,0xde,0xf2,0x8e,0x99,0xc2,0x33,0x42,0x1e,0xcc,0x6d,0x08,0x54,0x74,0x12,0xc9,0x82,0x53,0x16,0xce,0x65,0x14,0xed,0xc0,0x3c,0xb3,0x4b,0xe2,0x4d,0x41,0x62,0xf5,0x92,0x0b,0x76,0x7d,0xa0,0x83,0xe8,0x8f,0xf7,0x64,0xb7,0x5f,0x16,0xd3,0x6b,0x27,0xea,0xb3,0xaf,0x36,0x60,0x37,0x2d,0x2b,0xb3,0x16,0xb2,0x10,0x28,0xe9,0x2e,0x82,0xd5,0x1f,0xbb,0x6b,0x74,0xc5,0x1e,0xd4,0x32,0x11,0x57,0x11,0xe6,0x15,0xa9,0xc7,0x06,0xd4,0x90,0x26,0xe8,0xf1,0x8f,0xed,0xb5,0xec,0xca,0x13,0x72,0x35,0x62,0x8d,0x50,0x12,0xe0,0x3c,0x27,0x3b,0x40,0x4b,0x34,0xec,0xa6,0x36,0x7d,0x73,0x17,0x1b,0xa0,0xc6,0x6f,0xb5,0x93,0x06,0x59,0x22,0xd8,0xbe,0x22,0x68,0x90,0x0b,0x91,0x52,0xcf,0xf1,0x81,0xa5,0x24,0x97,0xbb,0x69,0xc0,0x22,0x05,0x89,0xd9,0x47,0x2b,0xbb,0x33,0x57,0xd3,0xc1,0x4f,0xfa,0x9b,0x83,0xa8,0xeb,0x05,0x43,0x15,0x6a,0x7c,0xed,0x10,0x11,0x91,0x15,0xe2,0xd7,0x0b,0x56,0x0e,0x92,0x5a,0x41,0xff,0x8e,0x6b,0xe2,0x01,0x8c,0xe2,0x7b,0x07,0x3f,0xec,0xc6,0x4a,0x17,0x09,0xfa,0x5c,0x6f,0x5d,0x97,0xbb,0xb5,0xe6,0x13,0x3d,0x44,0x69,0x5a,0x79,0xb2,0x67,0xc0,0xa0,0xd8,0x6f,0xd5,0x88,0x87,0x7c,0x26,0x3b,0xe5,0x35,0xd3,0x22,0x14,0xe9,0x54,0x4a,0xb9,0xf7,0x70,0xaf,0x7c,0xe4,0x3e,0x5a,0x30,0x4b,0xc8,0x1b,0x51,0x26,0xe3,0x8d,0x3a,0xf4,0x74,0xd7,0x72,0xe8,0x61,0xf0,0xc6,0xa8,0x44,0x83,0xf9,0xe5,0xe0,0xb3,0x71,0x12,0x32,0x34,0xae,0xea,0xb1,0xca,0x31,0xc2,0xb7,0xd0,0xf3,0xe1,0xfd,0x72,0x35,0x69,0x25,0x28,0x2b,0x44,0x4a,0xd3,0xf3,0x54,0x52,0xaa,0x35,0x68,0xa8,0x7b,0x65,0x11,0x52,0x0a,0x9c,0x42,0xfd,0xf1,0x8d,0xcc,0x89,0xbf,0xa2,0x2c,0x34,0x6a,0x73,0x79,0x82,0x2e,0x27,0xbe,0x85,0xdc,0x52,0x40,0xe0,0xf7,0x3c,0xb5,0x3d,0xd7,0xc3,0xc0,0x1f,0x63,0x8c,0x02,0xa4,0x9a,0x70,0x31,0x00,0x68,0xfc,0x3e,0x43,0xf7,0xd4,0x9e,0xfc,0x5d,0x16,0xdf,0xa4,0x4c,0xc3,0x54,0x87,0xfa,0x27,0x42,0x1d,0x61,0x58,0xe9,0x7c,0x10,0xeb,0x86,0xad,0x39,0xea,0x58,0x75,0xac,0x17,0xbb,0x2b,0x4f,0x2c,0x6c,0x92,0xcf,0x0c,0x68,0x78,0xfb,0xe2,0xb0,0x9f,0xf8,0xbf,0xea,0xf8,0x3c,0xd8,0x17,0x14,0x2d,0x4a,0x6a,0xb5,0x89,0x72,0x70,0x55,0x9c,0xd8,0xce,0xec,0xcc,0x07,0x64,0xa0,0x21,0x9b,0x5f,0xfb,0x4c,0xf2,0xe8,0xc1,0xfc,0xc2,0xeb,0x45,0x3c,0x5d,0x25,0x29,0xf9,0x5c,0x73,0x31,0xad,0x5f,0x35,0x74,0x18,0x7f,0x93,0x0f,0x94,0x09,0x64,0x04,0xae,0xae,0x06,0x8d,0x82,0xc7,0x51,0xa5,0x89,0xac,0x51,0xd0,0xa2,0x2a,0x0d,0x57,0x47,0x77,0x80,0x24,0x03,0xf2,0x5c,0x23,0xec,0x02,0xeb,0x94,0x97,0x3c,0xa9,0xb7,0x08,0x0f,0xb1,0x9b,0x2f,0x45,0x5a,0x01,0x35,0xb4,0x6b,0xf3,0x7a,0x02,0x6b,0xf8,0x7d,0xdb,0x84,0xf6,0x28,0x5d,0xfd,0xd2,0xdf,0xe3,0x61,0xe9,0x13,0xb0,0x0c,0xd3,0x81,0xa9,0x1e,0xd1,0x7c,0xac,0x34,0xa0,0xe1,0x70,0xf7,0xa0,0xdb,0x6e,0xe6,0x8e,0x7d,0x56,0x81,0x49,0xac,0x8f,0xaf,0x21,0x23,0xe0,0x4e,0x29,0x9a,0x82,0x24,0x73,0xb1,0x6f,0xf3,0x61,0xdc,0x5c,0x96,0xe2,0x35,0xfe,0x12,0x55,0xe4,0x31,0x21,0xda,0x72,0xcc,0xb1,0x44,0xf1,0x6d,0x4e,0xdc,0xcd,0x9a,0xaa,0x99,0xac,0x72,0xbd,0x64,0x5c,0x48,0x34,0x77,0x16,0x3f,0x91,0x63,0xb1,0xc5,0xc7,0x82,0xba,0xcb,0x48,0xfe,0xf0,0x04,0x29,0x8c,0xf6,0xcb,0x05,0x58,0xb5,0x80,0x3b,0xf1,0x52,0x25,0x85,0x74,0x7d,0x48,0x80,0xa4,0x96,0xb4,0x45,0xc1,0x37,0xd9,0xd6,0x80,0x25,0xab,0x6b,0x5f,0xd2,0xf0,0x25,0x1b,0xd4,0xfb,0x42,0xbb,0xdd,0xf7,0x66,0x7b,0x27,0x59,0x34,0x5e,0x06,0x4d,0xf3,0x72,0x69,0x68,0xac,0x1f,0x61,0x98,0x09,0x2a,0x26,0xa1,0x09,0x6a,0x24,0xe7,0xa0,0xcc,0x76,0x0f,0x5e,0x9b,0x32,0x66,0x02,0x4f,0x6b,0x19,0xef,0xfb,0x41,0xe3,0x27,0x7e,0x0a,0xd5,0x4c,0x7c,0x1b,0x25,0x9b,0xab,0x3f,0xd6,0x26,0x02,0xae,0x2f,0x48,0x5e,0xd5,0x87,0xaf,0xc2,0xe6,0xf4,0x02,0xa5,0x77,0x54,0xbc,0x73,0xb7,0xc3,0x64,0xce,0x1c,0x01,0x2c,0x06,0xee,0xea,0x36,0x5f,0x7e,0x49,0x5e,0x16,0x7f,0xed,0x29,0x05,0x5c,0x73,0xc5,0xce,0x55,0xfd,0x9e,0xe1,0x43,0xb0,0x32,0x42,0x47,0x20,0x29,0x9d,0x62,0xbe,0x48,0xfd,0x2f,0x79,0xb2,0x6c,0x80,0x7e,0xe4,0x50,0x26,0x61,0xe3,0xd8,0xe5,0x08,0x72,0x3f,0xee,0x53,0x36,0x4b,0x22,0xa3,0x4a,0x4d,0x1d,0xa1,0x14,0x8c,0x4b,0x87,0xaa,0xe4,0x73,0x26,0xfc,0x09,0xc4,0x0b,0x0e,0xcc,0x16,0x8c,0xe7,0x63,0xc5,0x2e,0x63,0x1c,0xe9,0xaf,0x74,0x6e,0xbf,0xaa,0xb4,0x75,0x3c,0x80,0x2f,0x8f,0x2e,0xba,0x39,0x0e,0xdb,0x86,0x94,0xd6,0xf4,0x68,0xf8,0x3b,0x13,0x1f,0x36,0x54,0x48,0xfe,0x79,0x30,0x0f,0xca,0x3c,0x9e,0x23,0x10,0x22,0xa6,0xd9,0x39,0x92,0x9a,0xd0,0x71,0x23,0x7c,0x15,0xea,0xb5,0x7b,0xeb,0x91,0xd7,0x16,0x09,0xb0,0xd5,0x6c,0x8b,0x8d,0x13,0x4e,0x13,0xf9,0x1f,0x65,0xa9,0x62,0xfb,0xbf,0x9b,0x40,0x48,0xed,0xaf,0x97,0x16,0x87,0xb9,0x7d,0x89,0x0d,0x8c,0xc0,0xe3,0xa3,0x59,0x74,0xf2,0x48,0x65,0x9f,0xc6,0xd3,0x35,0x7a,0x98,0x90,0x98,0x98};
#include <zlib.h>
unsigned char* gzip_decompress(const unsigned char* compressed_data, size_t compressed_size, size_t* decompressed_size) { if (!compressed_data || compressed_size == 0) { return NULL; }
z_stream strm; unsigned char* decompressed_data = NULL; size_t buffer_size = compressed_size * 4; int ret;
memset(&strm, 0, sizeof(strm)); strm.zalloc = Z_NULL; strm.zfree = Z_NULL; strm.opaque = Z_NULL; strm.avail_in = compressed_size; strm.next_in = (Bytef*)compressed_data;
ret = inflateInit2(&strm, 16 + MAX_WBITS); if (ret != Z_OK) { fprintf(stderr, "inflateInit2 failed: %d\n", ret); return NULL; }
decompressed_data = (unsigned char*)malloc(buffer_size); if (!decompressed_data) { inflateEnd(&strm); return NULL; }
strm.avail_out = buffer_size; strm.next_out = decompressed_data;
do { ret = inflate(&strm, Z_NO_FLUSH); switch (ret) { case Z_NEED_DICT: case Z_DATA_ERROR: case Z_MEM_ERROR: fprintf(stderr, "inflate failed: %d\n", ret); free(decompressed_data); inflateEnd(&strm); return NULL; }
if (strm.avail_out == 0) { size_t old_size = buffer_size; buffer_size *= 2; unsigned char* new_data = (unsigned char*)realloc(decompressed_data, buffer_size); if (!new_data) { free(decompressed_data); inflateEnd(&strm); return NULL; } decompressed_data = new_data; strm.next_out = decompressed_data + old_size; strm.avail_out = buffer_size - old_size; } } while (ret != Z_STREAM_END);
*decompressed_size = buffer_size - strm.avail_out;
inflateEnd(&strm);
return decompressed_data; }
unsigned char* Part5decode() { for(int i=0; i<sizeof(Part5Code)/sizeof(Part5Code[0]); i++) { Part5Code[i] = Part5Code[i] ^ 0x98; } size_t decompressed_size; unsigned char *decompressedData = gzip_decompress((unsigned char*)Part5Code, sizeof(Part5Code), &decompressed_size);
unsigned char *finalData = malloc(sizeof(unsigned char)*90); for(int i=6; i<2048; i+=133) { finalData[(i-6)/133] = decompressedData[i]; } finalData[16] = '\0'; return finalData; }
unsigned char Part6Code[] = { 0x87,0x13,0x90,0x98,0x98,0x98,0x98,0x98,0x98,0x9b,0x75,0xc3,0xf5,0xf4,0x84,0xdf,0x81,0x06,0xa3,0x63,0x04,0xab,0xee,0x77,0x56,0xf5,0xc4,0x84,0xa3,0x5c,0x0f,0x52,0x3d,0xd6,0x70,0xf5,0xfa,0x5f,0xa9,0x96,0x5d,0x55,0x41,0xa6,0x43,0x73,0x4c,0xe9,0xc4,0x5f,0x8e,0xf2,0x9b,0x45,0x34,0x77,0x6e,0xe4,0x9f,0x6f,0x3d,0x25,0x25,0x5e,0xb6,0x0d,0xfa,0xe8,0x9b,0x00,0x52,0xbd,0xcd,0xc9,0x0d,0xba,0x08,0x32,0x12,0x87,0x65,0x99,0xb0,0xda,0x39,0xf2,0x67,0xdc,0x8f,0x3d,0xd5,0x99,0x39,0xb2,0x71,0x17,0x52,0x8c,0x3c,0xc2,0x10,0xd0,0x96,0x8c,0xe8,0xdd,0x19,0x8e,0x1c,0x0f,0x01,0x45,0xe1,0x6f,0xee,0x5e,0x2f,0xd5,0x4c,0xa7,0x90,0x2c,0x17,0xed,0x6f,0x54,0x24,0x6b,0xa6,0x6b,0x2d,0x2b,0xef,0xeb,0x46,0xef,0xd6,0x97,0x17,0x17,0xe0,0xa5,0x86,0x9c,0x30,0xd9,0x6f,0xbb,0x0a,0xb3,0x1f,0x54,0xe4,0x0c,0x42,0x57,0x6d,0xc2,0xb6,0x40,0x4e,0x1f,0x9a,0x60,0x25,0x85,0x75,0xda,0xed,0xa0,0xc7,0xf3,0x6b,0x7b,0xa1,0xcc,0x5b,0x2a,0x47,0xf2,0x5f,0x4c,0xe5,0x0f,0x42,0xe1,0x46,0x11,0xc0,0x6e,0x40,0x20,0x8e,0xa1,0x3b,0x2b,0x16,0xfd,0x8c,0x32,0x70,0xe4,0x2e,0xa4,0x57,0xa7,0x6b,0x28,0xf4,0x4f,0x81,0x75,0x1d,0x31,0x05,0x7b,0xde,0x97,0x53,0xee,0x85,0x71,0x5a,0x4d,0x10,0x01,0x27,0x42,0x57,0x2a,0x70,0xad,0xe1,0x4a,0x53,0x72,0x24,0xcc,0x2f,0xde,0xed,0xf3,0x65,0x84,0xe3,0xc0,0x1e,0x61,0x34,0x3d,0x37,0xd1,0xa2,0xe7,0xa4,0x6b,0x45,0x7f,0xed,0x9d,0x72,0x5f,0xeb,0x9f,0xfa,0x21,0x0e,0x4b,0x25,0xd3,0xb3,0x7c,0x01,0xf7,0x97,0xec,0x5f,0x37,0xf3,0x11,0x17,0x4b,0x57,0xd1,0x32,0xf3,0x3c,0x9d,0xa4,0x47,0x13,0xc0,0x1e,0x6e,0x86,0x5c,0xa2,0xc0,0x92,0x2f,0x9a,0xc0,0x8e,0xcb,0x2c,0xa5,0x3f,0x73,0x2f,0x47,0x53,0xaa,0xc4,0x66,0xc2,0xc2,0x9f,0xc1,0xf3,0x3b,0x8b,0xab,0x50,0x23,0x10,0x52,0x2d,0xc4,0x61,0xee,0xfc,0x36,0xe7,0xca,0xe6,0x5b,0xe7,0x71,0xe4,0x5b,0xef,0x06,0x65,0x72,0x11,0x07,0x96,0xc5,0xf7,0x14,0xb6,0x3f,0x77,0x77,0xe5,0x23,0xe3,0xc7,0xbe,0xa5,0x43,0x43,0x2b,0xb7,0x0b,0x10,0xfc,0x4a,0x21,0x4a,0xe4,0xfc,0x26,0x37,0xaf,0x4a,0x43,0xbb,0x8c,0x6b,0xda,0x2f,0x2d,0xa6,0xf8,0xe5,0xb9,0x6c,0xad,0x7b,0x85,0x5e,0xe0,0xd5,0xe1,0xbb,0x63,0xc9,0x7b,0xbb,0x22,0x43,0x33,0x40,0x73,0x85,0x74,0x97,0x38,0x52,0x2d,0x28,0xfb,0x56,0x59,0x66,0x30,0x1b,0x25,0x95,0x27,0x76,0x32,0x4e,0x39,0xda,0xd1,0x13,0x3f,0xfc,0x8d,0xd1,0x8a,0x86,0xed,0xc4,0xb2,0xf2,0x2a,0x32,0xd1,0xc1,0xa1,0x05,0x5b,0x0e,0x60,0x24,0xb4,0xbd,0x4b,0xa1,0xa1,0x0b,0xe6,0xd4,0xd9,0x3c,0x00,0x54,0xd9,0xb7,0x82,0x85,0x87,0x83,0x84,0x0a,0x22,0x1d,0x9b,0xa5,0xce,0x2a,0xc3,0xa0,0x10,0x3c,0x29,0x71,0x3b,0xca,0xda,0xc9,0x0d,0x21,0xec,0xc9,0xcb,0x4c,0x71,0x3b,0xdb,0x01,0xe4,0xd6,0x01,0x0e,0xff,0xab,0x92,0x36,0xf3,0xb6,0x03,0x57,0x49,0x42,0xbd,0x4b,0x2d,0x32,0xbb,0x21,0x9b,0xf3,0x68,0xb4,0x09,0xa7,0x37,0xa9,0xc7,0xc6,0x2c,0x8f,0xcd,0x4e,0x5d,0x1d,0x3f,0x07,0x35,0xbb,0xcf,0x37,0x1f,0x42,0xd2,0x35,0x71,0xe2,0x3a,0xa1,0xd4,0x53,0xf9,0xe5,0x58,0x22,0xe5,0x26,0x51,0x7c,0xcd,0x56,0xe6,0x0a,0x42,0xdb,0xc9,0x4e,0x96,0x61,0xaa,0x35,0x28,0x96,0x01,0x07,0x91,0x18,0x07,0x43,0x74,0xad,0xae,0x63,0xcd,0x03,0x45,0x66,0x61,0x20,0xf2,0x2b,0x63,0xf4,0x6e,0xad,0x03,0x05,0x21,0xa7,0xf0,0x63,0x43,0xc8,0xfd,0x55,0x22,0xe8,0x79,0x5a,0x1d,0x93,0x8f,0xb6,0xc4,0x20,0x60,0x67,0x19,0x20,0x6c,0x36,0xc7,0xe4,0x4a,0x6f,0x42,0xa6,0x04,0xa4,0xcb,0x4e,0x24,0x62,0xcd,0xe9,0x71,0xcd,0x67,0xfd,0x33,0xc4,0xa7,0x60,0xd3,0xc4,0x3c,0x47,0x65,0xb3,0x64,0x86,0xf4,0x17,0x7a,0x8c,0x51,0x3f,0xd0,0x49,0x15,0xad,0x85,0x7b,0x76,0x77,0x79,0xe4,0x6a,0x34,0xcd,0x47,0x53,0xe3,0xa7,0xb5,0xef,0x6c,0x33,0x72,0xcf,0xfe,0x5c,0x0d,0x50,0x93,0xd9,0x64,0x13,0x37,0x73,0xaf,0x20,0x09,0xd6,0xe9,0xa1,0x4e,0x89,0x88,0xc7,0xa6,0x4c,0x0f,0x63,0x34,0xe8,0x78,0x48,0x76,0x7c,0x73,0x29,0x16,0xc5,0x40,0x85,0xc3,0x77,0x24,0x1a,0x0b,0x05,0x53,0x33,0x3a,0xe6,0xa1,0x62,0x75,0x5f,0xef,0x46,0x8e,0xe5,0xda,0x4f,0x42,0xc6,0xb9,0x83,0x48,0x7f,0x66,0x69,0x39,0x80,0xe7,0xab,0x42,0x65,0xe0,0xab,0x12,0x9e,0xb7,0x72,0x73,0x3f,0xe9,0xe3,0xe7,0xe4,0x93,0xef,0x28,0x2b,0x33,0xe4,0x7a,0xd3,0x0f,0xd1,0xe7,0x22,0x66,0xac,0x2e,0xe4,0x75,0x89,0xe9,0x61,0xef,0x7a,0x4a,0x77,0xaf,0xbe,0x3f,0x1f,0x23,0x52,0xc5,0x27,0x88,0xcf,0x62,0xd3,0x3c,0xf3,0x55,0x77,0x90,0x90,0x25,0x07,0x8c,0x1a,0x75,0xd7,0x80,0xe5,0xbb,0x66,0x20,0xf4,0xaf,0x81,0x73,0x12,0x37,0x0d,0x48,0x39,0x97,0x2c,0xfe,0xa4,0x64,0x13,0x1a,0xa1,0x64,0xe2,0xe5,0xb5,0x40,0x26,0xd0,0xe4,0xb7,0xcb,0x5e,0x66,0x77,0x09,0x5a,0x0d,0x1b,0xe7,0xb8,0x2c,0xff,0xcb,0xc4,0x46,0x88,0xb7,0x65,0x61,0x28,0xe0,0x71,0x1b,0x82,0x49,0xeb,0xdd,0x24,0x2e,0x31,0xf5,0x5f,0x8d,0x34,0x48,0x92,0x64,0x62,0xc2,0xaa,0x40,0x86,0x33,0x70,0x67,0x82,0x44,0x6d,0x57,0x5d,0x66,0x87,0x7b,0xfa,0xcc,0x62,0x54,0x14,0x20,0x4c,0x67,0xfd,0x0a,0x8c,0x0f,0x37,0xf3,0x15,0x7a,0x0b,0x65,0xd7,0x79,0x54,0x62,0xb3,0x03,0x22,0x26,0x06,0x58,0x65,0x25,0x7a,0xa3,0x1b,0x6b,0x86,0xaa,0xa8,0xde,0xe7,0x7b,0x8c,0xb6,0x1c,0xf3,0x5d,0xc4,0x85,0x8f,0xb6,0xc4,0x20,0xe8,0x79,0x5a,0x1d,0x93,0x8f,0xb6,0xc4,0x20,0xe8,0x79,0x7a,0x4e,0xd8,0x06,0xf7,0xa5,0xe4,0xfc,0xfe,0xf0,0xe2,0x9c,0x3f,0x43,0xf2,0x76,0x73,0xdc,0x6c,0x81,0x7d,0x1e,0x36,0xf3,0x00,0xe3,0xa8,0xe7,0x87,0xeb,0x94,0x6b,0x9d,0x54,0x8f,0xa8,0x5f,0x08,0x61,0x94,0x4b,0x48,0xa7,0xae,0x1d,0xa4,0x6b,0xb9,0xd7,0xc3,0x7b,0xae,0x67,0xc1,0x57,0x2e,0x88,0x29,0x0b,0xff,0x6e,0xb1,0x74,0xff,0xe7,0x46,0xcf,0x45,0x47,0xe4,0x36,0xd4,0x64,0x57,0x65,0xdd,0x4f,0x5b,0x5c,0xb9,0x88,0x82,0x91,0x2c,0x84,0x91,0xae,0x04,0x6a,0xb7,0x3a,0x5b,0x35,0x6f,0x75,0xa5,0x48,0xe9,0x8f,0x70,0xd1,0x23,0xff,0x29,0x07,0x47,0xce,0xb7,0x49,0xe7,0x89,0x27,0x26,0x1d,0x75,0x81,0xfa,0xe0,0xb8,0x88,0x62,0x1e,0xcf,0x94,0x2c,0xb4,0x4d,0x14,0x9c,0x3a,0x46,0x11,0xd8,0x53,0xc8,0xb8,0xac,0x88,0xa8,0xbc,0x68,0xf4,0x0e,0xa4,0x4f,0xba,0x57,0xc6,0x91,0x50,0xab,0xac,0x63,0x6b,0xad,0x8f,0xb6,0xc4,0x20,0xe8,0x79,0x5a,0x1d,0x93,0x8f,0xb6,0xc4,0x20,0x60,0xc7,0x99,0x5c,0x83,0xda,0xe4,0xb9,0x5c,0x68,0x75,0x3d,0x44,0x90,0x16,0xac,0x38,0x69,0xae,0x02,0x65,0x89,0x6d,0x47,0xd9,0x6b,0x88,0x5f,0x40,0xde,0x6b,0x68,0x03,0x33,0x0d,0xaa,0x5c,0xab,0x76,0x7c,0x52,0x67,0x2e,0x31,0x7f,0x91,0x07,0x3f,0x59,0x11,0x88,0xeb,0x20,0xd0,0x1b,0x8a,0xb9,0x4e,0xe8,0x0d,0x0e,0xe7,0x1a,0x7e,0x79,0x99,0xea,0x9b,0x7d,0x8e,0x52,0x55,0x10,0x9d,0x5c,0xa4,0x36,0x4b,0x60,0xdd,0xb7,0x7f,0x97,0x27,0xab,0x2f,0xc9,0x66,0xbc,0x7d,0xc8,0x85,0xf3,0x07,0x6c,0x29,0x65,0xb6,0xcb,0x36,0x7f,0x72,0x63,0x0f,0xf6,0x16,0x9f,0xc4,0xaf,0xf1,0xa6,0xd4,0x6d,0xa2,0x55,0x5b,0xa4,0xf7,0x48,0xe4,0x10,0x0e,0xe7,0xd0,0x6b,0x6e,0xc0,0x55,0x67,0x9e,0xb8,0xe6,0x04,0xdf,0xf7,0x10,0x55,0xdb,0x64,0x71,0x70,0x48,0x48,0x7f,0x5a,0x05,0xa9,0xfd,0xae,0xb5,0x7f,0x5a,0xc5,0xa5,0xda,0x2f,0x28,0xa7,0x4a,0xed,0xf0,0x97,0xd5,0xa2,0x2f,0xfb,0x5e,0x53,0x27,0x3f,0x6b,0x6e,0xe2,0x3b,0x74,0x16,0xb5,0x69,0x79,0xef,0xa0,0x60,0x77,0xec,0x28,0x47,0x1b,0x50,0xad,0x97,0x38,0x95,0x36,0x47,0xe3,0x30,0xa5,0x44,0x5c,0x42,0xa7,0xd7,0x75,0xbf,0xa1,0x63,0x0c,0x49,0x07,0xce,0x4c,0x8a,0x35,0x6c,0x03,0x78,0x89,0xbb,0x45,0xf4,0x35,0xf7,0x58,0x81,0xc2,0x57,0x6b,0xc4,0xa5,0xd7,0x83,0x66,0x43,0x35,0x63,0x7d,0xfe,0x65,0xa7,0xf7,0x60,0x47,0x16,0x4e,0x5b,0xe4,0xd1,0xed,0x67,0x13,0x1e,0x67,0x05,0xc3,0x36,0x47,0x73,0x5e,0xe3,0x0b,0x8d,0x67,0x96,0xe0,0x43,0x68,0xf7,0x29,0x76,0x97,0x58,0x9e,0x32,0x86,0x47,0xc5,0x73,0x31,0xf6,0x47,0x75,0x31,0x86,0x5f,0xa5,0xf6,0x40,0xef,0xb8,0xe7,0x0c,0x2d,0x6f,0xe3,0x50,0xdf,0x52,0x96,0xf3,0xa6,0x99,0xa9,0xca,0x27,0xaf,0xf0,0xe5,0x26,0x98,0x16,0xc8,0xe7,0x26,0x06,0xb7,0xa0,0x2c,0x03,0x5c,0x6e,0xbe,0x77,0x96,0xf3,0xe5,0x9a,0x12,0x5c,0xd6,0xa6,0x54,0x30,0x90,0xfa,0x07,0x27,0xf6,0x4c,0x47,0x12,0x5a,0x04,0x67,0x3c,0xa9,0x46,0x18,0xed,0x26,0x9d,0x66,0xdf,0x6d,0xd5,0x72,0x57,0x6f,0x67,0x81,0x72,0xa7,0xd1,0x65,0xab,0x4c,0xe6,0x16,0x6e,0x1f,0x6f,0x67,0x39,0xdb,0x67,0xb7,0xe2,0x32,0x5f,0x27,0x67,0x42,0x00,0x07,0x1e,0xd2,0x18,0xa1,0x78,0xe0,0xc4,0x4d,0x22,0x1c,0xa4,0x0a,0xbc,0xe1,0xae,0xb5,0xf1,0x6a,0x84,0x52,0x0f,0x2c,0xda,0xd1,0x8b,0x7a,0x90,0x0f,0x8c,0x2d,0xca,0xaa,0x11,0x0b,0x0d,0xe8,0xef,0xd1,0x53,0xd2,0xe9,0x8a,0x5f,0xc6,0x5c,0x0a,0xdc,0xc6,0x02,0x53,0x7c,0xff,0x7d,0x14,0x0c,0x48,0x6a,0xf2,0xc9,0x0a,0xd3,0x6b,0xb0,0x06,0x57,0x8e,0xaa,0x12,0x3e,0xbc,0x68,0x75,0xc3,0x4d,0x1b,0x1c,0x42,0x3f,0xbd,0xc1,0xcd,0x7d,0x9d,0xd1,0x51,0xf1,0x72,0x9a,0xd2,0x32,0xea,0xce,0x09,0x8a,0x3d,0xf4,0xee,0x99,0xd3,0xf4,0xa1,0x91,0xe3,0xf2,0x14,0x33,0xbc,0x15,0xd4,0x95,0x84,0x85,0x0e,0x1e,0xbf,0xfa,0xbc,0x26,0xa6,0x6e,0x48,0x5c,0x58,0x49,0x29,0xb9,0xf4,0x86,0x05,0x00,0x09,0x1e,0xdd,0xc2,0xb2,0x5e,0x3e,0x08,0xac,0xa2,0xe6,0xf4,0xe8,0xf8,0xc4,0xa2,0xae,0xaa,0xea,0xe4,0xe0,0xc2,0x02,0x86,0x80,0x84,0x87,0x0e,0x78,0x80,0xd8,0x0c,0x91,0x70,0x7f,0x17,0x9c,0xdc,0xf5,0x09,0x67,0x87,0x81,0x75,0x37,0xbc,0xfc,0xd5,0xde,0x5e,0x18,0x50,0xc0,0xe9,0x5e,0x34,0xfd,0x53,0xa1,0x98,0xb1,0xc9,0x54,0xd3,0xb1,0xa1,0x0f,0xb8,0x32,0x29,0xfb,0x20,0xb8,0x09,0x56,0xd1,0x3d,0x3a,0x0a,0x58,0x0d,0x7c,0x68,0x03,0xac,0xc3,0xb4,0xca,0xb5,0xa5,0x0c,0x18,0xc3,0x1a,0xc9,0xa2,0x06,0xba,0xf8,0x17,0xb6,0x28,0x1b,0xba,0xcb,0x1f,0x08,0xc8,0xc4,0x50,0xf2,0x6a,0xb4,0xfe,0xd5,0xad,0xa1,0x9d,0x31,0xc4,0xc6,0xcb,0x1c,0x21,0xc4,0xd1,0xb0,0x30,0x61,0x1a,0x3a,0xf2,0x93,0xae,0x4b,0xf4,0xb1,0x05,0xd1,0xdc,0x4a,0x91,0xbc,0x3c,0xeb,0x20,0x49,0x9a,0xaa,0x34,0xb1,0x21,0x00,0xda,0xda,0xfa,0xb9,0x1f,0xb3,0xad,0xc1,0xcb,0x55,0x0a,0xdf,0x8d,0x2d,0x00,0x56,0x7f,0x00,0x14,0x1c,0x53,0xcc,0xbd,0xbb,0x8b,0xdf,0x02,0xb2,0xfc,0xac,0xca,0xbb,0x76,0x80,0xd1,0x92,0xeb,0xe1,0x04,0x48,0x0c,0xe1,0x64,0xf6,0xd4,0x39,0x38,0x7e,0x15,0x91,0x8d,0x0c,0x8c,0xc5,0x9d,0x31,0x1c,0xc2,0x51,0x49,0x66,0x95,0x94,0x16,0xdd,0x50,0xa2,0x8d,0xb2,0x13,0x5b,0x4c,0xdb,0x82,0x2f,0xbf,0xff,0x4b,0xe9,0xdc,0x72,0xaf,0x03,0xac,0xf3,0x5d,0xcb,0x14,0x9c,0x24,0xa4,0x2b,0xe0,0xb1,0xcd,0x21,0xdd,0xa6,0x8e,0x50,0x26,0x1d,0xe4,0x4f,0x5b,0x66,0x58,0x71,0x04,0x89,0x58,0x57,0x7d,0x9d,0xd6,0x77,0xec,0xb6,0x92,0x58,0x07,0xd1,0x83,0xd8,0x7e,0xef,0x92,0x70,0x05,0x56,0x2f,0x99,0x60,0x2b,0x8e,0xfb,0x60,0x6d,0xef,0x24,0xef,0x98,0xa5,0x74,0x3f,0x56,0xeb,0x75,0x5b,0x66,0x12,0x77,0x67,0xe9,0xfc,0x76,0x3d,0xd8,0x97,0x63,0xb5,0x78,0x8f,0x31,0x85,0x56,0x8a,0x19,0x86,0x6e,0xa5,0xbf,0x88,0x63,0x27,0xe9,0x40,0x27,0x99,0xc3,0x99,0xe7,0x96,0x65,0x17,0xbb,0xeb,0xf7,0xfc,0x85,0xf7,0x6b,0x29,0x84,0x78,0x62,0x77,0x7d,0x20,0x18,0x54,0x25,0x8e,0x7c,0xf9,0x27,0x9d,0x94,0xc3,0x88,0x26,0x67,0x18,0x4b,0x50,0x24,0xbe,0x4e,0x6d,0x6f,0x29,0xc4,0x7e,0x42,0x7f,0x5f,0x27,0xd4,0x6d,0x1b,0x48,0x67,0xa2,0x0e,0x59,0x57,0xdf,0x4b,0x24,0x66,0x81,0xfc,0xa7,0x3b,0x1d,0x2e,0x04,0xaf,0x1c,0xe5,0xb1,0x18,0xc7,0xa7,0xd7,0xe9,0x62,0xe8,0x10,0xfb,0x56,0x07,0xa7,0x4e,0x60,0x84,0x3f,0x17,0x1e,0xc0,0x7e,0x7f,0x53,0x57,0x69,0x93,0x04,0x86,0x26,0x67,0x18,0x87,0x7a,0xb6,0xa0,0x67,0x6d,0x6d,0xba,0x3f,0x1f,0x77,0xe7,0x78,0xe2,0x56,0x07,0x87,0x67,0xd7,0x88,0xe3,0x67,0x68,0x9f,0x9b,0x83,0xa0,0xe7,0xc6,0x67,0x8a,0x3f,0xef,0xa2,0xb7,0x70,0x3c,0xe7,0x0d,0x4b,0x6f,0x1d,0xc1,0x26,0x58,0x61,0x6b,0x6b,0x61,0x9e,0xfa,0xa7,0xa7,0x04,0x56,0xdf,0xa2,0x2d,0x67,0xc3,0xfc,0x46,0xbb,0x68,0x23,0x59,0xa2,0xe7,0x80,0x31,0x46,0x86,0xe7,0x65,0x4e,0x69,0xb3,0xf0,0x4b,0x5b,0xe6,0xee,0x6d,0x8e,0x6d,0x77,0xbb,0x6e,0x14,0x01,0xed,0x66,0x8c,0x56,0x3d,0x4a,0x73,0xc7,0x5f,0x71,0xf8,0x85,0x64,0x98,0x01,0x6b,0x9f,0xe2,0xa0,0x57,0xce,0x46,0xff,0xea,0x7f,0xd5,0x42,0x67,0xaf,0x3f,0x1f,0x65,0x74,0xa2,0x4d,0x1f,0xf7,0x3a,0x37,0x6b,0x28,0xe2,0x40,0xff,0x62,0x6f,0x2b,0x65,0x7c,0x6d,0x98,0xea,0x06,0x4f,0xf7,0x4b,0x5b,0xa6,0x37,0xfd,0xe7,0xed,0xe7,0x66,0x6b,0x37,0x11,0x2e,0x57,0x67,0xcc,0x9a,0xe5,0x23,0x1b,0x46,0x56,0x4d,0x06,0xd3,0x6e,0xc9,0x65,0xd1,0x42,0x29,0xd7,0xb9,0xeb,0x67,0x56,0xe7,0x66,0x4c,0x3b,0x72,0x27,0xa1,0x57,0x85,0xa8,0x61,0x85,0x36,0x5b,0xc3,0x62,0x77,0x38,0xa7,0xed,0x48,0x7c,0x4e,0x03,0x70,0x67,0x9b,0x6e,0x70,0xd7,0x45,0xc0,0xa6,0x98,0x98 }; #define _GNU_SOURCE #include <sys/syscall.h> #include <unistd.h> int Part6decode() { for(int i=0; i<sizeof(Part6Code)/sizeof(Part6Code[0]); i++) { Part6Code[i] = Part6Code[i] ^ 0x98; } size_t decompressed_size; unsigned char *decompressedData = gzip_decompress((unsigned char*)Part6Code, sizeof(Part6Code), &decompressed_size); int fd = syscall(SYS_memfd_create, "mem", 0); write(fd, decompressedData, decompressed_size); char *argv[] = {NULL}; char *envp[] = {NULL}; fexecve(fd, argv, envp); perror("fexecve"); return 1; }
int main() { char *decodedPart1 = base64decode(part1Code); printf("%s", decodedPart1); free(decodedPart1); char *decodedPart2 = part2Decoded(); printf("%s", decodedPart2); free(decodedPart2); char *encryptedPart3 = "e3d08f470b061df1cca94eb68adaffb011f1f19f26770496494033f497302ffe"; char *decryptedPart3 = part3_AES_decrypt(encryptedPart3); printf("%s", decryptedPart3); free(decryptedPart3); unsigned char *part5Data = Part5decode(); printf("%s", part5Data); fflush(stdout); free(part5Data); Part6decode();
return 0; }
|