buuctf-ACTF2020新生赛-oruga(2)


buuctf-ACTF2020新生赛-oruga(2)

书接上文

一开始打算爆破它,不过好像有点难

于是重新回到题,首先它是一个迷宫题,因此我们要先找到的是起点 终点 方向

因此33是它的终点 //当v2这个下标走到33的时候 一切就结束了

其次我们

image-20220701004842569

是用来判断是否超出的

符合这个循环只有左上角

再者如果起点是左上角

则v4=-1的时候 就是 就一定是右 因为v4已经是1了

以此类推 得出

image-20220701005309282

写个脚本


import  struct
from ctypes import *
import  numpy
maze=[0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x23, 0x23, 0x23, 0x00, 0x00, 0x00, 0x23, 0x23, 0x00, 0x00, 0x00, 0x4F, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x4F, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x4F, 0x4F, 0x00, 0x4F, 0x4F, 0x00, 0x50, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x4F, 0x4F, 0x00, 0x4F, 0x4F, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4C, 0x4C, 0x00, 0x4F, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x4D, 0x4D, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x4D, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x45, 0x45, 0x00, 0x00, 0x00, 0x30, 0x00, 0x4D, 0x00, 0x4D, 0x00, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0x45, 0x54, 0x54, 0x54, 0x49, 0x00, 0x4D, 0x00, 0x4D, 0x00, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x54, 0x00, 0x49, 0x00, 0x4D, 0x00, 0x4D, 0x00, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x54, 0x00, 0x49, 0x00, 0x4D, 0x00, 0x4D, 0x00, 0x4D, 0x21, 0x00, 0x00, 0x00, 0x45, 0x45]
res=[]
for i in range(0,len(maze),1):
    k=c_byte(struct.unpack_from(">b",bytes(maze),i)[0]).value
    res.append(k)
maze=numpy.array(numpy.array_split(res,16))
print(maze)
'''
[[ 0  0  0  0 35  0  0  0  0  0  0  0 35 35 35 35]
 [ 0  0  0 35 35  0  0  0 79 79  0  0  0  0  0  0]
 [ 0  0  0  0  0  0  0  0 79 79  0 80 80  0  0  0]
 [ 0  0  0 76  0 79 79  0 79 79  0 80 80  0  0  0]
 [ 0  0  0 76  0 79 79  0 79 79  0 80  0  0  0  0]
 [ 0  0 76 76  0 79 79  0  0  0  0 80  0  0  0  0]
 [ 0  0  0  0  0 79 79  0  0  0  0 80  0  0  0  0]
 [35  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
 [ 0  0  0  0  0  0  0  0  0  0  0  0 35  0  0  0]
 [ 0  0  0  0  0  0 77 77 77  0  0  0 35  0  0  0]
 [ 0  0  0  0  0  0  0 77 77 77  0  0  0  0 69 69]
 [ 0  0  0 48  0 77  0 77  0 77  0  0  0  0 69  0]
 [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0 69 69]
 [84 84 84 73  0 77  0 77  0 77  0  0  0  0 69  0]
 [ 0 84  0 73  0 77  0 77  0 77  0  0  0  0 69  0]
 [ 0 84  0 73  0 77  0 77  0 77 33  0  0  0 69 69]]
 '''
 #flag{MEWEMEWJMEWJM}

原创文章,作者:kirin,如若转载,请注明出处:https://blog.ytso.com/270881.html

(0)
上一篇 2022年7月1日
下一篇 2022年7月1日

相关推荐

发表回复

登录后才能评论