视频隐写¶
MISC · 知识域。视频载体隐写。标签:帧提取、视频结构隐写。
触发特征¶
- 给 mp4/avi/gif 求 flag;画面闪帧、内容"抖动"。
帧提取¶
ffmpeg -i x.mp4 frames/%04d.png全帧导出逐张看;ffmpeg -i x.mp4 -vf "select=gt(scene\,0.9)"场景切换帧。- 闪帧:1-2 帧的 flag 画面;播放时肉眼不可见,提取即得。
- 帧累积:多帧叠加/平均出隐藏图(ASIS CTF Finals 2013、SECCON 2015)。
- 帧差分:相邻帧异或/差分(GIF 帧差 + 摩斯,BaltCTF 2013;AVI 帧差分像素,H4ckIT CTF 2016)。
视频结构隐写¶
- 容器结构:mp4 的 moov/udta/meta atom、avi 的 RIFF 块——附加数据藏在容器元数据。
- 视频流层:H.264 SEI/NAL 附加单元藏字节;多流容器多路隐写(BSIDSSF 2026)。
- GIF:帧调色板(PLTE)拼接 ELF(IceCTF 2018);APNG 帧提取(IceCTF 2016);GIF 调色板操纵还原 QR(3DSCTF 2017)。
- SVG 动画关键帧隐写(UTCTF 2024);Kitty 终端图形协议流(BSIDSSF 2026)。
- 字幕轨/章节/附件流(mkv attachments):ffmpeg/mediainfo 全列。
光学与物理变体¶
- 弯曲玻璃反射还原 QR(PlaidCTF 2018);视频里 LED 摩斯(大小写锁定灯,Caps-Lock LED Morse,STEM CTF 2018)。
- 逐帧 OCR / QR 扫码(ZXing/pyzbar 批量)→ 拼接。
- 撕碎文档像素边缘重组(Nuit du Hack CTF 2018)。
工具速查¶
ffmpeg -i in.mp4 frames/%05d.png
ffmpeg -i in.mp4 -filter:v "setpts=0.2*PTS" out.mp4 # 放慢闪帧
python: opencv 逐帧 diff / 累加
mkvinfo / mediainfo 容器全解