geekgame-1

代号为geek的行动第一幕:毒雾初现

查看源代码SYC{}里有一串摩斯电码,解码得到flag。

萌萌的血小板

改后缀解压得到flag.txt和一张佛像图片,用佛曰解码得到flag。

小帅圆圆的发际线,你也想要么?

gif后面藏了一个rar文件,解压后得到另一张图片,内容为brainfucker,解码后得到flag。

0xpoker的QQ

1
2
3
4
if (str.equals("U1lDe0VhMnlfQU5kcjBpZF9SMyF9")) 
{
return new Decode().decode(str);
}

base64解密得到flag

可能没有你想的那么难

ida打开搜索字符串直接得到flag

换个样子你还认识吗

ida打开,主函数:

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
__main();
i = 0;
memset(v11, 0, sizeof(v11));
v8 = 0;
v9 = 0;
v10 = 0;
v4 = 28;
v5 = 13;
v6 = 59;
v7 = 22;
BYTE2(v9) = 85;
printf("plz input flag : ");
scanf("%s", v11);
if ( strlen1(v11) == 20 )
{
for ( i = 0; i <= 14; ++i )
v11[i + 4] ^= *(&v4 + i);
if ( !memcmp(v11, arr, 0x14u) )
puts("success");
else
puts("you faild");
}
else
{
puts("you faild");
}
return 0;

输入flag之后与v4字符串异或之后和给定的arr字符串比对,逆运算可以得到flag。

需要注意的是v8,v9,v10是int型,占4个字节,并且byte2(v9)把v9的第二个字节赋值为85,感觉写脚本逆运算还不如手动解,所以爆破脚本如下:

1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/env python
import string
final="this_is_flag_gg"
key=[28,13,59,22,0,0,0,0,0,0,85,0,0,0,0,0]
flag="SYC{"
for i in range(15):
for ch in string.printable:
if ord(ch)^key[i]==ord(final[i]):
flag+=ch
flag+="}"
print flag
文章目录
  1. 1. 代号为geek的行动第一幕:毒雾初现
  2. 2. 萌萌的血小板
  3. 3. 小帅圆圆的发际线,你也想要么?
  4. 4. 0xpoker的QQ
  5. 5. 可能没有你想的那么难
  6. 6. 换个样子你还认识吗
|