N0wayBack 春节红包题

状态简写状态状态说明
WWait没有人做这道题,你可以开始尝试
SStuck题目做到一半思路卡壳
FFinished完成该题
1First Blood获得一血
2Second Blood获得二血
3Third Blood获得三血
LLack WP完成并缺少WP

N0wayBack 春节红包题

1. F3 | 春节红包题-Misc1-easypic |

题目描述:

hint:ENDEND,从10到70。此为最后一步的hint,请务必注意flag的格式。

不好意思,旧附件有点问题, 如果你crc32出来的是_folk_,请改成_folk,去掉最后一个_,新附件不需要去掉_,因附件问题,此题红包金额改为150。

其中CF.zip为旧附件,easypic_new.zip为新附件;新旧附件flag不一样,提交任意一个均为正确。

春节红包题,供大家娱乐,做出该题的同学请带着WP联系群主qq(xxxx),红包题共100元,所有做出来的同学平分。flag格式为N0wayBack{XXXXXXXXX}

解题思路:

  1. 解压CF.zip得到folktales.jpg

请添加图片描述

  1. 尾部一眼zip,0000改为504B0304,得到1.zip,里面的文件是一个data和4个文本文件

请添加图片描述

请添加图片描述

  1. 文本文件明显可以crc32爆破,因为1~6字节

请添加图片描述

  1. 导出csv后,一个一个找,就发现了有意义的字符

请添加图片描述

  1. 兔.txt: inese狐.txt: tales_豕.txt: _folk_鹅.txt: YAO_Ch

请添加图片描述

根据狐兔豕鹅的顺序拼接一下,就是YAO_Chinese_folk_tales_

  1. 使用上面解压zip没成功,后面才知道是题目弄错了,要删掉一个_folk_最后面的_,也就是YAO_Chinese_folktales_,成功解压了出来,使用010editor打开data

请添加图片描述

很明显16进制,使用cyberchef,这个一眼png的尾部,不过逆序了

请添加图片描述

逆序我这边是批量脚本,我就懒得贴出来了

  1. 最后找了很久才找到了flag,png的最后一层IDAT是有问题的,010editor打开就会提示,最后一层crc32有问题,其实这个问题是因为最后一层有字节被修改了

请添加图片描述

关于hint的提示ENDEND,从10到70。,其实是说最后面最后面,10h~70h,仔细看他们的行前面的序号

请添加图片描述

N0wayBack{F0x_r4Pig_goOs3~~}


2. F3 | 春节红包题-Misc2-Old |

题目描述:

春节红包题,供大家娱乐,做出该题的同学请带着WP联系群主qq(xxxx),红包题共100元,所有做出来的同学平分。flag格式为N0wayBack{XXXXXXXXX}

hint:

1.解出的结果包上N0wayBack提交。

2.游戏一般玩法,两手向上下提为第一步,左右拉为第二步。

3.压缩包中为hint而已,别太纠结,原始png图片即可得到flag

解题思路:

  1. 首先折纸,完成如图的样子

请添加图片描述

  1. 制作好了东南西北,摆放位置如下图

请添加图片描述

  1. 然后就是玩游戏
E5S1S8E4S4S5N5W5E2S3W3N4W4S1S2S4E6E8N4N7N6S7N7S1E3S2N6W7E3N4W7S5在png的尾部
E5S1S8E4S4S5N5W5E2S3W3N4W4S1S2S4E6E8N4N7N6S7N7S1E3S2N6W7E3N4W7S5

东 east 南 south 西 west 北 north

东5 南1 南8 东4 南4
南5 北5 西5 东2 南3
西3 北4 西4 南1 南2
南4 东6 东8 北4 北7
北6 南7 北7 南1 东3
南2 北6 西7 东3 北4
西7 南5

C B A D A
B F G D B
G E H B A
A D D E F
E B F B C
A E G C E
G B

# 最终得到
CBADABFGDBGEHBAADDEFEBFBCAEGCEGB
  1. 如果你仔细看图,会发现C的下面有个010,A的下面有个000

我第一步是把A替换为000,C替换为010,然后其他的全部转binary,然后再去转ascii,没有成功

正确做法是:A --> 000, C --> 010, 所以B大胆点就是 001,所以对应关系就是ABCDEFGH对应01234567

'''
A 000
C 010

根据A --> 000, C --> 010
所以B --> 001

所以映射关系就是 ABCDEFGH 01234567
'''

cipher_text = "CBADABFGDBGEHBAADDEFEBFBCAEGCEGB"
table = str.maketrans("ABCDEFGH", "01234567")

bin_str= ""
for i in cipher_text.translate(table):
    bin_str += bin(int(i))[2:].zfill(3)

# binary to ascii
for i in range(0, len(bin_str), 8):
    print(chr(int(bin_str[i:i+8], 2)), end="")

请添加图片描述

N0wayBack{D0ngN@nXiBe1}

补充:

关于这个东南西北,如果很快的就得到结果,我这边写了个脚本,由于这道题目并不多,所以可以自己一个一个试出来(如果遇到BT出题人,就不可能一个一个试了,你需要考虑写个脚本了,这边只做扩展讨论可看可不看)

# 东 east 南 south 西 west 北 north

dic = {
	"E": ["C", "D"],
	"S": ["B", "A"],
	"W": ["G", "H"],
	"N": ["F", "E"]
}

cipher_text = "E5S1S8E4S4S5N5W5E2S3W3N4W4S1S2S4E6E8N4N7N6S7N7S1E3S2N6W7E3N4W7S5"

plain_text = ""
for i in range(0, len(cipher_text), 2):
	part = cipher_text[i:i+2]
	if int(part[-1]) % 2 == 0:
		plain_text += dic[part[0]][1]
	else:
		plain_text += dic[part[0]][0]

print(plain_text)

请添加图片描述

原理:

因为东南西北,就4个面,每个面也就是2种情况,一共就是8个情况

举个例子,比如说东1,东1=C,东3你会发现也还是C,东2=D,东4也会等于D,以此类推都满足,所以就可以根据这个特点写脚本

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值