[NPUCTF2020]EzReverse
0x1 查询信息
发现是64位 拉进64位IDA
0x2 去花
左上角EDIT -> Path program ->Change byte 改变第一个E9为90 反复往下循环直到去完
0x3查看整体逻辑代码
hjkl 通过观察下方的v3加减 可以判断出 分别为 左h 上j 下k 右l
这个关键判断就是决定是否显示失败 取v3地址里的值 然后取最后一位与0对比,一下子点醒了然后迅速回去观看每一个值的最后一位。
发现每个值的最后一位 不是为1 就是为0 最终发现这个迷宫题设置在每一个值的最后一位
0x4 编写代码 打印出迷宫
a=[0,1,0,0,1,1,1,0,1,0,0,1,0,1,0,1,0,1,1,0,1,0,1,0,1,0,0,1,0,1,0,1,0,1,1,0,1,0,1,0,1,0,0,1,1,1,0,1,1,1]
for i in range(len(a)):
print(a[i],end="")
if i % 7 ==0:
print()
# flag{kkkkkklljjjjljjllkkkkhkkll}
发现与猜想的一模一样 只需要从左上角的第一位走到最右下角的 1即可
0x05总结
题目先考了去除花指令,然后是对代码的阅读。慢慢分析即可。