494 字
2 分钟
MISC——图片隐写之GIF隐写

肥鱼.jpg

GIF(Graphics Interchange Format,图片交换格式)文件是由CompuServe公司开发的图片文件格式,非常适合于较为简单的图像,可利用小动画或低分辨率电影剪辑等,每一帧动态变化都是一张图片。 在线GIF制作:http://www.soogif.com/gifTool

GIF通过在某一张图片或多张图片中写入信息(可能是隐藏信息),加快GIF播放速度,使得肉眼难以识别flag。 这时我们可以通过分离图片,来获得具体的图片,在windows中可以直接拖到ps中查看图层。 在Linux下,可以使用convert gif文件名 %02d.png命令分离图片 然后可以使用eog *.png来查看分离出的图片 使用StegSolve 打开 GIF,菜单栏选 Frame Browser,也可以直接把每一帧像幻灯片一样列出来。

当然,也不是所有的GIF隐写题都会把明文藏在某一张图片中,而是有大量非明文的信息,这时通过分析我们可以考虑分离组合文件 ls *.png | while read filename; do convert filename−transparentwhitefilename -transparent white filename; done //遍历图片传递给while循环,通过循环去除白色,存储在filename中 ls *.png | while read filename; do convert $filename 00.png -gravity center -composite 00.png ; done //遍历图片组合成00.png

GIF帧延迟/时间轴隐写#

有些GIF甚至图片之间并没有任何变化,这时候就可以考虑是否为时间轴隐写 #查看每一帧的延迟时间(单位:百分之一秒) identify -format “%s: %T\n” 图片.gif //提取出来的数字(比如 10, 40, 20)往往需要转成十六进制或 ASCII。

GIF 文件尾部也有结束标记 3B。和 PNG/JPEG 一样,尾部的附加数据可以用 binwalk 扫,或者用 010 看尾部。
另外,GIF 有特殊的 Comment Extension 块(0x21 0xFE),有时候出题人会把 flag 直接写在注释块里。用 exiftool 或 strings 扫一眼就知道。

MISC——图片隐写之GIF隐写
https://imjiazi.top/posts/misc7/
作者
甲子
发布于
2026-11-09
许可协议
CC BY-NC-SA 4.0