reverse入门迷宫题

记录第一次接触逆向迷宫题,第一次接触的时候感觉很懵逼,首先不知道这是一道迷宫题,还是按一起的逆向题解法,什么该程序逻辑啊分析算法啊,再没有接触pwn之前,拿到附件就只想把题目改成我想要直观运行的样子,现在回头来看认真分析题目还是挺简单的

题目是攻防世界新手区逆向里面maze:

拿到题目如图:(我对一些重要的代码进行重命名以便了解程序)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wzt3jiA9-1637992783446)(C:\Users\54622\AppData\Roaming\Typora\typora-user-images\image-20211127134445440.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2SfVo1XX-1637992783449)(C:\Users\54622\AppData\Roaming\Typora\typora-user-images\image-20211127134451123.png)]

从开头的那一部分就知道了flag的格式,很多逆向题目都是这个套路,然后下面的循环体就是循环flag中间的18个字符,上面每个函数的大概作用我都有标记,核心函数就是check函数,可以看到asc_601060这个变量里面是一个64长度的字符串,根据题目大意很快就能确定这是一个8*8的迷宫我首先将他还原成迷宫样子如图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gXCRgvzD-1637992783451)(C:\Users\54622\AppData\Roaming\Typora\typora-user-images\image-20211127134914700.png)]

得到了迷宫就是确定输入什么字符去控制这个迷宫走向了。

可以看到中间有4个函数分别对v10、v9进行自增和自减操作,最后返回了一个result,这个result只在循环结束后才会进行判断,所以只要保证最后v5不为0就行,通过对v9、v10的操作可以看到它们的初始值都为0,那么就可以判断出迷宫初始位置就是0,0这个坐标,而迷宫从0,0这个位置走到终点刚好也是18步满足了我们刚好输入的18个字符。

上面了解了程序逻辑,那么从check函数可知如图:v9*8是以8的倍数自增的,那么v9就是表示行,再通过前面对输入字符的判断很快就知道解题逻辑

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O7zFyOde-1637992783452)(C:\Users\54622\AppData\Roaming\Typora\typora-user-images\image-20211127135410743.png)]

我通过手动完迷宫走出再一一对应字符

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CRvUejQk-1637992783455)(C:\Users\54622\AppData\Roaming\Typora\typora-user-images\image-20211127135743873.png)]

最终得到flag

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SCHtglKt-1637992783456)(C:\Users\54622\AppData\Roaming\Typora\typora-user-images\image-20211127135820150.png)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值