N0wayBack 春节红包题

状态简写 状态 状态说明
W Wait 没有人做这道题,你可以开始尝试
S Stuck 题目做到一半思路卡壳
F Finished 完成该题
1 First Blood 获得一血
2 Second Blood 获得二血
3 Third Blood 获得三血
L Lack 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

N0wayBack 春节红包题_第1张图片

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

N0wayBack 春节红包题_第2张图片

N0wayBack 春节红包题_第3张图片

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

N0wayBack 春节红包题_第4张图片

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

N0wayBack 春节红包题_第5张图片

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

N0wayBack 春节红包题_第6张图片

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

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

N0wayBack 春节红包题_第7张图片

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

N0wayBack 春节红包题_第8张图片

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

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

N0wayBack 春节红包题_第9张图片

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

N0wayBack 春节红包题_第10张图片

N0wayBack{F0x_r4Pig_goOs3~~}


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

题目描述:

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

hint:

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

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

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

解题思路:

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

N0wayBack 春节红包题_第11张图片

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

N0wayBack 春节红包题_第12张图片

  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 春节红包题_第13张图片

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)

N0wayBack 春节红包题_第14张图片

原理:

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

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

你可能感兴趣的:(python)