misc刷题(文件结构)

文件结构

misc24

考察了bmp文件头和文件体

bmp文件详解

bmp文件头是以位图格式:424d 然后其他的参数都是从后往前读的 具体看下图

img

注意像素是文件体的字节数/3 (三原色)像素也等于图像宽×图像高 这道题是图像的长×高不对,提示是flag在图片上面。宽是对的,根据像素推导高,然后在位图里改,最后导出就好

misc25

考察png文件格式

img

Png有crc校验

图片的crc校验值由从第12个字节到第28个字节的十七位字节进行crc计算得到

所以拿到png图的题时应当先校验crc

49 48 44 52 00 00 03 84 00 00 00 96 08 02 00 00 00

这里使用脚本去根据crc校验值去爆破图像的宽高(脚本都在test.py中)

misc26

Png文件同25题去跑脚本

misc27

考点时jpg文件格式 这个参考

jpg文件格式 img

Jpg文件宽高是在4中 所以需要修改宽高时可以直接查找FFC0 6-7位是高 8-9位是宽

当什么提示flag在下面上面就修改高 宽看题目意思修改

Jpg的宽高是先高后宽

在第四块区域中0008 0008 是高和宽 注意要倒着看

misc28

GIF 字节格式

img

474946383961 文件头后是宽高

注意点 还有 Image Seperator里的下一帧宽高也需要改

img

这里插一句 gif动图是一帧一帧图片结合起来的 所以每一帧动图都会有Graphics Control Extension 和 Image Descriptor 9021 F9 04 01 32 00 02 00 2C 00 00 00 00 84 03 96 00 87

所以呢 改图片需要将整合图片的宽高和每一帧的宽高都要一起改

我直接搜索相同宽高一起改就完事了(跟bmp图片文件一样 宽高是倒的 倒着读就行)

这里引入stegsolve 图片查看器

misc29

也是gif文件格式 根据题目修改高 记得每一帧的高都要修改

保存以后发现是一张动图,这里就用到了stegsolve工具 analyse模块中frame browser (动图帧格式预览)一帧一帧查看 就获得了

misc30

还是bmp图片格式 所以按照题目要求修改 宽度950 (3B6)就行 注意得倒着写

misc31

Bmp图片格式 按照要求高度是对的 修改宽度 根据字节数手搓宽度 注意字节数得除以3才得到像素,因为三原色 但是求解的宽度不是整数需要向下取整

misc32

考察了png 的crc检验 把文件放到脚本里去跑得出宽和高

misc33

和上题一样 跑脚本

misc34

根据提示用脚本遍历宽度就行

miscc35

不能理解为什么高度也会被改掉

那么既然改了为什么高度是600

那如果遍历高度和宽度呢

发现数据量过于庞大 然后上网搜了下 如何批量检测损坏文件

引入imghdr库 但是跑出来的甚至是修改好的 也是被检测出来是损坏的 本来题目给的就是损坏文件

这道题

这边跑脚本的时候注意 宽高所占的字节数 一个十六进制字母占到0.5个字节 一般这个位置是2-4个字节 如果2个字节的话要用短整型(h) 如果4个字节的话要用整型(i)struct.pack(‘>h’,i)如果像bmp是倒着写的可以[::-1]

misc36

和上一道同理,如果出现有图像但是不是所需要的图像可以考虑改大图片的高,或许就有用呢,一般高度改了确实能隐藏,跑的脚本在文件下。

misc37

打开文件是发现是动图,提示也是flag在图片里所以gif一张一张分离,用stegsolve analyse frame browser ctfshow{2056782cd57b13261dcbbe3d6eecda17}

misc38

提示是还是flag在图片里,打开后发现是个png文件,看了wp以后才知道这个提示是要先png转到gif格式 工具png转gif工具 然后和上一题同样操作就行了

ctfshow{48b722b570c603ef58cc0b83bbf7680d}

使用apngdis.exe(APNG Disassembler)工具分离文件也可

misc39

提示是flag如流水,图片帧间隔时间隐写,identify -format “%T “ misc39.gif > 1.txt

这个实在看不懂了网上找吧

flag一般是32位的加上格式是41位,

img

可以看到3637循环,可以想到01二进制循环,第一位是37 所以37为1,36为0

转化为287,287 /41=7 所以7位为一组,转化字符串类型 然后flag就是转化后的字符串


misc刷题(文件结构)
http://example.com/2023/05/29/misc/misc2/
作者
Re1ca1g
发布于
2023年5月29日
许可协议