maze WP

首先根据题目发现这是一个迷宫。

首先用Exeinfo PE打开看到这是64位的ELF文件

 然后我们用ida64打开,查看伪代码

 

首先伪代码中有很多数字,我们按R键转换为相应的字符。

接着我们开始分析伪代码,

 

 首先我们先查阅strncmp函数的作用

 因此我们知道这个if函数是要判断我们输入的flag是否满足长度为24,并且flag是否包含nctf{}

然后我们往下看代码

低8位用来存储迷宫的列 高8位用来存储迷宫的行 它是一个__int64位的数据

v9+1就是v9的高8位的值

 查看这部分代码发现了两个函数 sub_400650 和函数 sub_400660,键入这两个函数

 

然后我们继续向下看代码,又发现类似的两个函数

 

 

 然后我们总结一下:左O右o上.下0

根据这个if函数我们可以得出这是一个8*8的迷宫,如果这个if条件不等于#那么跳转到20wrong flag,等于#则提示正确,说明这个迷宫的终点就是达到#。

 

 然后我们进入asc_601060这个函数看一下发现

 这是一串字符,可能就是本题的迷宫,然后我们又知道迷宫的规格是8*8,所以我们整理一下

 

 然后我们又发现上边四个函数都跳转到了14,14有跳转到了15

 然后我们键入sub_400690函数看看

 经过分析,他是判断是否等于‘空格或#


if里的条件为真,即为result不等于空格或# 即撞墙,然后就跳转22输出错误

所以我们分析迷宫的路径

右下右右下下左下下下右右右右上上左左

换成他们各自代表的符号

o0oo00O000oooo..OO

最后的flag=nctf{o0oo00O000oooo..OO}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值