buu_[ACTF新生赛2020]Oruga

扫一扫

没什么特殊

IDA打开

输入的前五个字符需要为actf{,然后进入函数sub_78A

发现这个代码不好将

就先剧透一下再解释各段的作用, 这是一个迷宫题

查看byte_201020

充当地图

v2 -= v4相当与退一步

a1限制为87 69 77 74(对应字符W E M G),且不重复出现

这一段则是对v2进行操作,(迷宫里进行移动)

v4进行限制(使其不超出迷宫范围),可以判断出迷宫宽为16

循环条件和v2+=v4,效果为如果朝一个方向一直移动知道遇到不为0的数或越界退出

出迷宫后我们的最后一个数为125,对应字符 ’}‘

那么就开始解密

打印地图

a = [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]
for i in range(len(a)):
    if(a[i] == 33):
        print('%-4s' %(a[i]),end = '')
        break
    if(i % 16 == 0):
        print('\n')
    print('%-4s' %(a[i]), end = '')

手动解密

actf{MEWEMEWJMEWJM}

写的有点糊别介

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值