各类文件的文件头标志


1、从Ultra-edit-32中提取出来的

JPEG (jpg),文件头:FFD8FF

PNG (png),文件头:89504E47

GIF (gif),文件头:47494638

TIFF (tif),文件头:49492A00

Windows Bitmap (bmp),文件头:424D

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

MS Word/Excel (xls.or.doc),文件头:D0CF11E0

MS Access (mdb),文件头:5374616E64617264204A

WordPerfect (wpd),文件头:FF575043

Postscript (eps.or.ps),文件头:252150532D41646F6265

Adobe Acrobat (pdf),文件头:255044462D312E

Quicken (qdf),文件头:AC9EBD8F

Windows Password (pwl),文件头:E3828596

ZIP Archive (zip),文件头:504B0304

RAR Archive (rar),文件头:52617221

Wave (wav),文件头:57415645

AVI (avi),文件头:41564920

Real Audio (ram),文件头:2E7261FD

Real Media (rm),文件头:2E524D46

MPEG (mpg),文件头:000001BA

MPEG (mpg),文件头:000001B3

Quicktime (mov),文件头:6D6F6F76

Windows Media (asf),文件头:3026B2758E66CF11

MIDI (mid),文件头:4D546864

2、从winhex中取出的文件头列表

File Type ExtensionsHeader

JPEG jpg;jpeg 0xFFD8FF

PNG png 0x89504E470D0A1A0A

GIF gif GIF8

TIFF tif;tiff 0x49492A00

TIFF tif;tiff 0x4D4D002A

Bit map bmp BM

AOL ART art 0x4A47040E000000

AOL ART art 0x4A47030E000000

PC Paintbrush pcx 0x0A050108

Graphics Metafile wmf 0xD7CDC69A

Graphics Metafile wmf 0x01000900

Graphics Metafile wmf 0x02000900

Enhanced Metafile emf 0x0100000058000000

Corel Draw cdr CDR

CAD dwg 0x41433130

Adobe Photoshop psd 8BPS

Rich Text Format rtf rtf

XML xml

HTML html;htm;php;php3;php4;phtml;shtml type

Email eml Delivery-date:

Outlook Express dbx 0xCFAD12FE

Outlookpst!BDN

MS Office/OLE2 doc;xls;dot;ppt;xla;ppa;pps;pot;msi;sdw;db 0xD0CF11E0A1B11AE1

MS Access mdb;mda;mde;mdt Standard J

WordPerfect wpd 0xFF575043

OpenOffice Writer sxw writer

OpenOffice Calc sxc calc

OpenOffice Math sxm math

OpenOffice Impress sxi impress

OpenOffice Draw sxd draw

Adobe FrameMaker fm <MAKERFILE

PostScript eps.or.ps;ps;eps %!PS-Adobe

Adobe Acrobat pdf %PDF-1.

Quicken qdf 0xAC9EBD8F

QuickBooks Backup qbb 0x458600000600

Sage sly.or.srt.or.slt;sly;srt;slt 0x53520100

Sage Backup 1 SAGEBACKUP

Lotus WordPro v9 lwp 0x576F726450726F

Lotus 123 v9 123 0x00001A00051004

Lotus 123 v5 wk4 0x00001A0002100400

Lotus 123 v3 wk3 0x00001A0000100400

Lotus 123 v1 wk1 0x2000604060

Windows Password pwl 0xE3828596

ZIP Archive zip;jar 0x504B0304

ZIP Archive (outdated) zip 0x504B3030

RAR Archive rar Rar!

GZ Archive gz;tgz 0x1F8B08

BZIP Archive bz2 BZh

ARJ Archive arj 0x60EA

7-ZIP Archive 7z 7z集'

Wave wav WAVE

AVI avi AVI

Real Audio ram;ra .ra?0

Real Media rm .RMF

MPEG mpg;mpeg 0x000001BA

MPEG mpg;mpeg 0x000001B3

Quicktime mov moov

Windows Media asf 0x3026B2758E66CF11

MIDI mid MThd

Win32 Executable exe;dll;drv;vxd;sys;ocx;vbx MZ

Win16 Executable exe;dll;drv;vxd;sys;ocx;vbx MZ

ELF Executable elf;; 0x7F454C4601010100

各种文件类型文件头标志位详细列表

FFD8FFFE00, .JPEG;.JPE;.JPG, "JPG Graphic File"

FFD8FFE000, .JPEG;.JPE;.JPG, "JPG Graphic File"

474946383961, .gif, "GIF 89A"

474946383761, .gif, "GIF 87A"

424D, .bmp, "Windows Bitmap"

4D5A, .exe;.com;.386;.ax;.acm;.sys;.dll;.drv;.flt;.fon;.ocx;.scr;.lrc;.vxd;

.cpl;.x32, "Executable File"

504B0304, .zip, "Zip Compressed"

3A42617365, .cnt, ""

D0CF11E0A1B11AE1, .doc;.xls;.xlt;.ppt;.apr, "MS Compound Document v1 or Lotus Approach APR file"

0100000058000000, .emf, ""

03000000C466C456, .evt, ""

3F5F0300, .gid;.hlp;.lhp, "Windows Help File"

1F8B08, .gz, "GZ Compressed File"

28546869732066696C65, .hqx, ""

0000010000, .ico, "Icon File"

4C000000011402, .lnk, "Windows Link File"

25504446, .pdf, "Adobe PDF File"

5245474544495434, .reg, ""

7B5C727466, .rtf, "Rich Text Format File"

lh, .lzh, "Lz compression file"

MThd, .mid, ""

0A050108, .pcx, ""

25215053, .eps, "Adobe EPS File"

2112, .ain, "AIN Archive File"

1A02, .arc, "ARC/PKPAK Compressed 1"

1A03, .arc, "ARC/PKPAK Compressed 2"

1A04, .arc, "ARC/PKPAK Compressed 3"

1A08, .arc, "ARC/PKPAK Compressed 4"

1A09, .arc, "ARC/PKPAK Compressed 5"

60EA, .arj, "ARJ Compressed"

41564920, .avi, "Audio Video Interleave (AVI)"

425A68, .bz;.bz2, "Bzip Archive"

49536328, .cab, "Cabinet File"

4C01, .obj, "Compiled Object Module"

303730373037, .tar;.cpio, "CPIO Archive File"

4352555348, .cru;.crush, "CRUSH Archive File"

3ADE68B1, .dcx, "DCX Graphic File"

1F8B, .gz;.tar;.tgz, "Gzip Archive File"

91334846, .hap, "HAP Archive File"

3C68746D6C3E, .htm;.html, "HyperText Markup Language 1"

3C48544D4C3E, .htm;.html, "HyperText Markup Language 2"

3C21444F4354, .htm;.html, "HyperText Markup Language 3"

100, .ico, "ICON File"

5F27A889, .jar, "JAR Archive File"

2D6C68352D, .lha, "LHA Compressed"

20006040600, .wk1;.wks, "Lotus 123 v1 Worksheet"

00001A0007800100, .fm3, "Lotus 123 v3 FMT file"

00001A0000100400, .wk3, "Lotus 123 v3 Worksheet"

20006800200, .fmt, "Lotus 123 v4 FMT file"

00001A0002100400, .wk4, "Lotus 123 v5"

5B7665725D, .ami, "Lotus Ami Pro"

300000041505052, .adx, "Lotus Approach ADX file"

1A0000030000, .nsf;.ntf, "Lotus Notes Database/Template"

4D47582069747064, .ds4, "Micrografix Designer 4"

4D534346, .cab, "Microsoft CAB File Format"

4D546864, .mid, "Midi Audio File"

000001B3, .mpg;.mpeg, "MPEG Movie"

0902060000001000B9045C00, .xls, "MS Excel v2"

0904060000001000F6055C00, .xls, "MS Excel v4"

7FFE340A, .doc, "MS Word"

1234567890FF, .doc, "MS Word 6.0"

31BE000000AB0000, .doc, "MS Word for DOS 6.0"

1A00000300001100, .nsf, "Notes Database"

7E424B00, .psp, "PaintShop Pro Image File"

504B0304, .zip, "PKZIP Compressed"

89504E470D0A, .png, "PNG Image File"

6D646174, .mov, "QuickTime Movie"

6D646174, .qt, "Quicktime Movie File"

52617221, .rar, "RAR Archive File"

2E7261FD, .ra;.ram, "Real Audio File"

EDABEEDB, .rpm, "RPM Archive File"

2E736E64, .au, "SoundMachine Audio File"

53495421, .sit, "Stuffit v1 Archive File"

53747566664974, .sit, "Stuffit v5 Archive File"

1F9D, .z, "TAR Compressed Archive File"

49492A, .tif;.tiff, "TIFF (Intel)"

4D4D2A, .tif;.tiff, "TIFF (Motorola)"

554641, .ufa, "UFA Archive File"

57415645666D74, .wav, "Wave Files"

D7CDC69A, .wmf, "Windows Meta File"

4C000000, .lnk, "Windows Shortcut (Link File)"

504B3030504B0304, .zip, "WINZIP Compressed"

FF575047, .wpg, "WordPerfect Graphics"

FF575043, .wp, "WordPerfect v5 or v6"

3C3F786D6C, .xml, "XML Document"

FFFE3C0052004F004F0054005300540055004200, .xml, "XML Document (ROOTSTUB)"

3C21454E54495459, .dtd, "XML DTD"

5A4F4F20, .zoo, "ZOO Archive File"

通过文件头标识判断图片格式

        最近在做东西的时候遇到了点问题,在加载图片的时候,加载失败,后缀都是jpg格式,但换个图片就可以了,为此,怀疑图片格式有问题,遂拖到UE里面查看它的16进制,果然,两个图片的文件头根本就不一样,这不是欺负人嘛,害我白白浪费了半天的时间,差点要重新编译内核。

然后到网上找了一些资料,查看不同格式图片的文件头是怎样的。下面转帖是不同图片的文件头标志:

图片的格式很多,一个图片文件的后缀名并不能说明这个图片的真正格式什么,那么如何获取图片的格式呢?我想到了几个简单但有效的方法,那就是读取图片文件的文件头标识。我们知道各种格式的图片的文件头标识识不同的,因此我们可以通过判断文件头的标识来识别图片格式。

     我对各种格式的图片文件头标识进行了分析,不仅查找资料,也用十六进制编辑器察看过图片的文件头,以下是我收集、分析的结果,供大家参考。

1.JPEG/JPG

- 文件头标识 (2 bytes): $ff, $d8 (SOI) (JPEG 文件标识)

- 文件结束标识 (2 bytes): $ff, $d9 (EOI)

2.TGA

- 未压缩的前5字节   00 00 02 00 00

- RLE压缩的前5字节   00 00 10 00 00

3.PNG

- 文件头标识 (8 bytes)   89 50 4E 47 0D 0A 1A 0A

4.GIF

- 文件头标识 (6 bytes)   47 49 46 38 39(37) 61

                        G  I  F  8  9 (7)  a

5.BMP

- 文件头标识 (2 bytes)   42 4D

                        B   M

6.PCX

- 文件头标识 (1 bytes)   0A

7.TIFF

- 文件头标识 (2 bytes)   4D 4D 或 49 49

8.ICO

- 文件头标识 (8 bytes)   00 00 01 00 01 00 20 20

9.CUR

- 文件头标识 (8 bytes)   00 00 02 00 01 00 20 20

10.IFF

- 文件头标识 (4 bytes)   46 4F 52 4D

                        F  O  R  M

11.ANI

- 文件头标识 (4 bytes)   52 49 46 46

12、Word/Excel (xls.or.doc)

文件头标识 D0CF11E0 D0CF11E0A1B11AE1

文件结束标识 0100FEFF030A0000

                        R  I  F  F

     根据这些文件头标识的收集,我可以写一个识别图像格式的模块了。但是在写这个模块之前可以对收集到的文件头标识进行优化,使得程序中字符串比对次数尽量的少。

1.JPEG我们知需要比对文件头的$ff, $d8这两个字符,而不用读取最后的两个结束标识了。

2.TGA,ICO,CUR只需比对第三个与第五个字符即可。

3.PNG比对[89][50]这两个字符。

4.GIF比对[47][49][46]与第五个字符。

废话不多说了,利用内存流来判断文件的格式,其实判断文件的前几个字节就可以简单的判断这个文件是什么类型的文件,例如

jpg文件 是 FFD8 (从低位到高位就要反过来 D8FF 下面都是一样)

BMP文件 是 424D ---4D42

其他的我就不一一列举了,想知道跟多文件类型分别是用什么字符作为文件的开头的话,下载个C32asm或者UE等这类16进制编辑器就可以看到了

什么头都没有直接数据的就是ANSI类型,EF BB BF头的就是UTF-8类型,FF FE头的就是UNICODE类型的,FE FF头的就是UNICODE BIG ENDIAN类型的,然后根据类型确定用什么类型的变量保存内容

求助怎么能在winhex中添加新的文件头搜索项

选择按类型恢复,弹出对话框后点击signatures按钮,这时,winhex就会调用excel打开这个winhex安装目录下的File Type Signatures Search这个文件。然后在Description下输入描述比如“图片”,Extensions下输入扩展名,多个扩展名可以以分号隔开。heard下输入文件头的标志,以右斜杠隔开,并一小写x开头(表示十六进制)。逐个输入标志字节,比如图片则输入:\xFF\xD8\。假设图片的标志字节在第四个字节,那么在offset下输入4。

一、 GIF图片基本结构和原理 1、GIF简介   GIF(Graphics Interchange Format)是CompuServe公司开发的图像文件存储格式,1987年开发的GIF文件格式版本号是GIF87a,1989年进行了扩充,扩充后的版本号定义为GIF89a。 GIF图像文件以数据块(block)为单位来存储图像的相关信息。一个GIF文件由表示图形/图像的数据块、数据子块以及显示图形/图像的控制信息块组成,称为GIF数据流(Data Stream)。数据流中的所有控制信息块和数据块都必须在文件(Header)和文件结束块(Trailer)之间。   GIF文件格式采用了LZW(Lempel-Ziv Walch)压缩算法来存储图像数据,定义了允许用户为图像设置背景的透明(transparency)属性。此外,GIF文件格式可在一个文件中存放多幅彩色图形/图像。如果在GIF文件中存放有多幅图,它们可以像演幻灯片那样显示或者像动画那样演示。 2、GIF文件结构 GIF文件结构的典型结构如图1-01所示。为下文说明方便,在图片右边加了编号。 图1-01 数据块可分成3类: 控制块(Control Block),图形描绘块(Graphic-Rendering Block)和专用块(Special Purpose Block)。 (1) 控制块: 控制块包含有用来控制数据流(Data Stream)或者设置硬件参数的信息,其成员包括:GIF文件(Header)逻辑屏幕描述块(Logical Screen Descriptor)图形控制扩展块(Graphic Control Extension)文件结束块(Trailer) (2) 图形描绘块: 包含有用来描绘在显示设备上显示图形的信息和数据,其成员包括:图像描述块(Image Descriptor)无格式文本扩展块(Plain Text Extension)全局调色板、局部调色板、图像压缩数据和图像说明扩充块。 (3) 特殊用途数据块: 包含有与图像处理无关的信息,其成员包括:注释扩展块(Comment Extension)应用扩展块(Application Extension)除了在控制块中的逻辑屏幕描述块(Logical Screen Descriptor)和全局彩色表(Global Color Table)的作用范围是整个数据流(Data Stream)之外, 所有其他控制块仅跟在它们后面的图形描绘块。 3、GIF结构详解 由于GIF结构比较复杂,我们就简单讲解一下GIF的文件吧,因为我们要用到,更多的资料请参看百度文库:http://wenku.baidu.com/view/2c0feaa6f524ccbff121841d.html 。 (1)文件描述块(Header)定义GIF数据流(GIF Data Stream),它的结构如图1-02所示。文件描述块(Header)由GIF标记域(Signature)和版本号(Version)域组成,是一个由6个固定字节组成的数据块,它们用来说明使用的文件格式是GIF格式及当前所用的版本号。GIF标记域(Signature)存放的是“GIF”,版本号域存放的是1987年5月发布的“87a”或者1989年7月发布的“89a”,或者更加新的版本号。 1-02 这里我们识别一个图片是不是GIF文件,就是判断文件的前三个字节是不是GIF,就算是图片呗重命名为jpg或者其他的,只要用浏览器打开,都是可以正常显示的,这也就是为什么有些jpg图片也会动的原因。同理PNG图片的前三个图片是PNG. (2)逻辑屏幕描述块(Logical Screen Descriptor)包含定义图像显示区域的参数,包括背景颜色信息。这个数据块中的坐标相对于虚拟屏幕的左上角,不一定是指显示屏的绝对坐标,这就意味可以参照窗口软件环境下的窗口坐标或者打印机坐标来设计图像显示程序。逻辑屏幕描述块的结构如图1-03所示 1-03 这里我们看到GIF的字段,可以读取GIF图片的实际高度和宽度,到这里就差不多了,其他的大家看百度文库的文档吧,我就不再说了。 二、 GIF分解工具简介   上面给大家讲了那么多的GIF文件的东西,可能大家看的有点不耐烦,目的主要是为了让大家了解GIF的结构,这样才能更好的读懂项目里面的代码。下面来看一段读取GIF文件信息的代码,体会一下: 临时字节集 = gif图片标识 =到文本 ( 取字节集左边 ( 临时字节集, 3) )' 前3个字节,标识"GIF" 版本号 =到文本 ( 取字节集中间 ( 临时字节集, 4, 3) )' 3~6三个字节为版本号( 通常为89a,表示1989年的版本,还有一个版本为87a,为1987年的,具体百度)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值