魔数简介:
在识别文件类型时,我们很多人都是通过文件的后缀来识别的,如苍老师.mp4, 波老师.avi, 玛利亚.jpg。 使用后缀名识别文件类型不是特别准确,尤其是后缀民可以手动修改的情况下。 另外一种识别文件名的方式是: 利用文件的头部信息中的标记,我们称这个标记为魔数。也许这个解析不是特准确,但它对识别文件类型比较准确。
常见文件类型魔数表:
类别 |
文件类型 |
Magic数 |
起始偏移 |
结束偏移 |
Exe, dll |
Windows可执行文件 |
“MZ” |
0 |
2 |
Linux可执行文件 |
“x7Fx45x4cx46” |
0 |
4 |
|
Java类 |
“xCAxFExBAxBE” |
0 |
4 |
|
文 档 类
|
Office2003, WPS |
“xD0xCFx11xE0xA1xB1x1AxE1” |
0 |
8 |
Office2003, WPS |
“WPS2001” |
2 |
9 |
|
Office2003, WPS |
“x64x6fx63x50x72x6fx70x73” |
30 |
38 |
|
Office2007 |
“_Typesx5dx2exml” |
38 |
49 |
|
mdb |
“x00x01x00x00Standard Jet DB” |
0 |
20 |
|
accdb |
“x00x01x00x00Standard ACE DB” |
0 |
20 |
|
rtf |
“{\rtf” |
0 |
5 |
|
hlp |
“x3Fx5Fx03x00” |
0 |
4 |
|
hlp |
“x4Cx4Ex02x00” |
0 |
4 |
|
chm |
“ITSF” |
0 |
4 |
|
mht |
“From:” |
0 |
5 |
|
reg |
“REGEDIT” |
0 |
7 |
|
reg |
“Windows Registry” |
0 |
16 |
|
reg |
“Rx00ex00gx00ix00sx00tx00rx00y” |
18 |
33 |
|
|
“%PDF-“ |
0 |
5 |
|
eps |
“%!PS-Adobe” |
0 |
10 |
|
Adobe FrameMaker |
“ |
0 |
10 |
|
压 缩 类
|
rar |
“Rar!” |
0 |
4 |
zip |
“PK 03 04” |
0 |
4 |
|
zip |
“PK00PK 03 04” |
0 |
8 |
|
7z |
“7zxBCxAFx27” |
0 |
5 |
|
arj |
“x60xEA” |
0 |
2 |
|
bz2 |
“BZh” |
0 |
3 |
|
gzip |
“ 37213” |
0 |
2 |
|
gzip |
“x1Fx8Bx08x08” |
0 |
4 |
|
tz |
“TZ” |
0 |
2 |
|
compress |
“SZDD” |
0 |
4 |
|
cab |
“MSCF” |
0 |
4 |
|
rpm |
“xEDxABxEExDB” |
0 |
4 |
|
ace |
“x2Ax2Ax41x43x45x2Ax2A” |
7 |
14 |
|
图 片 类
|
bmp |
“BM” |
0 |
2 |
jpeg |
“377330377” |
0 |
3 |
|
jpeg |
“JFIF” |
6 |
10 |
|
jpeg |
“Exif” |
6 |
10 |
|
png |
“x89PNG” |
0 |
4 |
|
gif |
“GIF” |
0 |
3 |
|
swf |
“FWS” |
0 |
3 |
|
swf |
“CWS” |
0 |
3 |
|
flp |
“FLhd” |
0 |
4 |
|
flp |
“flash_project” |
4 |
17 |
|
dwg |
“AC10” |
0 |
4 |
|
tiff |
“MMx00x2B” |
0 |
4 |
|
tiff |
“II*” |
0 |
3 |
|
音 视 频 类 |
rm |
“.RMF” |
0 |
4 |
rm |
“.RMX” |
0 |
4 |
|
rm |
“PROP” |
18 |
22 |
|
flv |
“FLV” |
0 |
3 |
|
avi |
“AVI LIST” |
8 |
16 |
|
wma |
“x30x26xb2x75x8ex66xcfx11” |
0 |
8 |
|
wav |
“WAVEfmt” |
8 |
15 |
|
mp4 |
“ftypmp41” |
4 |
12 |
|
mp4 |
“ftypmp42” |
4 |
12 |
|
mp4 |
“ftypisom” |
4 |
12 |
|
3gp |
“ftyp3gp4 |
4 |
12 |
|
3gp |
“ftypmmp4” |
4 |
12 |
|
mp3 |
“xffxff” |
11 |
1 |
|
mp3 |
“x49x44x33” |
0 |
3 |
|
mtv |
“AMV” |
0 |
3 |
|
m4a |
“ftypM4Ax20” |
4 |
12 |
|
m4a |
“ftypM4Vx20” |
4 |
12 |
|
au |
“dns” |
0 |
3 |
|
au |
“x2Ex73x6Ex64” |
0 |
4 |
|
mdi |
“EP” |
0 |
2 |
|
其他 |
vhd |
“conectix” |
0 |
8 |
gho |
“xFExEFx01” |
0 |
3 |
|
nri |
“x0ENeroISO” |
0 |
8 |
|
pf |
“SCCA” |
4 |
8 |
|
hqx |
“(This file must be converted with BinHex 4.0)” |
0 |
45 |
|
|
Unknow |
|
-1 |
0 |
- 注1: 上述表格中,有的为”xAA” : 指的为十六进制的0xAA, 因为该数为非打印的字符,因此使用十六进制进行表示;还有一部分为“223” : 指的为八进制数223(O), 原因和上述十六进制相同。
- 注2:用字符串来表示的优点有很多:1)方便扩展 2)以字符串常量的方式存储在字符串常量区 3)无论采用哪种方式存储,比较时仍然是二进制形式,所以匹配时和单独使用十六进制是相同的效果。
3. 如何查看一个文件类型的魔数信息
可使用的软件很多,我自己常用的是UltraEdit, 还有notepad++也可以,只不过需要安装个16进制的插件。
例如:
pdf类型:
wps创建的docx类型:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!