题目描述
五十六个民族,五十六支花,五十六个兄弟姐妹是一家。现如今,民族团结的思想早已深入人心,而维吾尔族又是中华民族的重要组成部分,解决本题需要各位解题人知晓维吾尔族同胞的说话方式。
题目分析 下载附件,得到一个名为” 古力娜扎” 的文件。 由于 Mac 上没有 010Editor(不是么有,是要付费呀!),我就经验分析了。
得出这玩意是个 PNG 图片。
Mac 和 Linux 是有 CRC 效验的,所以这题应该是宽高的问题。
解题 1
得到 PNG 宽高,修复宽高。
我们观察发现,这下面是一个被翻转的 data matrix,接下来我们还要识别,这些 Python 都可以完成。
[Python] 纯文本查看 复制代码 import cv2
import pylibdmtx.pylibdmtx as dmtx
img = cv2.imread("timu.png")
flipped_img = cv2.flip(img, 1) # 翻转图片
cv2.imwrite("1.png", flipped_img)
img = cv2.imread("1.png") # 识别码
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
decoded_objects = dmtx.decode(gray)
flags = ""
for obj in decoded_objects:
flags+= obj.data.decode()
print(flags)
接着我们发现了一串反着的 HTML 实体编码
我们修改上面的代码,做出一把梭脚本:
[Python] 纯文本查看 复制代码 import cv2
import pylibdmtx.pylibdmtx as dmtx
from html.parser import HTMLParser
import html
img = cv2.imread("test.png")
flipped_img = cv2.flip(img, 1) # 翻转图片
cv2.imwrite("1.png", flipped_img)
img = cv2.imread("1.png") # 识别码
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
decoded_objects = dmtx.decode(gray)
flags = ""
for obj in decoded_objects:
flags+= obj.data.decode()
flag=flags[::-1]
print(html.unescape(flag)) # 解HTML实体编码
至此,我们就可以完整的做出这道题目并拿到 FLAG 了。
第二种步骤(Windows做法可以参考文库文章):https://docs.qsnctf.com/qsnctf/3833.html#%E8%A7%A3%E9%A2%982
|