726 字
4 分钟
MISC——图片隐写之LSB

1793698885880-ejqc62.jpg

LSB(最低有效位(Least Significant Bit))在大多数PNG图像中,每个像素都有R、G、B三原色组成(部分还包含A通道表示透明度),每种颜色一般用8位数据表示(0x00~0xFF,即256种颜色),即一共含有256^3种颜色(16777216种)。

人类的眼睛只能识别大致1kw种颜色,而剩下无法被眼睛识别的颜色仍有许多。LSB隐写其实就是去修改RGB颜色分量的最低二进制位,而我们的眼睛也不会注意到隐写前后的变化。 每个像素可以携带3bit的信息

LSB替换隐写基本思想就是用嵌入的秘密信息取代载体图像的最低比特位,原本的7个高位平面与替代秘密信息的最低位平面组合成含隐藏信息的新图形。

而在比赛中常用于检测LSB的工具是stegsolve和zsteg(较针对于PNG、BMP文件的LSB隐写JPEG 不适用。linux下,安装命令为:root@kali:/#gem install zsteg)

zsteg检测LSB隐写 文件名 zsteg -a 图片.png #查看有无LSB隐藏数据
zsteg -v 图片.png | head -40 #显示前40行,列出组合的尝试结果与置信度 zsteg -E “b1,rgb,lsb,xy” 图片.png #精确的提取参数

b1每个通道取 1 比特(bit depth 1)
rgb使用 R、G、B 三个通道(也可 b、r、g、a、rgba)
lsb最低位优先(Least Significant Bit first)
xy行优先读取(先横后竖;yx 是列优先)

LSB隐写术也分加密与未加密 一般而言,stegsolve和zsteg工具针对的是未加密的LSB隐写文件 而cloacked-pixel工具是强制加密再嵌入的工具,使用此工具嵌出来的LSB一定是加密的

Stegsolve 当两张图片外观、大小、像素都基本相同时,可以考虑进行结合分析,即将两个文件的像素RGB值进行XOR\ADD\SUB等操作,尝试获取有用信息,Stegsolve可以方便的进行这些操作。(使用场景,两张图片基本相同)

cloacked-pixel工具 python2 lsb.py analyse 图片.png # 检测 LSB 分布是否异常均匀 python2 lsb.py extract 图片.png out 密码 # 提取,必须给密码 file out # 看提取出什么

silent Eye工具 silent eye属于“加密 LSB”的一种具体实现,但不能和“加密 LSB”画绝对的等号。准确来说,它是一种带加密/压缩功能的lsb隐写工具,当stegsolve与zsteg无法得到明文时,就可以考虑使用silent eye 工具

  1. 如果附件是 .bmp 格式(SilentEye 最爱),或者题目描述里提到了“安静、音频、听觉”,优先试 SilentEye。
  2. 题目要是没给密码,先用 SilentEye 直接点 Decode 试试(因为它可以不加密,或者允许空密码);如果是 .png 且题目明确给了一个复杂的密码,大概率是 cloacked-pixel。
MISC——图片隐写之LSB
https://imjiazi.top/posts/misc6/
作者
甲子
发布于
2026-11-09
许可协议
CC BY-NC-SA 4.0