思路:

下载题目,首先使用exeinfo查壳

image-20230322162405703.png
image-20230322162405703.png

查出来是upx的壳 尝试使用脱壳工具脱壳

脱完壳使用ida打开

image-20230322200320034.png
image-20230322200320034.png

看到了jnz 有call了一个错误的函数 很明显是一个花指令

选中那一行 在ida中点击edit->Path program->Change program bytes

image-20230327140907211.png
image-20230327140907211.png

e8修改成90

在汇编指令中e8是call 90是nop

修改好之后选中红色区域 按p 创建函数 就可以发现 现在可以反汇编了

image-20230327141223023.png
image-20230327141223023.png

f5进行反汇编

image-20230327141315767.png
image-20230327141315767.png

发现程序判断用户输入是否为a d s w asc_408078 dword_40807C进行操作

然后通过题目名maze翻译过来就是迷宫 猜测通过用户的输入 移动一个坐标 找到flag

image-20230327151715623.png
image-20230327151715623.png

查看asc_408078的初始值是7

image-20230327151810009.png
image-20230327151810009.png

查看dword_40807C 初始值是0

经过一系列操作之后要使asc_408078 == 5dword_40807C == -4

也是就是起始点(7,0)->终点(5,-4)

image-20230327152443143.png
image-20230327152443143.png

shift+f12查找字符串 看到了一个很可疑的字符串 看似是个迷宫

把它复制出来

从坐标得知 F 在第-4行 也就是说 f上面还有4行(0,-1,-2,-3)

F是-4行第5个, 也就是前面还有5个 排一下版

image-20230327183620752.png
image-20230327183620752.png

flag:

flag{ssaaasaassdddw}