BUU-[SUCTF2018]babyre

 

 给了flag的格式 根据table运算出flag 直接爆破k验证即可

最开始v186 %= 0x10000 看成了 10000  一直没有跑出来呜呜呜

/*
v186 %= 0x10000u;
  v185 = 8;
  while ( v185 )
  {
    --v185;
    for ( j = 22; j; v184[j] |= v189 << v185 )
    {
      v188 = *(&v4 + 22 * v185 + --j);
      v189 = (v188 >> ((v186 >> 2 * v185) & 3)) & 1;
    }
  }
*/
#include<stdio.h>
#include<string.h>
int v[500];
int v184[100];
int v188,v189;
void init();
int main()
{
    init();
    for(int v186 = 0;v186 < 0x10000;v186++)
    {
        memset(v184,0,sizeof(v184));
        int v185 = 8;
        while ( v185 )
        {
            --v185;
            for (int j = 22; j; v184[j] |= v189 << v185 )
            {
            v188 = v[22 * v185 + --j + 4];
            v189 = (v188 >> ((v186 >> 2 * v185) & 3)) & 1;
            }
        }
        // SUCTF{xxxxxxxxxxxxxxx}
        if(v184[0] == 'S' &&
        v184[1] == 'U' &&
        v184[2] == 'C' &&
        v184[3] == 'T' &&
        v184[4] == 'F' &&
        v184[5] == '{' &&
         v184[21] == '}')
        {
            printf("key : %d\n",v186);
            for(int i = 0;i < 22;i++)
            {
                printf("%c",v184[i]);
                
            }
            printf("\n");
        }
    }

    return 0;
}
void init()
{
v[4]= 2;
v[5]= 3;
v[6]= 2;
v[7]= 1;
v[8]= 4;
v[9]= 7;
v[10]= 4;
v[11]= 5;
v[12]= 10;
v[13]= 11;
v[14]= 10;
v[15]= 9;
v[16]= 14;
v[17]= 15;
v[18]= 12;
v[19]= 13;
v[20]= 16;
v[21]= 19;
v[22]= 16;
v[23]= 17;
v[24]= 20;
v[25]= 23;
v[26]= 22;
v[27]= 19;
v[28]= 28;
v[29]= 25;
v[30]= 30;
v[31]= 31;
v[32]= 28;
v[33]= 25;
v[34]= 26;
v[35]= 31;
v[36]= 36;
v[37]= 33;
v[38]= 34;
v[39]= 39;
v[40]= 36;
v[41]= 33;
v[42]= 34;
v[43]= 35;
v[44]= 40;
v[45]= 41;
v[46]= 46;
v[47]= 43;
v[48]= 36;
v[49]= 45;
v[50]= 38;
v[51]= 47;
v[52]= 56;
v[53]= 49;
v[54]= 58;
v[55]= 59;
v[56]= 52;
v[57]= 61;
v[58]= 62;
v[59]= 55;
v[60]= 48;
v[61]= 57;
v[62]= 50;
v[63]= 59;
v[64]= 60;
v[65]= 53;
v[66]= 54;
v[67]= 55;
v[68]= 72;
v[69]= 73;
v[70]= 66;
v[71]= 66;
v[72]= 68;
v[73]= 68;
v[74]= 70;
v[75]= 71;
v[76]= 72;
v[77]= 73;
v[78]= 74;
v[79]= 74;
v[80]= 77;
v[81]= 77;
v[82]= 79;
v[83]= 78;
v[84]= 80;
v[85]= 80;
v[86]= 82;
v[87]= 83;
v[88]= 85;
v[89]= 84;
v[90]= 86;
v[91]= 87;
v[92]= 89;
v[93]= 89;
v[94]= 90;
v[95]= 91;
v[96]= 92;
v[97]= 93;
v[98]= 94;
v[99]= 94;
v[100]= 96;
v[101]= 96;
v[102]= 99;
v[103]= 99;
v[104]= 100;
v[105]= 101;
v[106]= 103;
v[107]= 103;
v[108]= 105;
v[109]= 105;
v[110]= 107;
v[111]= 107;
v[112]= 108;
v[113]= 109;
v[114]= 110;
v[115]= 110;
v[116]= 112;
v[117]= 112;
v[118]= 114;
v[119]= 115;
v[120]= 116;
v[121]= 117;
v[122]= 119;
v[123]= 119;
v[124]= 120;
v[125]= 121;
v[126]= 123;
v[127]= 123;
v[128]= 125;
v[129]= 125;
v[130]= 127;
v[131]= 127;
v[132]= -127;
v[133]= -127;
v[134]= -125;
v[135]= -125;
v[136]= -116;
v[137]= -115;
v[138]= -114;
v[139]= -113;
v[140]= -120;
v[141]= -119;
v[142]= -118;
v[143]= -117;
v[144]= -116;
v[145]= -115;
v[146]= -114;
v[147]= -121;
v[148]= -104;
v[149]= -111;
v[150]= -110;
v[151]= -109;
v[152]= -108;
v[153]= -107;
v[154]= -106;
v[155]= -105;
v[156]= -104;
v[157]= -103;
v[158]= -102;
v[159]= -102;
v[160]= -100;
v[161]= -100;
v[162]= -98;
v[163]= -98;
v[164]= -96;
v[165]= -96;
v[166]= -94;
v[167]= -94;
v[168]= -92;
v[169]= -92;
v[170]= -90;
v[171]= -90;
v[172]= -88;
v[173]= -88;
v[174]= -86;
v[175]= -86;
v[176]= -84;
v[177]= -84;
v[178]= -82;
v[179]= -82;
v[180]= -80;
v[181]= -79;
v[182]= -78;
v[183]= -77;
}
View Code

 

posted @ 2020-09-20 11:59  Papayo  阅读(539)  评论(0编辑  收藏  举报