36D杯
开始:2020/4/30 20:00 结束:2020/5/4 20:00

签到

F5出来的关键代码如下

1
2
3
4
5
6
7
8
9
10
11
do
{
v8 = getchar_0();
v6 |= v8 ^ i ^ (i + (i ^ *(&v9 + (int)i)));
v4 = i++;
}
while ( v8 && v8 != 10 && v8 != -1 );
if ( v6 )
sub_400828(aFailed, 0LL, v3, v4);
else
sub_400828(aCorrect, 0LL, v3, v4);

开始没看明白,后来看到v6=0才正确就晓得了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>

int main()
{
int a[] = { 0x66,0x6D,0x63,0x62,0x7F,0x3A,0x55,0x6A,0x39,0x52,0x7A,0x37,0x51,0x13,0x33,0x23,0x43,0x46,0x29,0x3D,0x29,0x20,0x7F,0x1C,0x26,0x4D,0x31,0x14,0x50,0x5E,-24 };
char flag[100] = {};
for (int i = 0; i < 30; i++)
{
for (int v8 = ' '; v8 <= '}'; v8++)
if (!(v8 ^ i ^ (i + (i ^ a[i]))))
flag[i] = v8;
}
printf("%s", flag);
}

神光

文章作者: Usher
文章链接: https://usher2008.github.io/2020/05/04/36D%E6%9D%AF/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Usher