一、背景介绍:
在从一个数据包中提取BMP图像数据时,发现其不像JPG文件有开始标志位0xFFD8和结束标志位0xFFD9的机制。但BMP文件以一个名为BITMAPFILEHEADER的结构体开始,该结构体共占用14个字节。其结构如下图所示:
一个BMP文件总是以0x424D开始,也就是BITMAPFILEHEADER中的bfType变量的值。那么可以将bfType变量的地址作为BMP文件的起始地址,提取长度为bfSize的字节数组就可得到该BMP文件的全部数据。用UltraEdit打开一个BMP文件,部分文件结构如下图所示:
我们可以发现紧接着文件类型变量bfType(前两个字节,0x424D),bfSize的值为0x000AFCB6(小端存储方式,较高数据位存放在较低地址位),换算成10进制即为720054,说明该文件大小为720054字节。文件属性如下图所示: