用一个ctf的题目作为例子吧,iscc2014中有一个题目,给了一个名为 此为gif图片.gif的文件,打开发现了报错。有的时候,会需要我们去修复图片,这对我们对于图片的文件结构要有了解。找到gif的文件格式,然后对照这个破损的文件。Gif的图片格式文档可以查看这个链接,http://dev.gameres.com/Program/Visual/Other/GIFDoc.htm
图片8.png
用winhex打开,我们会发现他和普通的GIF图片不一样,头部缺少了东西,在对比一些文档,会发现是少了GIF8。
图片9.png
我们手动修复一下,增加GIF8。
图片10.png
然后浏览图片后会发现,有个PASSWORD一闪而过,gif和别的图片最大的区别就是gif是动态图,它是可以由多帧组成的可以顺序播放的,有的题就是把播放的时间弄得特别慢,几乎就不会动的,所以我们可以用工具一帧一帧的观察图片。Stegsolve就带有这种功能。
Stegsolve——Analyse——Frame Brower就可以看到是有8帧的图片,有点重叠不太好观察,也可以用Namo_GIF_gr这个工具。得到了PASSWORD is Y2F0Y2hfdGhlX2R5bmFtaWNfZmxhZ19pc19xdW10ZV9zaW1wbGU=。很明显,这个时候PASSWORD是经过的编码的,我们可以看到字符范围是0-9a-Z结尾还有=,所以判断是base64编码,解码得到了catch_the_dynamic_flag_is_qumte_simple。这个就是和编码方式结合,传递一些可疑的数据,隐写术常常会与加解密或编码结合在一起,对一些常见的编码和加密方法也要了解,得到密文的字符范围和长度能发现这是什么加密或者是编码。
数据在隐藏的时候,我们常常是需要先分析是数据隐藏在哪里,也就是他在利用是什么做载体,之后才可以进一步的分析是加密或编码的。这也就是说我们要对一个图片的格式要有了解,才能知道哪些地方是可疑的,哪些是可以隐藏起信息的,会有冗余的成分在。举个例子吧,比如给了一个jpg的图片。除了我们之前说到的隐藏在结束符之后的信息,jpg图片还可以把信息隐藏的exif的部分。exif的信息是jpg的头部插入了数码照片的信息,比如是用什么相机拍摄的。这些信息我们也是可以控制的,用查看属性的方式可以修改一部分的信息,还可以用exif编辑器来进行编辑。Power_exif这个可以用来编辑。