misc之图片总结
一、基础知识
1.各类型文件的文件头
PNG (png),文件头:89504E47
JPEG (jpg),文件头:FFD8FFE1
GIF (gif),文件头:47494638
TIFF (tif),文件头:49492A00
ZIP Archive (zip),文件头:504B0304(显示字符串一般为PK)
Windows Bitmap (bmp),文件头:424DC001
ZLIB,是PNG IDAT块数据可选的压缩格式
CAD (dwg),文件头:41433130
Adobe Photoshop (psd),文件头:38425053
Rich Text Format (rtf),文件头:7B5C727466
XML (xml),文件头:3C3F786D6C
HTML (html),文件头:68746D6C3E
Email [thorough only] (eml),文件头:44656C69766572792D646174653A
Outlook Express (dbx),文件头:CFAD12FEC5FD746F
Outlook (pst),文件头:2142444E
旧版office MS Word/Excel (xls.or.doc or.ppt),文件头:D0CF11E0
MS Access (mdb),文件头:5374616E64617264204A
WordPerfect (wpd),文件头:FF575043
Adobe Acrobat (pdf),文件头:255044462D312E
Quicken (qdf),文件头:AC9EBD8F
RAR Archive (rar),文件头:52617221
Wave (wav),文件头:57415645
2.各类型文件的结尾
zip文件的结尾以一串504B0506开始。
rar文件以C43D7B00400700结尾。
JPG文件结尾为FFD9。
PNG文件 结尾为000049454E44AE426082。
Gif文件结尾为3B。
3.关于png图片文件格式介绍
解析:
(固定)八个字节89 50 4E 47 0D 0A 1A 0A为png的文件头
(固定)四个字节00 00 00 0D(即为十进制的13)代表数据块的长度为13
(固定)四个字节49 48 44 52(即为ASCII码的IHDR)是文件头数据块的标示(IDCH)
(可变)13位数据块(IHDR)
前四个字节代表该图片的宽 00 00 03 84
后四个字节代表该图片的高 00 00 00 96
后五个字节依次为:
Bit depth 08、ColorType 06、Compression method 00、Filter method 00、Interlace method 00
(可变)剩余四字节为该png的CRC检验码,由从IDCH到IHDR的十七位字节进行crc计算得到。86 B8 46 36
注:一般的高度修改的图片不会修改IHDR的CRC校验码,在windows下,不会检查CRC校验码,图片能正常显示,但在Linux下,图片查看器会检查图片的CRC校验码,所以可以将图片拖入到Linux中去查看校验。
然后就是PNG数据块。
最后文件尾:AE 42 60 82 图中未展示
4.图片RGBA颜色通道介绍(LSB隐写)
RGB是红绿蓝,但他们的值代表的实际上是亮度。R的数字越大,则代表红色亮度越高;R的数字越小,则代表红色亮度越低。G,B同理。
R的亮度各有256个级别,GB同理。即从0到255,合计为256个。从数字0到255的逐渐增高,我们人眼观察到的就是亮度越来越大,红色、绿色或蓝色越来越亮。
Alpha就是透明度,该通道用256级灰度来记录图像中的透明度信息,定义透明、不透明和半透明区域。alpha的值为0就是全透明,alpha 的值为255 则表示不透明。
4.像素与RGB的理解
每个像素用R,G,B三个分量表示,那么一张图片就像一个矩阵,矩阵的每个单位就是(0~255,0~255,0~255)。
二、思路
1.第一步根据文件头判断文件格式(16进制阅读器打开图片查看即可,可利用010editor或者vs code插件)
2.有时候直接将信息以字符串的形式藏在图片里面(上面的方法或者利用命令strings)
3.将信息藏在图片文件信息中,利用工具exiftool查看,也可使用在线网站查看。
4.图种:一种采用特殊方式将图片文件(如jpg格式)与rar文件结合起来的文件。该文件一般保存为jpg格式,可以正常显示图片(利用binwalk工具分离或foremost或手动)
5.通过修改宽高来对部分信息进行隐藏。可通过爆破未被修改的CRC校验码得到原始宽高(PNG)。如果是图片显示不全,通过修改宽高来查看图片。
6.基于LSB原理的图片隐写,利用工具stegsolve或者zsteg工具。
7.有时候可以试着从上往下删除idat块