XCTF reverse maze
一.查壳
二.拖入ida64,静态调试,找到主函数F5反编译
二.1 思路分析(逆向是真的费时间,每个函数都要分析过去):
1.发现每个if最终都会进入LABEL-15
点进去,看看这个函数是干啥的。
这里基本可以推理出a3是行,a2是列了。
那么我们的迷宫一定是一个8列的矩阵。
得知这点,退出去,再分析。
v9是行,SHIDWORD函数是指的下一个字节,得知这点,从上面分析可知:
就将四个函数点进去就可以判断方向了。
举个例子:
相对应,其他方向,O:下,o:上,0:左,.:右。
2.将迷宫打印出来,python脚本如下。
maze=" ******* * **** * **** * *** *# *** *** *** *********"
res=""
count=0
for str in maze:
res+=str
count+=1
if count%8==0:
print(res)
res=""
3.由于我们是从左上角开始的,开始我们的路线
个人感觉答案不唯一的。。。。没办法。》-《。。。
根据迷宫最后得到的flag: nctf{o0oo00O000oooo…OO}