Moxin 发表于 2023-5-29 14:39:58

【ISCC2023】MISC-好看的维吾尔族小姐姐

题目描述
五十六个民族,五十六支花,五十六个兄弟姐妹是一家。现如今,民族团结的思想早已深入人心,而维吾尔族又是中华民族的重要组成部分,解决本题需要各位解题人知晓维吾尔族同胞的说话方式。

题目分析下载附件,得到一个名为” 古力娜扎” 的文件。
由于 Mac 上没有 010Editor(不是么有,是要付费呀!),我就经验分析了。

使用:https://the-x.cn/encodings/Hex.aspx

得出这玩意是个 PNG 图片。

Mac 和 Linux 是有 CRC 效验的,所以这题应该是宽高的问题。

解题 1
得到 PNG 宽高,修复宽高。

我们观察发现,这下面是一个被翻转的 data matrix,接下来我们还要识别,这些 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 实体编码

我们修改上面的代码,做出一把梭脚本:

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



页: [1]
查看完整版本: 【ISCC2023】MISC-好看的维吾尔族小姐姐