一道通信行业misc

通行行业的一道misc,复现一下。感谢大佬学弟的WP

整体思路:

题目附件有两个,一个加密的word,一个flag。flag打开发现末尾是4030B405 逆序一下就是504B0304 ,是zip文件的格式,用cyberchef把16进制生成zip文件。然后解压发现是个加密的pdf,提示10位密码很危险。用pdfcrack工具去尝试破解一下,发现破解成功。打开之后是一大串01。赋值下来放到word里,去掉空格换行。然后放到txt里面。发现字符数量是159201 (339*339),猜测是二维码。用脚本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from PIL import Image
from zlib import *
def QR_scan(str):
MAX = int(len(str) ** 0.5)
pic = Image.new("RGB", (MAX, MAX))
i = 0
for y in range(0, MAX):
for x in range(0, MAX):
if (str[i] == '0'):
pic.putpixel([x, y], (0, 0, 0))
else:
pic.putpixel([x, y], (255, 255, 255))
i = i + 1
pic.show()

f = open("c.txt", 'r')
str = f.readline()
# print(len(str))
QR_scan(str)

这里有个地方我卡了很久,一开始我是直接把pdf的01内容赋值到txt里,用word打开,然后去掉空格和换行,发现一直是159202个字符。一开始复制到word,去掉空格和换行,然后保存到txt里面才是159201。这里知道为啥的师傅可以解释下。