zoukankan      html  css  js  c++  java
  • 2019 NCTF Re WP

    0x01 debug

    测试文件:https://www.lanzous.com/i7kr2ta

    1.Linux运行环境

    在Linux上运行linux_server64文件

    2.IDA配置

     1 __int64 __fastcall main(__int64 a1, char **a2, char **a3)
     2 {
     3   size_t v3; // ST08_8
     4   size_t v4; // rax
     5   signed int i; // [rsp+4h] [rbp-43Ch]
     6   char v7[32]; // [rsp+10h] [rbp-430h]
     7   char v8; // [rsp+30h] [rbp-410h]
     8   char v9[8]; // [rsp+130h] [rbp-310h]
     9   char v10; // [rsp+140h] [rbp-300h]
    10   char s; // [rsp+230h] [rbp-210h]
    11   char v12; // [rsp+231h] [rbp-20Fh]
    12   char v13; // [rsp+232h] [rbp-20Eh]
    13   char v14; // [rsp+233h] [rbp-20Dh]
    14   char v15; // [rsp+234h] [rbp-20Ch]
    15   char v16; // [rsp+235h] [rbp-20Bh]
    16   char v17; // [rsp+236h] [rbp-20Ah]
    17   char v18; // [rsp+237h] [rbp-209h]
    18   char v19; // [rsp+238h] [rbp-208h]
    19   char v20; // [rsp+239h] [rbp-207h]
    20   char v21; // [rsp+23Ah] [rbp-206h]
    21   char v22; // [rsp+23Bh] [rbp-205h]
    22   char v23; // [rsp+23Ch] [rbp-204h]
    23   char v24; // [rsp+23Dh] [rbp-203h]
    24   char v25; // [rsp+23Eh] [rbp-202h]
    25   char v26; // [rsp+23Fh] [rbp-201h]
    26   char v27; // [rsp+240h] [rbp-200h]
    27   char v28; // [rsp+241h] [rbp-1FFh]
    28   char v29; // [rsp+242h] [rbp-1FEh]
    29   char v30; // [rsp+243h] [rbp-1FDh]
    30   char v31; // [rsp+244h] [rbp-1FCh]
    31   char v32; // [rsp+245h] [rbp-1FBh]
    32   char v33; // [rsp+246h] [rbp-1FAh]
    33   char v34; // [rsp+247h] [rbp-1F9h]
    34   unsigned __int64 v35; // [rsp+438h] [rbp-8h]
    35 
    36   v35 = __readfsqword(0x28u);
    37   memset(&v8, 0, 0x100uLL);
    38   strcpy(v9, "pisanbao");
    39   memset(&v10, 0, 0xF0uLL);
    40   memset(&s, 0, 0x200uLL);
    41   s = -117;
    42   v12 = 99;
    43   v13 = 115;
    44   v14 = 93;
    45   v15 = 87;
    46   v16 = -23;
    47   v17 = -24;
    48   v18 = -109;
    49   v19 = 82;
    50   v20 = -90;
    51   v21 = 7;
    52   v22 = 111;
    53   v23 = 48;
    54   v24 = 12;
    55   v25 = 119;
    56   v26 = 60;
    57   v27 = -3;
    58   v28 = -60;
    59   v29 = -101;
    60   v30 = -80;
    61   v31 = 24;
    62   v32 = 9;
    63   v33 = -113;
    64   v34 = -12;
    65   v3 = strlen(&s);
    66   v4 = strlen(v9);
    67   sub_55E8ACF107FA(&v8, v9, v4);
    68   sub_55E8ACF109B4(&v8, &s, v3);
    69   puts("Remote Linux debugger");
    70   printf("plz input your flag:", &s);
    71   __isoc99_scanf("%29s", v7);
    72   if ( strlen(v7) != 24 )
    73   {
    74     printf("wrong length", v7);
    75     exit(0);
    76   }
    77   for ( i = 0; i <= 23; ++i )
    78   {
    79     if ( v7[i] != *(&s + i) )
    80     {
    81       printf("GG");
    82       exit(0);
    83     }
    84   }
    85   printf("you win!!!", v7);
    86   return 0LL;
    87 }

    在第79行代码设置好断点之后,选择Remote Linux debugger调试器,配置如下

    调试运行至断点处

    打开字符串s

    [stack]:00007FFC04CF40E0 db  4Eh ; N
    [stack]:00007FFC04CF40E1 db  43h ; C
    [stack]:00007FFC04CF40E2 db  54h ; T
    [stack]:00007FFC04CF40E3 db  46h ; F
    [stack]:00007FFC04CF40E4 db  7Bh ; {
    [stack]:00007FFC04CF40E5 db  6Ah ; j
    [stack]:00007FFC04CF40E6 db  75h ; u
    [stack]:00007FFC04CF40E7 db  73h ; s
    [stack]:00007FFC04CF40E8 db  74h ; t
    [stack]:00007FFC04CF40E9 db  5Fh ; _
    [stack]:00007FFC04CF40EA db  64h ; d
    [stack]:00007FFC04CF40EB db  65h ; e
    [stack]:00007FFC04CF40EC db  62h ; b
    [stack]:00007FFC04CF40ED db  75h ; u
    [stack]:00007FFC04CF40EE db  67h ; g
    [stack]:00007FFC04CF40EF db  5Fh ; _
    [stack]:00007FFC04CF40F0 db  69h ; i
    [stack]:00007FFC04CF40F1 db  74h ; t
    [stack]:00007FFC04CF40F2 db  5Fh ; _
    [stack]:00007FFC04CF40F3 db  32h ; 2
    [stack]:00007FFC04CF40F4 db  33h ; 3
    [stack]:00007FFC04CF40F5 db  33h ; 3
    [stack]:00007FFC04CF40F6 db  33h ; 3
    [stack]:00007FFC04CF40F7 db  7Dh ; }

    3.get flag!

    NCTF{just_debug_it_2333}

    0x02 签到 

    测试文件:https://www.lanzous.com/i7kr2ij

    1.IDA打开

    int __cdecl main(int argc, const char **argv, const char **envp)
    {
      __int16 v4; // [esp+1Eh] [ebp-32h]
    
      sub_4035E0();
      puts("ez reverse 2333~~~");
      puts("plz input your flag:");
      scanf("%55s", &v4);
      sub_401340((unsigned __int8 *)&v4);
      puts("欢迎南邮2019级学弟~~~");
      puts("对re感兴趣的记得加群嗷");
      puts("群号:893849151");
      system("pause");
      return 0;
    }

    打开sub_401340函数

    int __cdecl sub_401340(unsigned __int8 *a1)
    {
      int v2[50]; // [esp+18h] [ebp-D0h]
    
      v2[0] = 34 * a1[3] + 12 * *a1 + 53 * a1[1] + 6 * a1[2] + 58 * a1[4] + 36 * a1[5] + a1[6];
      v2[1] = 27 * a1[4] + 73 * a1[3] + 12 * a1[2] + 83 * *a1 + 85 * a1[1] + 96 * a1[5] + 52 * a1[6];
      v2[2] = 24 * a1[2] + 78 * *a1 + 53 * a1[1] + 36 * a1[3] + 86 * a1[4] + 25 * a1[5] + 46 * a1[6];
      v2[3] = 78 * a1[1] + 39 * *a1 + 52 * a1[2] + 9 * a1[3] + 62 * a1[4] + 37 * a1[5] + 84 * a1[6];
      v2[4] = 48 * a1[4] + 6 * a1[1] + 23 * *a1 + 14 * a1[2] + 74 * a1[3] + 12 * a1[5] + 83 * a1[6];
      v2[5] = 15 * a1[5] + 48 * a1[4] + 92 * a1[2] + 85 * a1[1] + 27 * *a1 + 42 * a1[3] + 72 * a1[6];
      v2[6] = 26 * a1[5] + 67 * a1[3] + 6 * a1[1] + 4 * *a1 + 3 * a1[2] + 68 * a1[6];
      v2[7] = 34 * a1[10] + 12 * a1[7] + 53 * a1[8] + 6 * a1[9] + 58 * a1[11] + 36 * a1[12] + a1[13];
      v2[8] = 27 * a1[11] + 73 * a1[10] + 12 * a1[9] + 83 * a1[7] + 85 * a1[8] + 96 * a1[12] + 52 * a1[13];
      v2[9] = 24 * a1[9] + 78 * a1[7] + 53 * a1[8] + 36 * a1[10] + 86 * a1[11] + 25 * a1[12] + 46 * a1[13];
      v2[10] = 78 * a1[8] + 39 * a1[7] + 52 * a1[9] + 9 * a1[10] + 62 * a1[11] + 37 * a1[12] + 84 * a1[13];
      v2[11] = 48 * a1[11] + 6 * a1[8] + 23 * a1[7] + 14 * a1[9] + 74 * a1[10] + 12 * a1[12] + 83 * a1[13];
      v2[12] = 15 * a1[12] + 48 * a1[11] + 92 * a1[9] + 85 * a1[8] + 27 * a1[7] + 42 * a1[10] + 72 * a1[13];
      v2[13] = 26 * a1[12] + 67 * a1[10] + 6 * a1[8] + 4 * a1[7] + 3 * a1[9] + 68 * a1[13];
      v2[14] = 34 * a1[17] + 12 * a1[14] + 53 * a1[15] + 6 * a1[16] + 58 * a1[18] + 36 * a1[19] + a1[20];
      v2[15] = 27 * a1[18] + 73 * a1[17] + 12 * a1[16] + 83 * a1[14] + 85 * a1[15] + 96 * a1[19] + 52 * a1[20];
      v2[16] = 24 * a1[16] + 78 * a1[14] + 53 * a1[15] + 36 * a1[17] + 86 * a1[18] + 25 * a1[19] + 46 * a1[20];
      v2[17] = 78 * a1[15] + 39 * a1[14] + 52 * a1[16] + 9 * a1[17] + 62 * a1[18] + 37 * a1[19] + 84 * a1[20];
      v2[18] = 48 * a1[18] + 6 * a1[15] + 23 * a1[14] + 14 * a1[16] + 74 * a1[17] + 12 * a1[19] + 83 * a1[20];
      v2[19] = 15 * a1[19] + 48 * a1[18] + 92 * a1[16] + 85 * a1[15] + 27 * a1[14] + 42 * a1[17] + 72 * a1[20];
      v2[20] = 26 * a1[19] + 67 * a1[17] + 6 * a1[15] + 4 * a1[14] + 3 * a1[16] + 68 * a1[20];
      v2[21] = 34 * a1[24] + 12 * a1[21] + 53 * a1[22] + 6 * a1[23] + 58 * a1[25] + 36 * a1[26] + a1[27];
      v2[22] = 27 * a1[25] + 73 * a1[24] + 12 * a1[23] + 83 * a1[21] + 85 * a1[22] + 96 * a1[26] + 52 * a1[27];
      v2[23] = 24 * a1[23] + 78 * a1[21] + 53 * a1[22] + 36 * a1[24] + 86 * a1[25] + 25 * a1[26] + 46 * a1[27];
      v2[24] = 78 * a1[22] + 39 * a1[21] + 52 * a1[23] + 9 * a1[24] + 62 * a1[25] + 37 * a1[26] + 84 * a1[27];
      v2[25] = 48 * a1[25] + 6 * a1[22] + 23 * a1[21] + 14 * a1[23] + 74 * a1[24] + 12 * a1[26] + 83 * a1[27];
      v2[26] = 15 * a1[26] + 48 * a1[25] + 92 * a1[23] + 85 * a1[22] + 27 * a1[21] + 42 * a1[24] + 72 * a1[27];
      v2[27] = 26 * a1[26] + 67 * a1[24] + 6 * a1[22] + 4 * a1[21] + 3 * a1[23] + 68 * a1[27];
      v2[28] = 34 * a1[31] + 12 * a1[28] + 53 * a1[29] + 6 * a1[30] + 58 * a1[32] + 36 * a1[33] + a1[34];
      v2[29] = 27 * a1[32] + 73 * a1[31] + 12 * a1[30] + 83 * a1[28] + 85 * a1[29] + 96 * a1[33] + 52 * a1[34];
      v2[30] = 24 * a1[30] + 78 * a1[28] + 53 * a1[29] + 36 * a1[31] + 86 * a1[32] + 25 * a1[33] + 46 * a1[34];
      v2[31] = 78 * a1[29] + 39 * a1[28] + 52 * a1[30] + 9 * a1[31] + 62 * a1[32] + 37 * a1[33] + 84 * a1[34];
      v2[32] = 48 * a1[32] + 6 * a1[29] + 23 * a1[28] + 14 * a1[30] + 74 * a1[31] + 12 * a1[33] + 83 * a1[34];
      v2[33] = 15 * a1[33] + 48 * a1[32] + 92 * a1[30] + 85 * a1[29] + 27 * a1[28] + 42 * a1[31] + 72 * a1[34];
      v2[34] = 26 * a1[33] + 67 * a1[31] + 6 * a1[29] + 4 * a1[28] + 3 * a1[30] + 68 * a1[34];
      v2[35] = 34 * a1[38] + 12 * a1[35] + 53 * a1[36] + 6 * a1[37] + 58 * a1[39] + 36 * a1[40] + a1[41];
      v2[36] = 27 * a1[39] + 73 * a1[38] + 12 * a1[37] + 83 * a1[35] + 85 * a1[36] + 96 * a1[40] + 52 * a1[41];
      v2[37] = 24 * a1[37] + 78 * a1[35] + 53 * a1[36] + 36 * a1[38] + 86 * a1[39] + 25 * a1[40] + 46 * a1[41];
      v2[38] = 78 * a1[36] + 39 * a1[35] + 52 * a1[37] + 9 * a1[38] + 62 * a1[39] + 37 * a1[40] + 84 * a1[41];
      v2[39] = 48 * a1[39] + 6 * a1[36] + 23 * a1[35] + 14 * a1[37] + 74 * a1[38] + 12 * a1[40] + 83 * a1[41];
      v2[40] = 15 * a1[40] + 48 * a1[39] + 92 * a1[37] + 85 * a1[36] + 27 * a1[35] + 42 * a1[38] + 72 * a1[41];
      v2[41] = 26 * a1[40] + 67 * a1[38] + 6 * a1[36] + 4 * a1[35] + 3 * a1[37] + 68 * a1[41];
      v2[42] = 34 * a1[45] + 12 * a1[42] + 53 * a1[43] + 6 * a1[44] + 58 * a1[46] + 36 * a1[47] + a1[48];
      v2[43] = 27 * a1[46] + 73 * a1[45] + 12 * a1[44] + 83 * a1[42] + 85 * a1[43] + 96 * a1[47] + 52 * a1[48];
      v2[44] = 24 * a1[44] + 78 * a1[42] + 53 * a1[43] + 36 * a1[45] + 86 * a1[46] + 25 * a1[47] + 46 * a1[48];
      v2[45] = 78 * a1[43] + 39 * a1[42] + 52 * a1[44] + 9 * a1[45] + 62 * a1[46] + 37 * a1[47] + 84 * a1[48];
      v2[46] = 48 * a1[46] + 6 * a1[43] + 23 * a1[42] + 14 * a1[44] + 74 * a1[45] + 12 * a1[47] + 83 * a1[48];
      v2[47] = 15 * a1[47] + 48 * a1[46] + 92 * a1[44] + 85 * a1[43] + 27 * a1[42] + 42 * a1[45] + 72 * a1[48];
      v2[48] = 26 * a1[47] + 67 * a1[45] + 6 * a1[43] + 4 * a1[42] + 3 * a1[44] + 68 * a1[48];
      for ( v2[49] = 0; v2[49] <= 48; ++v2[49] )
      {
        if ( v2[v2[49]] != dword_404000[v2[49]] )
        {
          printf("GG");
          exit(0);
        }
      }
      return puts("TQL");
    }

    2.代码分析

    dword_404000的值是已知的,即v2数组的值已知,而函数传入的a1是flag的值,通过上面的方程组可以解出a1的值。

    3.解方程

    使用MATLAB的solve函数解方程式

    syms a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 a32 a33 a34 a35 a36 a37 a38 a39 a40 a41 a42 a43 a44 a45 a46 a47 a48
    [a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31,a32,a33,a34,a35,a36,a37,a38,a39,a40,a41,a42,a43,a44,a45,a46,a47,a48] = solve(34 * a3 + 12 * a0 + 53 * a1 + 6 * a2 + 58 * a4 + 36 * a5 + a6-18564 == 0,...
    27 * a4 + 73 * a3 + 12 * a2 + 83 * a0 + 85 * a1 + 96 * a5 + 52 * a6 - 37316  == 0,...
    24 * a2 + 78 * a0 + 53 * a1 + 36 * a3 + 86 * a4 + 25 * a5 + 46 * a6 - 32053 == 0,...
    78 * a1 + 39 * a0 + 52 * a2 + 9 * a3 + 62 * a4 + 37 * a5 + 84 * a6 - 33278 == 0,...
    48 * a4 + 6 * a1 + 23 * a0 + 14 * a2 + 74 * a3 + 12 * a5 + 83 * a6 - 23993 == 0,...
    15 * a5 + 48 * a4 + 92 * a2 + 85 * a1 + 27 * a0 + 42 * a3 + 72 * a6 - 33151 == 0,...
    26 * a5 + 67 * a3 + 6 * a1 + 4 * a0 + 3 * a2 + 68 * a6 - 15248 == 0,...
    34 * a10 + 12 * a7 + 53 * a8 + 6 * a9 + 58 * a11 + 36 * a12 + a13 - 13719 == 0,...
    27 * a11 + 73 * a10 + 12 * a9 + 83 * a7 + 85 * a8 + 96 * a12 + 52 * a13 - 34137 == 0,...
    24 * a9 + 78 * a7 + 53 * a8 + 36 * a10 + 86 * a11 + 25 * a12 + 46 * a13 - 27391 == 0,...
    78 * a8 + 39 * a7 + 52 * a9 + 9 * a10 + 62 * a11 + 37 * a12 + 84 * a13 - 28639 == 0,...
    48 * a11 + 6 * a8 + 23 * a7 + 14 * a9 + 74 * a10 + 12 * a12 + 83 * a13 - 18453 == 0,...
    15 * a12 + 48 * a11 + 92 * a9 + 85 * a8 + 27 * a7 + 42 * a10 + 72 * a13 - 28465 == 0,...
    26 * a12 + 67 * a10 + 6 * a8 + 4 * a7 + 3 * a9 + 68 * a13 - 12384 == 0,...
    34 * a17 + 12 * a14 + 53 * a15 + 6 * a16 + 58 * a18 + 36 * a19 + a20 - 20780 == 0,...
    27 * a18 + 73 * a17 + 12 * a16 + 83 * a14 + 85 * a15 + 96 * a19 + 52 * a20 - 45085 == 0,...
    24 * a16 + 78 * a14 + 53 * a15 + 36 * a17 + 86 * a18 + 25 * a19 + 46 * a20 - 35827 == 0,...
    78 * a15 + 39 * a14 + 52 * a16 + 9 * a17 + 62 * a18 + 37 * a19 + 84 * a20 - 37243 == 0,...
    48 * a18 + 6 * a15 + 23 * a14 + 14 * a16 + 74 * a17 + 12 * a19 + 83 * a20 - 26037 == 0,...
    15 * a19 + 48 * a18 + 92 * a16 + 85 * a15 + 27 * a14 + 42 * a17 + 72 * a20 - 39409 == 0,...
    26 * a19 + 67 * a17 + 6 * a15 + 4 * a14 + 3 * a16 + 68 * a20 - 17583 == 0,...
    34 * a24 + 12 * a21 + 53 * a22 + 6 * a23 + 58 * a25 + 36 * a26 + a27 - 20825 == 0,...
    27 * a25 + 73 * a24 + 12 * a23 + 83 * a21 + 85 * a22 + 96 * a26 + 52 * a27 - 44474 == 0,...
    24 * a23 + 78 * a21 + 53 * a22 + 36 * a24 + 86 * a25 + 25 * a26 + 46 * a27 - 35138 == 0,...
    78 * a22 + 39 * a21 + 52 * a23 + 9 * a24 + 62 * a25 + 37 * a26 + 84 * a27 - 36914 == 0,...
    48 * a25 + 6 * a22 + 23 * a21 + 14 * a23 + 74 * a24 + 12 * a26 + 83 * a27 - 25918 == 0,...
    15 * a26 + 48 * a25 + 92 * a23 + 85 * a22 + 27 * a21 + 42 * a24 + 72 * a27 - 38915 == 0,...
    26 * a26 + 67 * a24 + 6 * a22 + 4 * a21 + 3 * a23 + 68 * a27 - 17672 == 0,...
    34 * a31 + 12 * a28 + 53 * a29 + 6 * a30 + 58 * a32 + 36 * a33 + a34 - 21219 == 0,....
    27 * a32 + 73 * a31 + 12 * a30 + 83 * a28 + 85 * a29 + 96 * a33 + 52 * a34 - 43935 == 0,...
    24 * a30 + 78 * a28 + 53 * a29 + 36 * a31 + 86 * a32 + 25 * a33 + 46 * a34 - 37072 == 0,...
    78 * a29 + 39 * a28 + 52 * a30 + 9 * a31 + 62 * a32 + 37 * a33 + 84 * a34 - 39359 == 0,...
    48 * a32 + 6 * a29 + 23 * a28 + 14 * a30 + 74 * a31 + 12 * a33 + 83 * a34 - 27793 == 0,...
    15 * a33 + 48 * a32 + 92 * a30 + 85 * a29 + 27 * a28 + 42 * a31 + 72 * a34 - 41447== 0,...
    26 * a33 + 67 * a31 + 6 * a29 + 4 * a28 + 3 * a30 + 68 * a34 - 18098 == 0,...
    34 * a38 + 12 * a35 + 53 * a36 + 6 * a37 + 58 * a39 + 36 * a40 + a41 - 21335 == 0,...
    27 * a39 + 73 * a38 + 12 * a37 + 83 * a35 + 85 * a36 + 96 * a40 + 52 * a41 - 46164 == 0,...
    24 * a37 + 78 * a35 + 53 * a36 + 36 * a38 + 86 * a39 + 25 * a40 + 46 * a41 - 38698 == 0,...
    78 * a36 + 39 * a35 + 52 * a37 + 9 * a38 + 62 * a39 + 37 * a40 + 84 * a41 - 39084 == 0,...
    48 * a39 + 6 * a36 + 23 * a35 + 14 * a37 + 74 * a38 + 12 * a40 + 83 * a41 - 29205 == 0,...
    15 * a40 + 48 * a39 + 92 * a37 + 85 * a36 + 27 * a35 + 42 * a38 + 72 * a41 - 40913,...
    26 * a40 + 67 * a38 + 6 * a36 + 4 * a35 + 3 * a37 + 68 * a41 - 19117 == 0,...
    34 * a45 + 12 * a42 + 53 * a43 + 6 * a44 + 58 * a46 + 36 * a47 + a48 - 21786 == 0,...
    27 * a46 + 73 * a45 + 12 * a44 + 83 * a42 + 85 * a43 + 96 * a47 + 52 * a48 - 46573 == 0,...
    24 * a44 + 78 * a42 + 53 * a43 + 36 * a45 + 86 * a46 + 25 * a47 + 46 * a48 - 38322 == 0,...
    78 * a43 + 39 * a42 + 52 * a44 + 9 * a45 + 62 * a46 + 37 * a47 + 84 * a48 - 41017 == 0,...
    48 * a46 + 6 * a43 + 23 * a42 + 14 * a44 + 74 * a45 + 12 * a47 + 83 * a48 - 29298 == 0,...
    15 * a47 + 48 * a46 + 92 * a44 + 85 * a43 + 27 * a42 + 42 * a45 + 72 * a48 - 43409 == 0,...
    26 * a47 + 67 * a45 + 6 * a43 + 4 * a42 + 3 * a44 + 68 * a48 - 19655 == 0)
    

    得到a1[0]~a1[48]的值,转换为ASCII码

    4.get flag!

    NCTF{nctf2019_linear_algebra_is_very_interesting}

    0x03 Our 16bit Games.com

    测试文件:https://www.lanzous.com/i7ks0uf

    1.IDA分析

    使用IDA打开文件之后,找到最下面有一堆int 21的地方

    这里实际上就是将bh和bl交替的与dl异或,dl的值是已知的,因为bl和bh一共的情况也不过0xFF*0xFF种,就直接爆破了。

    2.爆破求解

    for num2 in range(0x100):
        for num3 in range(0x100):
            dec = ''
            num1 = [0x8E, 0x9D, 0x94, 0x98, 0xBB, 0x89, 0xF3, 0xEF, 0x83, 0xEE, 0xAD, 0x9B, 0x9F,
                    0xEC, 0x9F, 0x9A, 0xF0, 0xEB, 0x9F, 0x97, 0xF6, 0xBC, 0xF1, 0xE9, 0x9F, 0xE7,
                    0xA1, 0xB3, 0xF3, 0xA3]
            for i in range(len(num1)):
                if i % 2 == 0:
                    dec += chr(num1[i] ^ num2)
                else:
                    dec += chr(num1[i] ^ num3)
            if dec.startswith('NCTF'):
                print (dec)

    3.get flag!

    NCTF{W31C0mE_2_D05_I6b17_9am3}

  • 相关阅读:
    OnEraseBkgnd、OnPaint与画面重绘
    .编译ADO类DLL时报错的解决方案
    VC列表框样式
    Codeforces 131D. Subway 寻找环树的最短路径
    Codeforces 103B. Cthulhu 寻找奈亚子
    Codeforces 246D. Colorful Graph
    Codeforces 278C. Learning Languages 图的遍历
    Codeforces 217A. Ice Skating 搜索
    Codeforces 107A. Dorm Water Supply 搜图
    Codeforces 263 D. Cycle in Graph 环
  • 原文地址:https://www.cnblogs.com/Mayfly-nymph/p/11926764.html
Copyright © 2011-2022 走看看