• CG-CTF 签到


    int __cdecl sub_401340(unsigned __int8 *a1)
    {
      int v2; // [esp+18h] [ebp-D0h]
      int v3; // [esp+1Ch] [ebp-CCh]
      int v4; // [esp+20h] [ebp-C8h]
      int v5; // [esp+24h] [ebp-C4h]
      int v6; // [esp+28h] [ebp-C0h]
      int v7; // [esp+2Ch] [ebp-BCh]
      int v8; // [esp+30h] [ebp-B8h]
      int v9; // [esp+34h] [ebp-B4h]
      int v10; // [esp+38h] [ebp-B0h]
      int v11; // [esp+3Ch] [ebp-ACh]
      int v12; // [esp+40h] [ebp-A8h]
      int v13; // [esp+44h] [ebp-A4h]
      int v14; // [esp+48h] [ebp-A0h]
      int v15; // [esp+4Ch] [ebp-9Ch]
      int v16; // [esp+50h] [ebp-98h]
      int v17; // [esp+54h] [ebp-94h]
      int v18; // [esp+58h] [ebp-90h]
      int v19; // [esp+5Ch] [ebp-8Ch]
      int v20; // [esp+60h] [ebp-88h]
      int v21; // [esp+64h] [ebp-84h]
      int v22; // [esp+68h] [ebp-80h]
      int v23; // [esp+6Ch] [ebp-7Ch]
      int v24; // [esp+70h] [ebp-78h]
      int v25; // [esp+74h] [ebp-74h]
      int v26; // [esp+78h] [ebp-70h]
      int v27; // [esp+7Ch] [ebp-6Ch]
      int v28; // [esp+80h] [ebp-68h]
      int v29; // [esp+84h] [ebp-64h]
      int v30; // [esp+88h] [ebp-60h]
      int v31; // [esp+8Ch] [ebp-5Ch]
      int v32; // [esp+90h] [ebp-58h]
      int v33; // [esp+94h] [ebp-54h]
      int v34; // [esp+98h] [ebp-50h]
      int v35; // [esp+9Ch] [ebp-4Ch]
      int v36; // [esp+A0h] [ebp-48h]
      int v37; // [esp+A4h] [ebp-44h]
      int v38; // [esp+A8h] [ebp-40h]
      int v39; // [esp+ACh] [ebp-3Ch]
      int v40; // [esp+B0h] [ebp-38h]
      int v41; // [esp+B4h] [ebp-34h]
      int v42; // [esp+B8h] [ebp-30h]
      int v43; // [esp+BCh] [ebp-2Ch]
      int v44; // [esp+C0h] [ebp-28h]
      int v45; // [esp+C4h] [ebp-24h]
      int v46; // [esp+C8h] [ebp-20h]
      int v47; // [esp+CCh] [ebp-1Ch]
      int v48; // [esp+D0h] [ebp-18h]
      int v49; // [esp+D4h] [ebp-14h]
      int v50; // [esp+D8h] [ebp-10h]
      int i; // [esp+DCh] [ebp-Ch]
    
      v2 = 34 * a1[3] + 12 * *a1 + 53 * a1[1] + 6 * a1[2] + 58 * a1[4] + 36 * a1[5] + a1[6];
      v3 = 27 * a1[4] + 73 * a1[3] + 12 * a1[2] + 83 * *a1 + 85 * a1[1] + 96 * a1[5] + 52 * a1[6];
      v4 = 24 * a1[2] + 78 * *a1 + 53 * a1[1] + 36 * a1[3] + 86 * a1[4] + 25 * a1[5] + 46 * a1[6];
      v5 = 78 * a1[1] + 39 * *a1 + 52 * a1[2] + 9 * a1[3] + 62 * a1[4] + 37 * a1[5] + 84 * a1[6];
      v6 = 48 * a1[4] + 6 * a1[1] + 23 * *a1 + 14 * a1[2] + 74 * a1[3] + 12 * a1[5] + 83 * a1[6];
      v7 = 15 * a1[5] + 48 * a1[4] + 92 * a1[2] + 85 * a1[1] + 27 * *a1 + 42 * a1[3] + 72 * a1[6];
      v8 = 26 * a1[5] + 67 * a1[3] + 6 * a1[1] + 4 * *a1 + 3 * a1[2] + 68 * a1[6];
      v9 = 34 * a1[10] + 12 * a1[7] + 53 * a1[8] + 6 * a1[9] + 58 * a1[11] + 36 * a1[12] + a1[13];
      v10 = 27 * a1[11] + 73 * a1[10] + 12 * a1[9] + 83 * a1[7] + 85 * a1[8] + 96 * a1[12] + 52 * a1[13];
      v11 = 24 * a1[9] + 78 * a1[7] + 53 * a1[8] + 36 * a1[10] + 86 * a1[11] + 25 * a1[12] + 46 * a1[13];
      v12 = 78 * a1[8] + 39 * a1[7] + 52 * a1[9] + 9 * a1[10] + 62 * a1[11] + 37 * a1[12] + 84 * a1[13];
      v13 = 48 * a1[11] + 6 * a1[8] + 23 * a1[7] + 14 * a1[9] + 74 * a1[10] + 12 * a1[12] + 83 * a1[13];
      v14 = 15 * a1[12] + 48 * a1[11] + 92 * a1[9] + 85 * a1[8] + 27 * a1[7] + 42 * a1[10] + 72 * a1[13];
      v15 = 26 * a1[12] + 67 * a1[10] + 6 * a1[8] + 4 * a1[7] + 3 * a1[9] + 68 * a1[13];
      v16 = 34 * a1[17] + 12 * a1[14] + 53 * a1[15] + 6 * a1[16] + 58 * a1[18] + 36 * a1[19] + a1[20];
      v17 = 27 * a1[18] + 73 * a1[17] + 12 * a1[16] + 83 * a1[14] + 85 * a1[15] + 96 * a1[19] + 52 * a1[20];
      v18 = 24 * a1[16] + 78 * a1[14] + 53 * a1[15] + 36 * a1[17] + 86 * a1[18] + 25 * a1[19] + 46 * a1[20];
      v19 = 78 * a1[15] + 39 * a1[14] + 52 * a1[16] + 9 * a1[17] + 62 * a1[18] + 37 * a1[19] + 84 * a1[20];
      v20 = 48 * a1[18] + 6 * a1[15] + 23 * a1[14] + 14 * a1[16] + 74 * a1[17] + 12 * a1[19] + 83 * a1[20];
      v21 = 15 * a1[19] + 48 * a1[18] + 92 * a1[16] + 85 * a1[15] + 27 * a1[14] + 42 * a1[17] + 72 * a1[20];
      v22 = 26 * a1[19] + 67 * a1[17] + 6 * a1[15] + 4 * a1[14] + 3 * a1[16] + 68 * a1[20];
      v23 = 34 * a1[24] + 12 * a1[21] + 53 * a1[22] + 6 * a1[23] + 58 * a1[25] + 36 * a1[26] + a1[27];
      v24 = 27 * a1[25] + 73 * a1[24] + 12 * a1[23] + 83 * a1[21] + 85 * a1[22] + 96 * a1[26] + 52 * a1[27];
      v25 = 24 * a1[23] + 78 * a1[21] + 53 * a1[22] + 36 * a1[24] + 86 * a1[25] + 25 * a1[26] + 46 * a1[27];
      v26 = 78 * a1[22] + 39 * a1[21] + 52 * a1[23] + 9 * a1[24] + 62 * a1[25] + 37 * a1[26] + 84 * a1[27];
      v27 = 48 * a1[25] + 6 * a1[22] + 23 * a1[21] + 14 * a1[23] + 74 * a1[24] + 12 * a1[26] + 83 * a1[27];
      v28 = 15 * a1[26] + 48 * a1[25] + 92 * a1[23] + 85 * a1[22] + 27 * a1[21] + 42 * a1[24] + 72 * a1[27];
      v29 = 26 * a1[26] + 67 * a1[24] + 6 * a1[22] + 4 * a1[21] + 3 * a1[23] + 68 * a1[27];
      v30 = 34 * a1[31] + 12 * a1[28] + 53 * a1[29] + 6 * a1[30] + 58 * a1[32] + 36 * a1[33] + a1[34];
      v31 = 27 * a1[32] + 73 * a1[31] + 12 * a1[30] + 83 * a1[28] + 85 * a1[29] + 96 * a1[33] + 52 * a1[34];
      v32 = 24 * a1[30] + 78 * a1[28] + 53 * a1[29] + 36 * a1[31] + 86 * a1[32] + 25 * a1[33] + 46 * a1[34];
      v33 = 78 * a1[29] + 39 * a1[28] + 52 * a1[30] + 9 * a1[31] + 62 * a1[32] + 37 * a1[33] + 84 * a1[34];
      v34 = 48 * a1[32] + 6 * a1[29] + 23 * a1[28] + 14 * a1[30] + 74 * a1[31] + 12 * a1[33] + 83 * a1[34];
      v35 = 15 * a1[33] + 48 * a1[32] + 92 * a1[30] + 85 * a1[29] + 27 * a1[28] + 42 * a1[31] + 72 * a1[34];
      v36 = 26 * a1[33] + 67 * a1[31] + 6 * a1[29] + 4 * a1[28] + 3 * a1[30] + 68 * a1[34];
      v37 = 34 * a1[38] + 12 * a1[35] + 53 * a1[36] + 6 * a1[37] + 58 * a1[39] + 36 * a1[40] + a1[41];
      v38 = 27 * a1[39] + 73 * a1[38] + 12 * a1[37] + 83 * a1[35] + 85 * a1[36] + 96 * a1[40] + 52 * a1[41];
      v39 = 24 * a1[37] + 78 * a1[35] + 53 * a1[36] + 36 * a1[38] + 86 * a1[39] + 25 * a1[40] + 46 * a1[41];
      v40 = 78 * a1[36] + 39 * a1[35] + 52 * a1[37] + 9 * a1[38] + 62 * a1[39] + 37 * a1[40] + 84 * a1[41];
      v41 = 48 * a1[39] + 6 * a1[36] + 23 * a1[35] + 14 * a1[37] + 74 * a1[38] + 12 * a1[40] + 83 * a1[41];
      v42 = 15 * a1[40] + 48 * a1[39] + 92 * a1[37] + 85 * a1[36] + 27 * a1[35] + 42 * a1[38] + 72 * a1[41];
      v43 = 26 * a1[40] + 67 * a1[38] + 6 * a1[36] + 4 * a1[35] + 3 * a1[37] + 68 * a1[41];
      v44 = 34 * a1[45] + 12 * a1[42] + 53 * a1[43] + 6 * a1[44] + 58 * a1[46] + 36 * a1[47] + a1[48];
      v45 = 27 * a1[46] + 73 * a1[45] + 12 * a1[44] + 83 * a1[42] + 85 * a1[43] + 96 * a1[47] + 52 * a1[48];
      v46 = 24 * a1[44] + 78 * a1[42] + 53 * a1[43] + 36 * a1[45] + 86 * a1[46] + 25 * a1[47] + 46 * a1[48];
      v47 = 78 * a1[43] + 39 * a1[42] + 52 * a1[44] + 9 * a1[45] + 62 * a1[46] + 37 * a1[47] + 84 * a1[48];
      v48 = 48 * a1[46] + 6 * a1[43] + 23 * a1[42] + 14 * a1[44] + 74 * a1[45] + 12 * a1[47] + 83 * a1[48];
      v49 = 15 * a1[47] + 48 * a1[46] + 92 * a1[44] + 85 * a1[43] + 27 * a1[42] + 42 * a1[45] + 72 * a1[48];
      v50 = 26 * a1[47] + 67 * a1[45] + 6 * a1[43] + 4 * a1[42] + 3 * a1[44] + 68 * a1[48];
      for ( i = 0; i <= 48; ++i )
      {
        if ( *(&v2 + i) != dword_404000[i] )
        {
          printf("GG");
          exit(0);
        }
      }
      return puts("TQL");
    }
    

    这题讲道理,算送分,考个z3的使用,这玩意求多元一次方程,很香,星盟的里面有一题和这题类似,不过比这个
    恶心多了,那个32方程,而且还有位运算,主要是求几十个数组,要分离数据,对方程的处理,上次看到夜影师傅的wp里面有个这类题,直接元编程,把代码编出来,是真的狠。

    1.首先shift+e 取出我们要的数据
    在这里插入图片描述
    将c格式改成py的
    2.利用z3来求解,同时处理方程,我使用replace,替换的,也是偷学的2333,就不放代码了,直接上脚本。

    from z3 import *
    v1 =[18564,
      37316,
      32053,
      33278,
      23993,
      33151,
      15248,
      13719,
      34137,
      27391,
      28639,
      18453,
      28465,
      12384,
      20780,
      45085,
      35827,
      37243,
      26037,
      39409,
      17583,
      20825,
      44474,
      35138,
      36914,
      25918,
      38915,
      17672,
      21219,
      43935,
      37072,
      39359,
      27793,
      41447,
      18098,
      21335,
      46164,
      38698,
      39084,
      29205,
      40913,
      19117,
      21786,
      46573,
      38322,
      41017,
      29298,
      43409,
      19655
      ]
    solver=Solver()
    a1=[Int("u[%d]"%i) for i in range(49)]
    
    solver.add(v1[0]== 34 * a1[3] + 12 * a1[0] + 53 * a1[1] + 6 * a1[2] + 58 * a1[4] + 36 * a1[5] + a1[6])
    solver.add(v1[1] == 27 * a1[4] + 73 * a1[3] + 12 * a1[2] + 83 *a1[0] + 85 * a1[1] + 96 * a1[5] + 52 * a1[6])
    
    solver.add(v1[2] == 24 * a1[2] + 78 * a1[0] + 53 * a1[1] + 36 * a1[3] + 86 * a1[4] + 25 * a1[5] + 46 * a1[6])
    solver.add(v1[3] == 78 * a1[1] + 39 * a1[0] + 52 * a1[2] + 9 * a1[3] + 62 * a1[4] + 37 * a1[5] + 84 * a1[6])
    solver.add(v1[4] == 48 * a1[4] + 6 * a1[1] + 23 *a1[0] + 14 * a1[2] + 74 * a1[3] + 12 * a1[5] + 83 * a1[6])
    solver.add(v1[5] == 15 * a1[5] + 48 * a1[4] + 92 * a1[2] + 85 * a1[1] + 27 * a1[0]+ 42 * a1[3] + 72 * a1[6])
    solver.add(v1[6] == 26 * a1[5] + 67 * a1[3] + 6 * a1[1] + 4 * a1[0] + 3 * a1[2] + 68 * a1[6])
    solver.add(v1[7] == 34 * a1[10] + 12 * a1[7] + 53 * a1[8] + 6 * a1[9] + 58 * a1[11] + 36 * a1[12] + a1[13])
    solver.add(v1[8] == 27 * a1[11] + 73 * a1[10] + 12 * a1[9] + 83 * a1[7] + 85 * a1[8] + 96 * a1[12] + 52 * a1[13])
    solver.add(v1[9] == 24 * a1[9] + 78 * a1[7] + 53 * a1[8] + 36 * a1[10] + 86 * a1[11] + 25 * a1[12] + 46 * a1[13])
    solver.add(v1[10] == 78 * a1[8] + 39 * a1[7] + 52 * a1[9] + 9 * a1[10] + 62 * a1[11] + 37 * a1[12] + 84 * a1[13])
    solver.add(v1[11] == 48 * a1[11] + 6 * a1[8] + 23 * a1[7] + 14 * a1[9] + 74 * a1[10] + 12 * a1[12] + 83 * a1[13])
    solver.add(v1[12] == 15 * a1[12] + 48 * a1[11] + 92 * a1[9] + 85 * a1[8] + 27 * a1[7] + 42 * a1[10] + 72 * a1[13])
    solver.add(v1[13] == 26 * a1[12] + 67 * a1[10] + 6 * a1[8] + 4 * a1[7] + 3 * a1[9] + 68 * a1[13])
    solver.add(v1[14] == 34 * a1[17] + 12 * a1[14] + 53 * a1[15] + 6 * a1[16] + 58 * a1[18] + 36 * a1[19] + a1[20])
    solver.add(v1[15] == 27 * a1[18] + 73 * a1[17] + 12 * a1[16] + 83 * a1[14] + 85 * a1[15] + 96 * a1[19] + 52 * a1[20])
    solver.add(v1[16] == 24 * a1[16] + 78 * a1[14] + 53 * a1[15] + 36 * a1[17] + 86 * a1[18] + 25 * a1[19] + 46 * a1[20])
    solver.add(v1[17] == 78 * a1[15] + 39 * a1[14] + 52 * a1[16] + 9 * a1[17] + 62 * a1[18] + 37 * a1[19] + 84 * a1[20])
    solver.add(v1[18] == 48 * a1[18] + 6 * a1[15] + 23 * a1[14] + 14 * a1[16] + 74 * a1[17] + 12 * a1[19] + 83 * a1[20])
    solver.add(v1[19] == 15 * a1[19] + 48 * a1[18] + 92 * a1[16] + 85 * a1[15] + 27 * a1[14] + 42 * a1[17] + 72 * a1[20])
    solver.add(v1[20] == 26 * a1[19] + 67 * a1[17] + 6 * a1[15] + 4 * a1[14] + 3 * a1[16] + 68 * a1[20])
    solver.add(v1[21] == 34 * a1[24] + 12 * a1[21] + 53 * a1[22] + 6 * a1[23] + 58 * a1[25] + 36 * a1[26] + a1[27])
    solver.add(v1[22] == 27 * a1[25] + 73 * a1[24] + 12 * a1[23] + 83 * a1[21] + 85 * a1[22] + 96 * a1[26] + 52 * a1[27])
    solver.add( v1[23] == 24 * a1[23] + 78 * a1[21] + 53 * a1[22] + 36 * a1[24] + 86 * a1[25] + 25 * a1[26] + 46 * a1[27])
    solver.add(v1[24] == 78 * a1[22] + 39 * a1[21] + 52 * a1[23] + 9 * a1[24] + 62 * a1[25] + 37 * a1[26] + 84 * a1[27])
    solver.add(v1[25] == 48 * a1[25] + 6 * a1[22] + 23 * a1[21] + 14 * a1[23] + 74 * a1[24] + 12 * a1[26] + 83 * a1[27])
    solver.add(v1[26] == 15 * a1[26] + 48 * a1[25] + 92 * a1[23] + 85 * a1[22] + 27 * a1[21] + 42 * a1[24] + 72 * a1[27])
    solver.add(v1[27] == 26 * a1[26] + 67 * a1[24] + 6 * a1[22] + 4 * a1[21] + 3 * a1[23] + 68 * a1[27])
    solver.add(v1[28] == 34 * a1[31] + 12 * a1[28] + 53 * a1[29] + 6 * a1[30] + 58 * a1[32] + 36 * a1[33] + a1[34])
    solver.add(v1[29] == 27 * a1[32] + 73 * a1[31] + 12 * a1[30] + 83 * a1[28] + 85 * a1[29] + 96 * a1[33] + 52 * a1[34])
    solver.add(v1[30] == 24 * a1[30] + 78 * a1[28] + 53 * a1[29] + 36 * a1[31] + 86 * a1[32] + 25 * a1[33] + 46 * a1[34])
    solver.add(v1[31] == 78 * a1[29] + 39 * a1[28] + 52 * a1[30] + 9 * a1[31] + 62 * a1[32] + 37 * a1[33] + 84 * a1[34])
    solver.add(v1[32] == 48 * a1[32] + 6 * a1[29] + 23 * a1[28] + 14 * a1[30] + 74 * a1[31] + 12 * a1[33] + 83 * a1[34])
    solver.add(v1[33] == 15 * a1[33] + 48 * a1[32] + 92 * a1[30] + 85 * a1[29] + 27 * a1[28] + 42 * a1[31] + 72 * a1[34])
    solver.add(v1[34] == 26 * a1[33] + 67 * a1[31] + 6 * a1[29] + 4 * a1[28] + 3 * a1[30] + 68 * a1[34])
    solver.add(v1[35] == 34 * a1[38] + 12 * a1[35] + 53 * a1[36] + 6 * a1[37] + 58 * a1[39] + 36 * a1[40] + a1[41])
    solver.add(v1[36] == 27 * a1[39] + 73 * a1[38] + 12 * a1[37] + 83 * a1[35] + 85 * a1[36] + 96 * a1[40] + 52 * a1[41])
    solver.add(v1[37] == 24 * a1[37] + 78 * a1[35] + 53 * a1[36] + 36 * a1[38] + 86 * a1[39] + 25 * a1[40] + 46 * a1[41])
    solver.add(v1[38] == 78 * a1[36] + 39 * a1[35] + 52 * a1[37] + 9 * a1[38] + 62 * a1[39] + 37 * a1[40] + 84 * a1[41])
    solver.add(v1[39] == 48 * a1[39] + 6 * a1[36] + 23 * a1[35] + 14 * a1[37] + 74 * a1[38] + 12 * a1[40] + 83 * a1[41])
    solver.add(v1[40] == 15 * a1[40] + 48 * a1[39] + 92 * a1[37] + 85 * a1[36] + 27 * a1[35] + 42 * a1[38] + 72 * a1[41])
    solver.add(v1[41] == 26 * a1[40] + 67 * a1[38] + 6 * a1[36] + 4 * a1[35] + 3 * a1[37] + 68 * a1[41])
    solver.add(v1[42] == 34 * a1[45] + 12 * a1[42] + 53 * a1[43] + 6 * a1[44] + 58 * a1[46] + 36 * a1[47] + a1[48])
    solver.add(v1[43] == 27 * a1[46] + 73 * a1[45] + 12 * a1[44] + 83 * a1[42] + 85 * a1[43] + 96 * a1[47] + 52 * a1[48])
    solver.add(v1[44] == 24 * a1[44] + 78 * a1[42] + 53 * a1[43] + 36 * a1[45] + 86 * a1[46] + 25 * a1[47] + 46 * a1[48])
    solver.add(v1[45] == 78 * a1[43] + 39 * a1[42] + 52 * a1[44] + 9 * a1[45] + 62 * a1[46] + 37 * a1[47] + 84 * a1[48])
    solver.add(v1[46] == 48 * a1[46] + 6 * a1[43] + 23 * a1[42] + 14 * a1[44] + 74 * a1[45] + 12 * a1[47] + 83 * a1[48])
    solver.add(v1[47] == 15 * a1[47] + 48 * a1[46] + 92 * a1[44] + 85 * a1[43] + 27 * a1[42] + 42 * a1[45] + 72 * a1[48])
    solver.add(v1[48] == 26 * a1[47] + 67 * a1[45] + 6 * a1[43] + 4 * a1[42] + 3 * a1[44] + 68 * a1[48])
    print(solver.check())
    print(str(solver.model()).replace(",",""))
    u=[i for i in range(49)]
    u[42] = 101
    u[45] = 105
    u[22] = 108
    u[47] = 103
    u[30] = 115
    u[18] = 97
    u[26] = 114
    u[14] = 108
    u[35] = 121
    u[16] = 110
    u[21] = 97
    u[37] = 105
    u[40] = 101
    u[43] = 115
    u[23] = 103
    u[24] = 101
    u[4] = 123
    u[32] = 118
    u[33] = 101
    u[17] = 101
    u[25] = 98
    u[44] = 116
    u[36] = 95
    u[0] = 78
    u[11] = 49
    u[12] = 57
    u[28] = 95
    u[31] = 95
    u[46] = 110
    u[7] = 116
    u[2] = 84
    u[8] = 102
    u[19] = 114
    u[39] = 116
    u[1] = 67
    u[9] = 50
    u[15] = 105
    u[3] = 70
    u[10] = 48
    u[5] = 110
    u[29] = 105
    u[38] = 110
    u[48] = 125
    u[41] = 114
    u[34] = 114
    u[27] = 97
    u[20] = 95
    u[13] = 95
    u[6] = 99
    f=""
    for j in range(49):
        f+=chr(u[j])
    print(f)
    
    
  • 相关阅读:
    Jmeter中的几个重要测试指标释义
    Hibernate无主键配置文件编写
    Hibernate各种主键生成策略与配置详解
    安装禅道的基本步骤
    使用Jmeter进行http接口测试
    myeclipse如何修改Web项目名称
    oracle中根据时间获取最新的一条数据
    JQuery之滑动幻灯片插件Easy Slider初体验
    比较实用的JavaScript库
    UBUNTU下SUBLIME TEXT3的安装+破解+汉化+中文输入
  • 原文地址:https://www.cnblogs.com/YenKoc/p/12779889.html
Copyright © 2020-2023  润新知