PostScripteps.or.ps;ps;eps%!
PS-Adobe
AdobeAcrobatpdf%PDF-1.
Quickenqdf0xAC9EBD8F
QuickBooksBackupqbb0x458600000600
Sagesly.or.srt.or.slt;sly;srt;slt0x53520100
SageBackup1SAGEBACKUP
LotusWordProv9lwp0x576F726450726F
Lotus123v91230x00001A00051004
Lotus123v5wk40x00001A0002100400
Lotus123v3wk30x00001A0000100400
Lotus123v1wk10x2000604060
WindowsPasswordpwl0xE3828596
ZIPArchivezip;jar0x504B0304
ZIPArchive(outdated)zip0x504B3030
RARArchiverarRar!
GZArchivegz;tgz0x1F8B08
BZIPArchivebz2BZh
ARJArchivearj0x60EA
7-ZIPArchive7z7z集'
WavewavWAVE
AVIaviAVI
RealAudioram;ra.ra?
0
RealMediarm.RMF
MPEGmpg;mpeg0x000001BA
MPEGmpg;mpeg0x000001B3
Quicktimemovmoov
WindowsMediaasf0x3026B2758E66CF11
MIDImidMThd
Win32Executableexe;dll;drv;vxd;sys;ocx;vbxMZ
Win16Executableexe;dll;drv;vxd;sys;ocx;vbxMZ
ELFExecutableelf;;0x7F454C4601010100
各种文件类型文件头标志位详细列表
FFD8FFFE00,.JPEG;.JPE;.JPG,"JPGGraphicFile"
FFD8FFE000,.JPEG;.JPE;.JPG,"JPGGraphicFile"
474946383961,.gif,"GIF89A"
474946383761,.gif,"GIF87A"
424D,.bmp,"WindowsBitmap"
4D5A,.exe;.com;.386;.ax;.acm;.sys;.dll;.drv;.flt;.fon;.ocx;.scr;.lrc;.vxd;
.cpl;.x32,"ExecutableFile"
504B0304,.zip,"ZipCompressed"
3A42617365,.cnt,""
D0CF11E0A1B11AE1,.doc;.xls;.xlt;.ppt;.apr,"MSCompoundDocumentv1orLotusApproachAPRfile"
0100000058000000,.emf,""
03000000C466C456,.evt,""
3F5F0300,.gid;.hlp;.lhp,"WindowsHelpFile"
1F8B08,.gz,"GZCompressedFile"
28546869732066696C65,.hqx,""
0000010000,.ico,"IconFile"
4C000000011402,.lnk,"WindowsLinkFile"
25504446,.pdf,"AdobePDFFile"
5245474544495434,.reg,""
7B5C727466,.rtf,"RichTextFormatFile"
lh,.lzh,"Lzcompressionfile"
MThd,.mid,""
0A050108,.pcx,""
25215053,.eps,"AdobeEPSFile"
2112,.ain,"AINArchiveFile"
1A02,.arc,"ARC/PKPAKCompressed1"
1A03,.arc,"ARC/PKPAKCompressed2"
1A04,.arc,"ARC/PKPAKCompressed3"
1A08,.arc,"ARC/PKPAKCompressed4"
1A09,.arc,"ARC/PKPAKCompressed5"
60EA,.arj,"ARJCompressed"
41564920,.avi,"AudioVideoInterleave(AVI)"
425A68,.bz;.bz2,"BzipArchive"
49536328,.cab,"CabinetFile"
4C01,.obj,"CompiledObjectModule"
303730373037,.tar;.cpio,"CPIOArchiveFile"
4352555348,.cru;.crush,"CRUSHArchiveFile"
3ADE68B1,.dcx,"DCXGraphicFile"
1F8B,.gz;.tar;.tgz,"GzipArchiveFile"
91334846,.hap,"HAPArchiveFile"
3C68746D6C3E,.htm;.html,"HyperTextMarkupLanguage1"
3C48544D4C3E,.htm;.html,"HyperTextMarkupLanguage2"
3C21444F4354,.htm;.html,"HyperTextMarkupLanguage3"
100,.ico,"ICONFile"
5F27A889,.jar,"JARArchiveFile"
2D6C68352D,.lha,"LHACompressed"
20006040600,.wk1;.wks,"Lotus123v1Worksheet"
00001A0007800100,.fm3,"Lotus123v3FMTfile"
00001A0000100400,.wk3,"Lotus123v3Worksheet"
20006800200,.fmt,"Lotus123v4FMTfile"
00001A0002100400,.wk4,"Lotus123v5"
5B7665725D,.ami,"LotusAmiPro"
300000041505052,.adx,"LotusApproachADXfile"
1A0000030000,.nsf;.ntf,"LotusNotesDatabase/Template"
4D47582069747064,.ds4,"MicrografixDesigner4"
4D534346,.cab,"MicrosoftCABFileFormat"
4D546864,.mid,"MidiAudioFile"
000001B3,.mpg;.mpeg,"MPEGMovie"
0902060000001000B9045C00,.xls,"MSExcelv2"
0904060000001000F6055C00,.xls,"MSExcelv4"
7FFE340A,.doc,"MSWord"
1234567890FF,.doc,"MSWord6.0"
31BE000000AB0000,.doc,"MSWordforDOS6.0"
1A00000300001100,.nsf,"NotesDatabase"
7E424B00,.psp,"PaintShopProImageFile"
504B0304,.zip,"PKZIPCompressed"
89504E470D0A,.png,"PNGImageFile"
6D646174,.mov,"QuickTimeMovie"
6D646174,.qt,"QuicktimeMovieFile"
52617221,.rar,"RARArchiveFile"
2E7261FD,.ra;.ram,"RealAudioFile"
EDABEEDB,.rpm,"RPMArchiveFile"
2E736E64,.au,"SoundMachineAudioFile"
53495421,.sit,"Stuffitv1ArchiveFile"
53747566664974,.sit,"Stuffitv5ArchiveFile"
1F9D,.z,"TARCompressedArchiveFile"
49492A,.tif;.tiff,"TIFF(Intel)"
4D4D2A,.tif;.tiff,"TIFF(Motorola)"
554641,.ufa,"UFAArchiveFile"
57415645666D74,.wav,"WaveFiles"
D7CDC69A,.wmf,"WindowsMetaFile"
4C000000,.lnk,"WindowsShortcut(LinkFile)"
504B3030504B0304,.zip,"WINZIPCompressed"
FF575047,.wpg,"WordPerfectGraphics"
FF575043,.wp,"WordPerfectv5orv6"
3C3F786D6C,.xml,"XMLDocument"
FFFE3C0052004F004F0054005300540055004200,.xml,"XMLDocument(ROOTSTUB)"
3C21454E54495459,.dtd,"XMLDTD"
5A4F4F20,.zoo,"ZOOArchiveFile"
通过文件头标识判断图片格式
最近在做东西的时候遇到了点问题,在加载图片的时候,加载失败,后缀都是jpg格式,但换个图片就可以了,为此,怀疑图片格式有问题,遂拖到UE里面查看它的16进制,果然,两个图片的文件头根本就不一样,这不是欺负人嘛,害我白白浪费了半天的时间,差点要重新编译内核。
然后到网上找了一些资料,查看不同格式图片的文件头是怎样的。
下面转帖是不同图片的文件头标志:
图片的格式很多,一个图片文件的后缀名并不能说明这个图片的真正格式什么,那么如何获取图片的格式呢?
我想到了几个简单但有效的方法,那就是读取图片文件的文件头标识。
我们知道各种格式的图片的文件头标识识不同的,因此我们可以通过判断文件头的标识来识别图片格式。
我对各种格式的图片文件头标识进行了分析,不仅查找资料,也用十六进制编辑器察看过图片的文件头,以下是我收集、分析的结果,供大家参考。
1.JPEG/JPG
-文件头标识(2bytes):
$ff,$d8(SOI)(JPEG文件标识)
-文件结束标识(2bytes):
$ff,$d9(EOI)
2.TGA
-未压缩的前5字节0000020000
-RLE压缩的前5字节0000100000
3.PNG
-文件头标识(8bytes)89504E470D0A1A0A
4.GIF
-文件头标识(6bytes)4749463839(37)61
GIF89(7)a
5.BMP
-文件头标识(2bytes)424D
BM
6.PCX
-文件头标识(1bytes)0A
7.TIFF
-文件头标识(2bytes)4D4D或4949
8.ICO
-文件头标识(8bytes)0000010001002020
9.CUR
-文件头标识(8bytes)0000020001002020
10.IFF
-文件头标识(4bytes)464F524D
FORM
11.ANI
-文件头标识(4bytes)52494646
12、Word/Excel(xls.or.doc)
文件头标识D0CF11E0D0CF11E0A1B11AE1
文件结束标识0100FEFF030A0000
RIFF
根据这些文件头标识的收集,我可以写一个识别图像格式的模块了。
但是在写这个模块之前可以对收集到的文件头标识进行优化,使得程序中字符串比对次数尽量的少。
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类型,EFBBBF头的就是UTF-8类型,FFFE头的就是UNICODE类型的,FEFF头的就是UNICODEBIGENDIAN类型的,然后根据类型确定用什么类型的变量保存内容
求助怎么能在winhex中添加新的文件头搜索项
选择按类型恢复,弹出对话框后点击signatures按钮,这时,winhex就会调用excel打开这个winhex安装目录下的FileTypeSignaturesSearch这个文件。
然后在Description下输入描述比如“图片”,Extensions下输入扩展名,多个扩展名可以以分号隔开。
heard下输入文件头的标志,以右斜杠隔开,并一小写x开头(表示十六进制)。
逐个输入标志字节,比如图片则输入:
\xFF\xD8\。
假设图片的标志字节在第四个字节,那么在offset下输入4。