LSB隐写

前言

平台上自己尝试着解了一些有关于图片隐写的问题,对于LSB隐写题目的一些学习与理解,以及个人的解题思路。

LSB简介

LSB,称为:最低有效位,它的英文是Least Significant Bit 。我们知道图像像素一般是由RGB三原色(即红绿蓝)组成的,每一种颜色占用8位,0x00~0xFF,即一共有256种颜色,一共包含了256的3次方的颜色,颜色太多,而人的肉眼能区分的只有其中一小部分,这导致了当我们修改RGB颜色分量种最低的二进制位的时候,我们的肉眼是区分不出来的。LSB加密是信息隐藏中最基本的方法。古人的藏头诗也算是一种隐写。

Image

对最低有效位的意思解析

png图片是一种无损压缩的位图片形格式,也只有在无损压缩或者无压缩的图片(BMP)上实现lsb隐写。如果图像是jpg图片的话,就没法使用lsb隐写了,原因是jpg图片对像数进行了有损压缩,修改的信息就可能会在压缩的过程中被破坏。而png图片虽然也有压缩,但却是无损压缩,这样修改的信息也就能得到正确的表达,不至于丢失。BMP的图片也是一样的,是没有经过压缩的。BMP图片一般是特别的大的,因为BMP把所有的像数都按原样储存,没有进行压缩。
png图片中的图像像数一般是由RGB三原色(红绿蓝)组成,每一种颜色占用8位,取值范围为0x00~0xFF,即有256种颜色,一共包含了256的3次方的颜色,即16777216种颜色。而人类的眼睛可以区分约1000万种不同的颜色,这就意味着人类的眼睛无法区分余下的颜色大约有6777216种。
Image
十进制的235表示的是绿色,我们修改了在二进制中的最低位,但是颜色看起来依旧没有变化。我们就可以修改最低位中的信息,实现信息的隐写。我修改最低有效位的信息的算法就叫做lsb加密算法,提取最低有效位信息的算法叫做lsb解密算法。
Image
Image

工具

解题必然会有工具这里, 在这里使用一款功能很强大的lsb隐写分析工具—StegSolve图片通道查看器。使用这个工具记得首先安装JDK配置JAVA环境,然后再使用StegSolve。
下面是我使用的JDK以及配置好后的StegSolve图标。
Inage

使用工具

之后看题目用stegsolve打开看到这张图片。
Image
使用stegsolve打开图片,按右方向键查看各通道显示的图像。一般有些题目会在某一个图像通道中直接显示出flag,但是显然这题不行,看来还需要绕些弯,要获取最低位的图片信息。
打开后使用Data Extract: 数据抽取,图片中隐藏数据的抽取。可以看到Image
这时 看到这 突然会不知道如何去选择,或者乱选一气,当然这绝对出不来。那么我们应该如何去点。回到最开始的图片中Image向右边一直翻动会发现
alpha plane7-0全是一个颜色没有任何变化,之后继续翻动会发现

Image

Red plane0这里左上角好像有些字符 继续翻动

Image
green plane0 左上角也同样有字符一样继续翻动

Image
blue plane0左上角也有。这时候回到图片分析里 看到bit planes看到里面有通道选择 对应上面的三个0通道选择Image
同时bit order 选择LSB一栏点击预览 可以得到Image这时候看到上面有编码出现向上拉动,会发现flagImage
这里我们就拿到了这道题的flag 就是 have a good time!

同样 第二道LSB 跟上述一样选择好通道一样可解出来
Image
具体操作更上述一样就不在一一举出了。

这是我这个小白的解题思路,如有出错还请大佬轻喷。


  转载请注明: Greypotato LSB隐写

 上一篇
PHP个人学习记录 PHP个人学习记录
前言这篇博客记录了学习PHP中的个人理解与重要的知识点。能够更好的巩固自己所学习的知识。 PHP简介PHP 它的英文名称:Hypertext Preprocessor (学习过程中顺便记个单词) 它的中文名称:超文本预处理器。 PHP是一种
2019-04-06 Greypotato
下一篇 
使用Hexo搭建个人博客+主题更换 使用Hexo搭建个人博客+主题更换
前言关于个人博客的搭建过程,个人在这里面踩了很多的坑,初次搭建的不算成功,还好有团队的教学与学长的经验相助,在努力下搭建了我的个人博客。在此总结我在搭建的一些过程。 正文本次过程只适用于windows的用户。用于个人学习记录。 搭建流程
2019-03-16 Greypotato
  目录