stegsolve与zsteg的使用

zsteg

介绍:用来检测PNG和BMP中隐藏数据的工具,可以快速提取隐藏信息

使用环境:kali

kali自带zsteg,可以用这个指令使用
gem install zsteg

下载完之后查看使用方法
sudo zsteg -h

列出常用的命令
zsteg xxx.bmp
zsteg xxx.png
zsteg -a (文件名) #查看各个通道的lsb

检测zlib,注意:-b的位数是从1开始的
zsteg zlib.bmp -b 1 -o xy -v

提取该通道图片
zsteg -e b8,a,lsb,xy 文件.png -> out.png

stegsolve

第一部分

RGB:R为Red,G为Green,B为Blue

在做Misc题的时候,更多用到是Red plane 0,Blue plane 0,Green plane 0,LSB隐写
image

但并不是无厘头的,在把PNG向左或向右点,可以看到Red plane 0,Blue plane 0,Green plane 0,与其他的不相同,八成是LSB隐写
比如:
Alpha plane 7到0几乎一样,都是空白(点击下边的>,是向右)
image

image

Red plane 7到1几乎一样
image

Red plane 0的左上边有黑点点
image

再向右看,Blue,Green与之一样
所以这就有了选择RGB的red、green和blue的最低位0的道理了

第二部分

1).Extra By(额外的):分为row(行)和column(纵)
每个像素用R,G,B三个分量表示,那么一张图片就像一个矩阵,矩阵的每个单位就是(0255,0255,0~255)
也就会有是纵排列和行排列了,一般事先访问行再访问列(如果相反会引起ve使用方法)

2).Bit Order(位顺序):MSB是一串数据的最高位,LSB是一串数据的最低位。

3).Bit Plane Order(位平面的顺序)
整个图像分解为8个位平面,从LSB(最低有效位0)到MSB(最高有效位7)随着从位平面0 到位平面7,位平面图像的特征逐渐变得复杂,细节不断增加。(一般我们的图片如果是RGB那么就是24位 3乘8嘛)

4).Bit Plane Order(位平面的顺序):一般图片是24位 也就是3个8 大家可以想像成三明治 比如BGR就是B为三明治第一层 G为第二层 R为第三层。
image
LSB隐写就是修改RGB颜色分量的最低二进制位也就是最低有效位(LSB),而人类的眼睛不会注意到这前后的变化,(人类的眼睛只能识别一部分颜色的变化)
image

如果我们修改lsb那么颜色依然和没修改的一样,并且修改的话每个像数可以携带3比特的信息。
image

这个作用是在于把最低位的二进制全部提取出来
image

这个作用在于对提取出来的最低位使用lsb解码算法
image

stegsolve具体用法可以参照:https://blog.csdn.net/qq_34398519/article/details/115400535

总结

但多数时候,我们最好使用 zsteg -a 一把梭,可以帮助我们更快找到隐藏信息

posted @ 2023-03-06 17:37  Zer0o  阅读(2797)  评论(0编辑  收藏  举报