新人的reverse学习(5) xCTF maze

7 篇文章 0 订阅
7 篇文章 0 订阅

题目
逆向新手,刚开始学些写WP,废话较多,还请各位多多包含

1.用exeinfo查看一下,没有壳的ELF,所以直接IDA看看。

2.Shift+F12看看字符串,有这些个字符串,所以肯定有东西,x交叉引用直接会找到目标函数,看看伪代码。
在这里插入图片描述
3.先看第一段关键代码,意思是s1(也就是flag)开头必须是 “nctf{” ,结尾是 “}”,而且长度是24

![
在这里插入图片描述](https://img-blog.csdnimg.cn/2021042323253089.png)

4.然后又是一个while循环,主要是是判断s1元素中的值,有4个,‘O’,’.’ , '0’这四个值的判断。
在这里插入图片描述
然后看到有两个关键参数v9和v10。
直接进入内存看看两个数

5.在这里插入图片描述
这一段可以看到v10是var_24 ,v9是var_28,然后猜测,v10算是一个2维数组,
v10第一行就是v10
v10第二行就是v9
因此对于sub_400650到sub_400680这几个函数的分析就可以知道了

在这里插入图片描述

6.然后还看到了一个奇怪的判断,就是这个
在这里插入图片描述
在这里插入图片描述

通过理性分析,然后还有题目的名字,以及对于大佬的借鉴 ,我们可以知道,这是一个迷宫状的图形,当走到了‘#’的时候输出正确。
用0表示空格,1表示*

00111111
10001001
11101011
11001011
1001#001
11011101
11000001
11111111

然后就是走迷宫,就可以得到我们需要的flag了。

nctf{o0oo00O000oooo..OO}

参考了这位大佬的文章:
https://blog.csdn.net/qq_42967398/article/details/94576708

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值