前言
本着有接触过就稍微记录一下的原则,于是就有了这个
基础知识
文件结构
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个高位平面与替代秘密信息的最低为平面组合成含隐藏信息的新图形。
- 像素三原色(RGB)
- 通过修改像素中最低位的1bit来达到隐藏的效果。
- 工具: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
检测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等操作