题目
逆向新手,刚开始学些写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