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
| int __cdecl main(int argc, const char **argv, const char **envp) { unsigned int v3; // eax unsigned int v4; // eax unsigned int v5; // eax unsigned int v6; // eax unsigned __int8 v8; // [rsp+3h] [rbp-19Dh] unsigned __int8 v9; // [rsp+4h] [rbp-19Ch] unsigned __int8 v10; // [rsp+5h] [rbp-19Bh] unsigned __int8 v11; // [rsp+6h] [rbp-19Ah] unsigned __int8 v12; // [rsp+7h] [rbp-199h] int i; // [rsp+8h] [rbp-198h] unsigned int v14; // [rsp+10h] [rbp-190h] unsigned int v15; // [rsp+14h] [rbp-18Ch] char v16[8]; // [rsp+18h] [rbp-188h] BYREF char nptr[32]; // [rsp+20h] [rbp-180h] BYREF char v18[32]; // [rsp+40h] [rbp-160h] BYREF char v19[32]; // [rsp+60h] [rbp-140h] BYREF char input_data[64]; // [rsp+80h] [rbp-120h] BYREF __int64 v21[10]; // [rsp+C0h] [rbp-E0h] BYREF char v22[136]; // [rsp+110h] [rbp-90h] BYREF unsigned __int64 v23; // [rsp+198h] [rbp-8h]
v23 = __readfsqword(0x28u); init(argc, argv, envp); signal(14, handler); v9 = 0; v10 = 0; v11 = 0; v12 = 0; qmemcpy(v21, "XOW3JPFLXGCK7TWMX6GMZIGOTK7ZJIELS65KBHU3TOG2BT4ZUDEJPGVATS7JDPVNQ2QL7EM3UCHZNGUC", sizeof(v21)); v3 = time(0LL); srand(v3); v8 = rand() % 256; chal1(input_data, 64); if ( strlen(input_data) > 0x32 ) { strcpy(v22, "Out of length.\n"); v4 = strlen(v22); wr1te(1LL, v22, v4); exit(1); } encode(input_data, (__int64)v22); for ( i = 0; i < 160; ++i ) { v8 = lfsr_h(v8); if ( i == 156 ) v12 = v8; if ( i == 157 ) v11 = v8; if ( i == 158 ) v10 = v8; if ( i == 159 ) v9 = v8; } if ( (unsigned int)cmp((__int64)v22, (__int64)v21, 0x50uLL) ) { strcpy(v16, "Right!\n"); alarm(2u); v5 = strlen(v16); wr1te(1LL, v16, v5); strcpy(v19, "Please solve this calculation:\n"); v14 = (v9 - v10) * v11 % v12; printf("(( %d - %d ) * %d ) %% %d=?\n", v9, v10, v11, v12); fgets(nptr, 20, stdin); alarm(0); v15 = atoi(nptr); if ( v15 != v14 ) { printf("You input:%d , but answer:%d", v15, v14); exit(1); } strcpy(v18, "Right! Here's your gift:\n"); v6 = strlen(v18); wr1te(1LL, v18, v6); gift(); } else { puts("Not Right"); } return 0; }
|