杂项总结

misc之图片总结
一、基础知识
1.各类型文件的文件头

PNG
(png) 89 50 4E 47 AE 42 60 82
JPEG
(jpg) FF D8 FF E1 FF D9
GIF
(gif) 47 49 46 38 00 3B
ZIP
(zip) 504B0304 50 4B

TIFF (tif),文件头:49 49 2A 00

Windows Bitmap (bmp),文件头:42 4D C0 01

CAD (dwg),文件头:41 43 31 30

Adobe Photoshop (psd),文件头:38 42 50 53

Rich Text Format (rtf),文件头:7B 5C 72 74 66

XML (xml),文件头:3C 3F 78 6D 6C

HTML (html),文件头:68 74 6D 6C 3E

Email [thorough only] (eml),文件头:44 65 6C 69 76 65 72 79 2D 64 61 74 65 3A

Outlook Express (dbx),文件头:CF AD 12 FE C5 FD 74 6F

Outlook (pst),文件头:21 42 44 4E

**旧版office **MS Word/Excel (xls.or.doc or.ppt),文件头:D0 CF 11 E0

MS Access (mdb),文件头:53 74 61 6E 64 61 72 64 20 4A

WordPerfect (wpd),文件头:FF 57 50 43

Adobe Acrobat (pdf),文件头:25 50 44 46 2D 31 2E

Quicken (qdf),文件头:AC 9E BD 8F

RAR Archive (rar),文件头:52 61 72 21

Wave (wav),文件头:57 41 56 45

2.各类型文件的结尾
zip文件的结尾以一串50 4B 05 06开始。

rar文件以C4 3D 7B 00 40 07 00结尾。

JPG文件结尾为FF D9。

PNG文件 结尾为00 00 49 45 4E 44 AE 42 60 82。

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三个分量表示,那么一张图片就像一个矩阵,矩阵的每个单位就是(0255,0255,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块

posted @   果粒就要果粒多  阅读(26)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示