十一欢乐赛-reverse

HelloReverse

直接拖进ida,发现一个名为getflag的函数,点进去发现plain里存着flag。

HelloPython

pyc文件反编译一波直接运行,得不到flag分析一波程序。

1
2
3
if len(sys.argv) < 5:
print("I can't give you flag :(")
sys.exit(0)

找到了一个判断条件,直接把exit(0)去掉

再把输入flag的判断条件改为1:

1
2
if int(sys.argv[1]) > 10 and Fibonacci(int(sys.argv[1])) == int(sys.argv[4]):
print(decrypt(15, 'MFKFMFMELFJEEHIFMDDGMGAGCGKGAFLHAGAFPHGHLHHGAGBGICMHAFIHAGNHODLGCH'))

运行发现n = None // 2会报错
改成n=1试试发现输出了一个S应该就是flag的开头

最后尝试出n=33时输出完整flag

XOR1

ida打开发现直接把两个数组异或就能得到flag

XOR2

和1差不多,区别是有一个数组是rand函数生成的,不过rand函数生成的随机数其实也是固定的。一开始用mac试了很久得不到flag,后来想起来不同系统随机数生成的也不一样,又用windows尝试,结果最后发现要用linux。

Maze

写过了maze就很容易了,wasd对应上下左右移动
地图如下:

1
2
3
4
5
6
7
8
9
OOOO*OOOO
O1111O11O
O1OOOO1OO
O11O111OO
OO111OO1O
OOO1OO11O
OOO111O1O
OOO1O1111
OOOOOOOO1

沿着1走到*得到flag 加上SUSCTF{}


题目都很简单,其他方向的也都是当场百度就能做(pwn还没

文章目录
  1. 1. HelloReverse
  2. 2. HelloPython
  3. 3. XOR1
  4. 4. XOR2
  5. 5. Maze
|