目录

  1. 1. 前言
  2. 2. 基础知识
    1. 2.1. 文件结构
      1. 2.1.1. png
        1. 2.1.1.1. IHDR
      2. 2.1.2. jpg
      3. 2.1.3. zip
    2. 2.2. LSB
  3. 3. 工具
    1. 3.1. zsteg
    2. 3.2. foremost
    3. 3.3. Stegsolve
      1. 3.3.1. Data Extract——检测LSB(最低有效位)隐写
      2. 3.3.2. Image Combiner——双图操作

LOADING

第一次加载文章图片可能会花费较长时间

要不挂个梯子试试?(x

加载过慢请开启缓存 浏览器默认开启

图片隐写

2024/6/18 MISC
  |     |   总文章阅读量:

前言

本着有接触过就稍微记录一下的原则,于是就有了这个


基础知识

文件结构

png

参考:https://www.freebuf.com/articles/others-articles/265879.html

文件头:89 50 4E 47 0D 0A 1A 0A

IHDR

文件头数据块IHDR(header chunk):它包含有PNG文件中存储的图像数据的基本信息,并要作为第一个数据块出现在PNG数据流中,而且一个PNG数据流中只能有一个文件头数据块。

文件头数据块由13字节组成,它的格式如下表所示:

域的名称 字节数 说明
Width 4 bytes 图像宽度,以像素为单位
Height 4 bytes 图像高度,以像素为单位
Bit depth 1 byte 图像深度: 索引彩色图像:1,2,4或8 灰度图像:1,2,4,8或16 真彩色图像:8或16
ColorType 1 byte 颜色类型: 0:灰度图像, 1,2,4,8或16 2:真彩色图像,8或16 3:索引彩色图像,1,2,4或8 4:带α通道数据的灰度图像,8或16 6:带α通道数据的真彩色图像,8或16
Compression method 1 byte 压缩方法(LZ77派生算法)
Filter method 1 byte 滤波器方法
Interlace method 1 byte 隔行扫描方法: 0:非隔行扫描 1: Adam7(由Adam M. Costello开发的7遍隔行扫描方法)

IHDR(49 48 44 52)数据块关键字之后紧接的就是定义宽与高的字节块,具体可以先看图片属性中的宽高然后转为16进制后再搜索发现对应的字节块(同样也适用于jpg)


jpg


zip

参考:https://goodapple.top/archives/700

实体文件头:包含着文件的各种信息,包括文件名称、解压缩版本、压缩方式、CRC等等,固定值50 4B 03 04


LSB

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

  1. 像素三原色(RGB)
  2. 通过修改像素中最低位的1bit来达到隐藏的效果。
  3. 工具:stegsolve、zsteg、python脚本

工具

zsteg

参考:https://blog.csdn.net/Amherstieae/article/details/107512398

可以检测并提取出PNG和BMP图片里的隐写数据

github:https://github.com/zed-0xff/zsteg

安装:

sudo gem install zsteg

查看lsb数据:

zsteg xxx.bmp
zsteg xxx.png
zsteg -a (文件名)    #查看各个通道的lsb

image-20240618153734927

检测zlib:

#-b的位数是从1开始的
zsteg zlib.bmp -b 1 -o xy -v

提取图片对应通道的内容,根据对应通道的文件类型确定后缀名:

zsteg -E b1,rgb,lsb,xy 1.png > out.zip

foremost

参考:https://www.freebuf.com/sectool/359063.html

将图片中的隐藏文件拆分出来

安装:

apt install foremost

分析文件,然后输出到output文件夹:

foremost -I file -o output

audit.txt分析报告也会一并输出到文件夹中


Stegsolve

参考:https://blog.csdn.net/dyw_666666/article/details/88650738

下载地址:http://www.caesum.com/handbook/Stegsolve.jar

Analyse下的功能:

  • File Format:文件格式,这个主要是查看图片的具体信息

  • Data Extract:数据抽取,图片中隐藏数据的抽取

  • Frame Browser:帧浏览器,主要是对GIF之类的动图进行分解,动图变成一张张图片,便于查看

  • Image Combiner:拼图,图片拼接

Data Extract——检测LSB(最低有效位)隐写

参考:https://developer.aliyun.com/article/1090023

Data Extract下调整Bit Planes、Bit Order、Bit Plane Order

一般Bit Planes都是把rgb通道设置为0,然后调整剩下的几个选项

Image Combiner——双图操作

参考:https://developer.aliyun.com/article/1090023

当两张 jpg 图片外观、大小、像素都基本相同时,可以考虑进行综合分析,即将两个文件的像素RGB值进行XOR、ADD、SUB等操作,看能否得到有用的信息

这里使用Image Combiner

只需要在弹出的窗口中点击左右按钮选择处理方式,有两张图片的RGB值进行XOR、ADD、SUB等操作