无需登录 数据私有 本地保存

文件头签名校验器 - 魔法数字检测

23
0
0
0

文件头签名校验器 — 魔法数字检测

上传文件,读取文件头部字节(魔法数字),识别真实文件类型,不被扩展名欺骗

拖拽文件到此处,或 点击选择文件

支持所有文件类型 · 仅读取文件头部用于检测,文件不会上传到服务器

- -
- - -

-

匹配到的签名信息
文件头部 Hex 视图 (前256字节)
等待文件加载...

高亮 = 匹配到的签名字节(魔法数字)

常见文件签名速查表

以下列出常见文件格式的魔法数字(文件头签名),用于快速识别文件真实类型。

类别格式扩展名魔法数字 (Hex)偏移
图片JPEG.jpg / .jpegFF D8 FF0
图片PNG.png89 50 4E 47 0D 0A 1A 0A0
图片GIF.gif47 49 46 380
图片BMP.bmp42 4D0
图片WebP.webp52 49 46 46 ... 57 45 42 500 / 8
图片ICO.ico00 00 01 000
文档PDF.pdf25 50 44 460
文档DOC/XLS/PPT (OLE2).doc / .xls / .pptD0 CF 11 E0 A1 B1 1A E10
文档DOCX/XLSX/PPTX.docx / .xlsx / .pptx50 4B 03 04 (ZIP)0
文档RTF.rtf7B 5C 72 74 660
压缩ZIP.zip50 4B 03 040
压缩RAR.rar52 61 72 21 1A 070
压缩7-Zip.7z37 7A BC AF 27 1C0
压缩GZIP.gz1F 8B 080
压缩BZ2.bz242 5A 680
压缩XZ.xzFD 37 7A 58 5A 000
音频MP3 (ID3).mp349 44 330
音频WAV.wav52 49 46 46 ... 57 41 56 450 / 8
音频FLAC.flac66 4C 61 430
音频OGG.ogg4F 67 67 530
视频MP4.mp4... 66 74 79 70 (ftyp)4
视频MKV / WebM.mkv / .webm1A 45 DF A30
视频AVI.avi52 49 46 46 ... 41 56 49 200 / 8
可执行EXE / DLL.exe / .dll4D 5A0
可执行ELF.elf / 无7F 45 4C 460
其他PSD.psd38 42 50 530
其他SQLite.db / .sqlite53 51 4C 69 74 650
常见问题与知识点
什么是文件魔法数字(Magic Number)?

文件魔法数字是文件开头的一段特定字节序列,用于标识文件的真实格式。几乎所有主流文件格式都在文件头部包含独特的签名(Signature),操作系统和应用程序通过读取这些字节来判断文件类型,而不仅仅依赖文件扩展名。

例如,PNG图片文件总是以 89 50 4E 47 0D 0A 1A 0A 开头,其中包含"PNG"三个字母的ASCII码(50 4E 47),这是PNG格式的独特标识。

为什么文件扩展名不可靠?

文件扩展名只是一个命名约定,可以被人为随意修改,操作系统并不强制扩展名与文件内容一致。常见场景:

  • 安全威胁:恶意软件可能将.exe可执行文件伪装成.jpg图片,诱导用户点击。
  • 传输错误:从网络下载时,文件扩展名可能被错误设置。
  • 兼容性伪装:某些平台只接受特定扩展名,用户可能手动修改扩展名来绕过限制。

通过检测文件头的魔法数字,可以准确识别文件真实类型,避免被扩展名误导。

为什么DOCX/XLSX/PPTX文件显示为ZIP格式?

这是正常现象。Microsoft Office 2007及之后版本的文档格式(Office Open XML)本质上就是ZIP压缩包。.docx、.xlsx、.pptx 文件内部是多个XML文件通过ZIP算法打包而成的。因此它们的文件头签名与ZIP完全相同(50 4B 03 04)。

同理,Android的.apk安装包、Java的.jar文件也都是ZIP格式的变体。本工具会综合考虑扩展名和签名,给出准确的判断。

文件签名可以被伪造吗?如何识别深度伪造?

文件头签名可以被伪造——攻击者可以在恶意文件开头添加合法签名字节来欺骗检测工具。例如,在一个.exe文件前添加JPEG的FF D8 FF字节,使其看起来像图片。

深度检测方法:

  • 检查文件结构完整性(如JPEG应有正确的段标记、EOF标记)。
  • 验证文件尾部的结束标记(如PNG的IEND块、JPEG的FF D9)。
  • 结合文件大小、MIME类型、扩展名进行多维判断。

本工具提供初步的魔法数字检测,对于安全关键场景,建议结合其他专业工具进行深度分析。

常见的文件签名有哪些类别?

文件签名按格式类别可大致分为:

  • 图片类:JPEG (FF D8 FF)、PNG (89 50 4E 47)、GIF (47 49 46 38)、BMP (42 4D)、WebP (RIFF...WEBP)、ICO (00 00 01 00)
  • 文档类:PDF (25 50 44 46)、OLE2文档 (D0 CF 11 E0)、RTF (7B 5C 72 74 66)
  • 压缩类:ZIP (50 4B 03 04)、RAR (52 61 72 21)、7z (37 7A BC AF)、GZIP (1F 8B 08)
  • 音视频类:MP3 ID3 (49 44 33)、WAV (RIFF...WAVE)、FLAC (66 4C 61 43)、OGG (4F 67 67 53)、MP4 (...ftyp)、MKV (1A 45 DF A3)
  • 可执行类:EXE/DLL (4D 5A)、ELF (7F 45 4C 46)、Mach-O (FE ED FA CE/CF)
如果文件没有扩展名怎么办?

如果文件没有扩展名,无法通过扩展名判断类型。此时魔法数字检测尤为重要——通过读取文件头部字节,可以准确识别文件格式,帮助您确定应该使用什么扩展名。上传无扩展名的文件到本工具,系统会告诉您检测到的真实类型及建议的扩展名。

本工具会读取整个文件吗?文件安全吗?

本工具仅读取文件头部最多4KB的数据用于签名检测和十六进制展示,不会读取整个文件。所有处理均在您的浏览器本地完成,文件不会上传到任何服务器,您的数据完全安全。即使是非常大的文件(数GB),检测过程也几乎是瞬间完成的。

如何理解十六进制(Hex)视图?

Hex视图以十六进制格式展示文件的原始字节数据:

  • 偏移量(Offset):每行最左侧的数字,表示该行第一个字节在文件中的位置(从0开始)。
  • Hex字节:中间部分,每字节以两位十六进制数表示(00-FF),每行通常显示16字节。
  • ASCII表示:右侧部分,尝试将字节解释为可打印字符,不可打印的字符显示为点。

高亮部分即为检测到的魔法数字(文件签名),您可以直观地看到签名在文件中的位置。