视频隐写类题目在CTF比赛中逐年增加,是隐写题目考查的一个新方向。视频可以看作图像和音频的综合,因此只要能从视频中将图像和音频分离出来,就可以按照图像隐写和音频隐写的方法进行深入分析。常见的视频格式包括avi、mov、rmvb、mp4等,Flash动画也可以看作视频隐写的一种。
视频隐写首先要查看文件的属性信息(也称为元数据,Metadata),然后利用工具提取每帧内容做进一步分析。针对视频文件的帧提取,可以使用工具ffmpeg(官网地址为http://www.ffmpeg.org/),也可以使用工具Video to Picture(官网地址为https://www.aoaophoto.com/)。针对Flash的资源提取,可以使用工具Flash Decompiler Trillix(官网地址为https://www.flash-decompiler.com/)。
视频隐写方式比较灵活,也有很多针对性的算法,需要大家多练习、多总结。
【例题】黄金六年.mp4
【题目来源】 RoarCTF 2019。
【题目描述】 找到文件中的flag。
【解题思路】 将文件用010 Editor打开,在最后发现一个字符串,经Base64解码,发现了RAR文件头,将解码后数据保存成RAR文件。对RAR文件解压,需要解压密码,我们在原MP4文件中继续寻找线索。使用Video to Picture把MP4转换成图片,如图2.3.1所示,按每秒25张图片进行采样,并保存成PNG格式。仔细查看提取出的图片,在《C++Primer Plus》《白帽子讲Web安全》《逆向工程核心原理》和《活着》对应的图片中发现了二维码,如图2.3.2~图2.3.5所示。分别扫码(可能需要调整屏幕亮度)后得到:key1:i,key2:want,key3:play和key4:ctf。用iwantplayctf作为密码解压RAR,得到flag:roarctf{CTF-from-RuMen-to-RuYuan}。
图2.3.1 将MP4转为图片
图2.3.2 发现二维码1
图2.3.3 发现二维码2
图2.3.4 发现二维码3
图2.3.5 发现二维码4