re — maze writeup

首先,先把程序拖进ida里F5看伪c代码



然后看见了setmap函数,打开就是迷宫的字符组成


里面还有个flag(当然不是那么容易找得到flag的啦,输入这个,输出的就是“想得美”


返回main,我们的输入是v5,然后看到v7有个函数check(一般check都挺重要的,所以要进去看一眼)


然后看到有很多奇怪的判断和加减,发现有两个不同的值的加减,一个是1一个是31,很明显这个就是长宽了,并且由上得,字符长度为526

然后我们把迷宫的字符组成按这个长宽提取出来,组成一个真正的迷宫start开始end结束

c++脚本断的


自己断的

check里有个change函数(就是莫名其妙被我忽视掉了的那个)打开发现有异或操作

change函数

然后写个脚本异或一下

异或


往左应该是--start(h),往右是++start(t),往上是-=31(g),往下是+=31(w)

然后得到flag

GWHT{hhhhhhhhhhhhwwwwwwwwwwwwttttttttttttgggggghhhhhhhhhh}

你可能感兴趣的:(re — maze writeup)