+ +

隐写术初探

明天就要讲课了,,,还是他们的第一节课,,但我真的感觉啥都不会吖,没事,相信自己,好歹是大二的了,多多少少肯定会的比他们多一点儿嘛,大不了我就拽C语言,,

好了,步入正题,这篇主要是关于图片隐写术的,属于入门还低一级别的???不过,还是有用的

隐写术初探

隐写术定义:隐写术是关于信息隐藏,即不让计划的接收者之外的任何人知道信息的传递事件(而不只是信息的内容)的一门技巧与科学。(说白了,就是把信息藏起来不让别人看到,而像我们这种专业的CTF选手,就是要把人家隐藏的信息找出来啦)。

图像的结构

想要攻击一个东西,肯定要先了解它一下嘛,不然怎么找到它的弱点呢,所谓知己知彼,百战百胜嘛,那么首先就是了解图像的结构喽。

Gif:http://dev.gameres.com/Program/Visual/Other/GIFDoc.htm
png:https://my.oschina.net/ososchina/blog/801358
jpg:https://blog.csdn.net/blues1021/article/details/45422557

建议直接看png格式的结构,容易理解,然后再类比,很容易得出结论:图像的文件头都是固定的,都有自己的图像开始标志。

常见的文件头文件尾:https://blog.csdn.net/xiangshangbashaonian/article/details/80156865(实在不知道的话,还可以自己下载一个相同格式的文件,然后拖到winhex(能观察到16进制数的一个工具)观察)

图种

百度百科的解释很有意思呢,这里就不贴出来了,看它的名字就知道这是啥了呀,算了,还是贴出来吧,一种采用特殊方式将图片文件(如jpg格式)与rar文件结合起来的文件。该文件一般保存为jpg格式,可以正常显示图片,当有人获取该图片后,可以修改文件的后缀名,将图片改为rar压缩文件,并得到其中的数据。由于这种方式通常为了一些网友传播种子文件,故称为图种,又叫内涵图。

正常的jpg文件尾是FF D9,(这里就是图片结构的知识啦,其实有用的不止文件头文件尾哦,还有些东西得我慢慢去挖掘呢,fighting),遇到一张图片,右键查看属性没看出来啥的话,把他拖到winhex观察,如果发现不是正常结尾的,而是pk之类的,说明这张图片其实是个图种吖。

生成图中的方法其实蛮简单的,利用cmd的cp命令:cp /b 1.jpg+2.rar 3.jpg,更改后缀名可解压或查看源文件。

当然这只是针对添加的文件是压缩文件的情况,添加的文件也可以是其他图片,比如两张图片叠加。这时需要用binwalk 可以获得更详细的信息。(原谅我太菜,binwalk还没装好,虚拟机这个东西好难搞哇,哭辽),使用啥的百度就好。

LSB

Least Significant Bit 最低有效位

原理就是图片中的像数一般是由三种颜色组成,即三原色,由这三种原色可以组成其他各种颜色,例如在PNG图片的储存中,每个颜色会有8bit,LSB隐写就是修改了像数中的最低的1bit,在人眼看来是看不出来区别的,也把信息隐藏起来了。

譬如我们想把’A’隐藏进来的话,如下图,就可以把A转成16进制的0x61再转成二进制的01100001,再修改为红色通道的最低位为这些二进制串。


隐写的载体是PNG的格式,如果是像之前的jpg图片的话就是不行的,原因是jpg图片对像数进行了有损的压缩,你修改的信息可能会被压缩的过程破坏。而PNG图片虽然也有压缩,但却是无损的压缩,这样子可以保持你修改的信息得到正确的表达,不至于丢失。BMP的图片也是一样的,是没有经过压缩的,可以发现BMP图片是特别的大的,因为BMP把所有的像数都按原样储存,没有压缩的过程。

可以用stegslove来分析,用python或matlab写脚本获得LSB组成一幅图像。

stegslove的使用

file format:貌似第一个功能只可意会???人性化的显示它的数据块???感觉大概是这个样子的

data extract:翻译说是数据提取,就勾选rgb三原色和Alpha通道值,preview后会提取出数据(有待摸索的,完全不知道这个有什么用呀)

stereogram solver:这个,,,布吉岛……

frame browser:分析gif图像的

image combiner:双图分析呀

windows安装binwalkhttp://www.cnblogs.com/pcat/p/5256288.html(大佬自己想办法的,我遇到这种问题,真的是不想搞的那种,向大佬学习)

参考:https://zhuanlan.zhihu.com/p/30539398