MISC中需要jio本处理的奇怪隐写

2023-02-19,,

好耶!

老样子,还是以ctfshow[1]misc入门中的题目为切入点

感兴趣的同学可以一边做题一边看看。呜呜,求点浏览量了

APNG隐写(MISC40)

APNG是普通png图片的升级版,他的后缀依然是.png,包含动态的情况下体积会比普通静态大出数倍,可以做到无损的情况下展示动态。

这里用到一个工具APNG Disassembler,它是一个 可以用来分解APNG图片的软件,使用这个工具可以把APNG动画图片中的每一帧都分解出来,并且把帧导出保存为图片文件。工具处理图片后,除每一帧图片外,每张图片还带有一个txt文件,内容为该帧delay的时间。

而此题中的flag就隐藏在每一帧图片的delay时间中故我们可以用python代码jio本提取每个txt文件的内容(每个txt文本中的第七个字符开始取)明显可以看出是ascii码值,对应转换即可得到。

此处贴出提取的jio本:

flag = ""
for i in range(1,69):
f = open('apngframe'+str(i)+'.txt')
s = f.read()
flag += chr(int(s.split("/")[0][6:])) print(flag)

IDAT隐写(MISC42)

根据题目的意思大概就是flag的长度为41,用010editor打开后发现有49个IDAT块,说明其中有这么8个是混淆视听的,在IDAT块中翻一翻大概就能在unit32 length中找到规律:99,116,102,115,104,111,119...也就是对应着ctfshow的ASCII码值,那么将这些数慢慢写下来,然后jio本解码即可得到我们可爱的flag~

如果觉得这么一个个翻太过于麻烦的话,也可以利用软件tweakPNG打开,直接就能看到(也没省事到哪去。。。

贴个解码的jio本:

flag = ''
s = [balabalabalayiduishuju] for i in range(0,len(s)):
flag+=chr(s[i]) print(flag)

CRC隐写(MISC43)

使用010editor打开附件可以发现CRC报错:

将这些错误的编码收集起来十六进制转字符穿就是flag啦

CRC隐写转二进制(MISC44)

这题其实就是承接上一题,毕竟上一题中并没有用到任何jio本

但此题中不同的一点就是CRC报错数据实在是太长了!!345个IDAT块,这要是手撸,那怕是不疯也得傻了。

故可以猜测不同的是这里correct行代表的是1,而chunk行代表的是0,这样我们就可以得到一串二进制数据,对之进行操作即可。

更好一点的想法是将这个拖到上一题中所提到的小东西中,进而将所有的正错文本统一导出,就比较方便,至于应该怎么操作以后再说

写不动了写不动了鸽了鸽了

好吧实际上是卡壳了完全不想继续探索了

明天的事明天再说


    你实现梦想的天堂 ︎

MISC中需要jio本处理的奇怪隐写的相关教程结束。

《MISC中需要jio本处理的奇怪隐写.doc》

下载本文的Word格式文档,以方便收藏与打印。