0

MISC-隐写的总结

 2 years ago
source link: https://qwzf.github.io/2019/04/06/MISC-%E9%9A%90%E5%86%99%E7%9A%84%E6%80%BB%E7%BB%93/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

这周做了几个隐写题,感觉非常有趣。看了许多大佬的博客,最终才完整的做完这些隐写题。为了加深自己的理解,还是有必要总结一下的。毕竟学以致用,学以会用!!

解隐写题的一般思路:

  • 首先看看图片是不是图种
  • 然后使用binwalker分析图片,如果是有文件合成,分离
  • 有时信息藏在备注中
  • 工具stegsolve

1、LSB隐写

LSB(英文 least significant bit)即最低有效位。LSB加密是信息隐藏中最基本的方法。由于人们识别声音或图片的能力有限,因此我们稍微改动信息的某一位是不会影响我们识别声音或图片的。

通常来说LSB加密用在无损压缩的数据格式文件中,例如图像中的png格式、bmp格式和音频的wav格式。由于这三种格式未对源数据进行有损压缩,因此可以将信息隐藏起来。

对于图像文件LSB的特征很明显,通常将信息隐藏在某一个颜色通道中。我们可以查看图片的每个像素点的RGB值,或者使用stegsolve工具进行查看。 stegsolve工具下载

需要下载Java配置Java环境或者只下载Java,用Java打开stegsolve.jar文件

由于图像是由像素构成的,每个像素有8位(对于BMP图像来说),通常最后一位的变化,通过肉眼是无法察觉的

例1:

下载题目文件并解压后,发现一个名叫taqing.png的图片。因为题目是“LSB”,所以这张图片应该进行了LSB隐写。

用stegsolve打开taqing.png,并选择Analyse的Data Extract

在这里插入图片描述
在这里插入图片描述

把Red、Green、Blue的最低有效位0那一列打对勾(原因),并点击Preview,在最上面会发现flag了!!

在这里插入图片描述
在这里插入图片描述

flag是flag{have a good time!}

例2:

下载题目文件并解压后,发现一个名叫LSBencode.png的图片。因为题目是“LSB2”,所以这张图片也应该进行了LSB隐写。

用stegsolve打开LSBencode.png,并选择Analyse的Data Extract

在这里插入图片描述
在这里插入图片描述

把Red、Green、Blue的最低有效位0那一列打对勾(原因),并点击Preview,在最上面会发现flag了!!

在这里插入图片描述
在这里插入图片描述

2、盲水印

由题目可知,此题为盲水印,所以使用bwm脚本(python2)另一个脚本decode脚本。

bwm脚本 decode脚本

并且这两个不完全一样,用其中一个加上水印,用另一个解不开,所以还是都存起来吧。

运行脚本发现没有cv2这个模块,使用下面的命令安装cv2
pip install opencv-python

如果是bwm脚本运行

python bwm.py decode 1.png 2.png flag.png

其中1.png和2.png是解压所得图片,flag.png是所分离出来的水印。

如果是decode脚本运行

python decode.py --original 1.png --image 2.png --result flag.png

其中1.png和2.png是解压所得图片,flag.png是所分离出来的水印。

另外推荐一个加盲水印和分离盲水印的神器:WaterMarkH下载

例:

下载题目文件并解压后,发现两张图片:text.jpg和text2.jpg。因为题目是“盲水印”,所以这道题应该是找盲水印。

在这里插入图片描述
在这里插入图片描述

把文件后缀改成.png格式,结果我试了两个脚本都没有找到盲水印,我以为是因为python版本的问题,然而并不是。。。所以这道题应该是使用WaterMarkH加的盲水印,所以直接使用这个工具就找到了盲水印

在这里插入图片描述
在这里插入图片描述

例:

下载题目文件,解压出来就是双图first.png和second.png,先用stegslove打开first.png保存反色图片为1.bmp

在这里插入图片描述
在这里插入图片描述

然后打开保存的反色图片1.bmp,选择stegslove的image combiner结合second.png,保存结合的图片为solved.bmp

在这里插入图片描述
在这里插入图片描述

然后打开保存的结合图片solved.bmp,再用stegslove对二维码变化一下,得到三张二维码

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

扫描结果是DES 6XaMMbM7
和一长串字符,很显然是des加密,秘钥是6XaMMbM7,然后对长串字符进行DES解密,即可得到flag!!

例:

在这里插入图片描述
在这里插入图片描述

根据题目可知,此题是画图

在这里插入图片描述
在这里插入图片描述

用winhex打开发现图片后面有很多的数据

在这里插入图片描述
在这里插入图片描述

复制下来保存为1.txt文件用notepad++转换一下编码

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这就是坐标了,这样来画图吧 转换成gnuplot能识别的格式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
保存1.txt文件,下载gnuplot画图工具,把1.txt文件和画图工具放入同一路径,打开gnuplot.exe,输入命令plot "1.txt"进行画图
在这里插入图片描述
在这里插入图片描述
扫描二维码,即可得到flag!!

隐写题总结之后,果然让我对此更加理解了,开心!!!


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 [email protected]

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK