思路:
下载题目,首先使用exeinfo查壳
查出来是upx的壳 尝试使用脱壳工具脱壳
脱完壳使用ida打开
看到了jnz 有call了一个错误的函数 很明显是一个花指令
选中那一行 在ida中点击edit->Path program->Change program bytes
将e8
修改成90
在汇编指令中e8
是call 90
是nop
修改好之后选中红色区域 按p
创建函数 就可以发现 现在可以反汇编了
按f5
进行反汇编
发现程序判断用户输入是否为a d s w
对asc_408078
和 dword_40807C
进行操作
然后通过题目名maze
翻译过来就是迷宫 猜测通过用户的输入 移动一个坐标 找到flag
查看asc_408078
的初始值是7
查看dword_40807C
初始值是0
经过一系列操作之后要使asc_408078 == 5
和 dword_40807C == -4
也是就是起始点(7,0)->终点(5,-4)
shift+f12
查找字符串 看到了一个很可疑的字符串 看似是个迷宫
把它复制出来
从坐标得知 F
在第-4行 也就是说 f上面还有4行(0,-1,-2,-3)
F
是-4行第5个, 也就是前面还有5个 排一下版
flag:
flag{ssaaasaassdddw}