通过分析文件头和内容来识别文件格式。上传任何文件以识别其格式、类型和详细信息。
工具功能
- 通过分析文件头和魔术数字来识别文件格式。: 读取文件起始字节(魔数),与签名库比对并校验一致性,准确识别真实格式。
- 支持数百种不同的文件格式和类型。: 覆盖图像、视频、音频、文档、压缩包、可执行文件等类别,并持续更新签名库。
- 以十六进制和ASCII格式显示文件头。: 提供十六进制与 ASCII 双视图,便于技术排查、调试与取证核验。
- 提供详细的文件信息,包括大小和扩展名。: 展示文件名、大小、扩展名、检测到的格式与 MIME 类型,并提示扩展名与签名不一致。
使用方法
- 第一步: 点击"加载文件"从您的计算机选择任何文件。
- 第二步: 工具将分析文件头和内容以确定格式。
- 第三步: 查看有关文件格式、类型和属性的详细信息。
生成原理
魔数和文件签名
文件格式检测依赖于魔数(文件签名)——文件开头的唯一字节序列用于识别其类型。每种文件格式都有特定的魔数:JPEG以FF D8 FF开头、PNG以89 50 4E 47(\x89PNG)开头、GIF以47 49 46 38(GIF8)开头、PDF以25 50 44 46(%PDF)开头、ZIP以50 4B 03 04(PK\x03\x04)开头。该工具读取文件的前512字节并将模式与综合魔数数据库匹配。高级检测分析:文件扩展名一致性(如果扩展名与签名不匹配则警告)、多签名格式(使用特定内部结构ZIP的Office文档)以及嵌入文件检测(包含其他文件的档案)。魔数数据库包括:MIME类型、文件类别(图像、视频、音频、文档、档案、可执行文件)以及详细格式版本(JPEG 2000 vs 标准JPEG、PNG位深度)。
检测算法和头部分析
检测过程使用多阶段分析:二进制文件读取(FileReader API将文件读取为ArrayBuffer)、字节数组转换(Uint8Array用于高效字节操作)、签名匹配(将前N个字节与已知模式比较)以及回退检测(如果头部无法识别则进行内容分析)。头部分析包括:十六进制表示(将字节显示为十六进制以供技术检查)、ASCII解释(显示头部中的可打印字符)、字节序检测(小端vs大端字节顺序)以及结构验证(确保文件结构与声明格式匹配)。高级功能实现:部分文件读取(仅分析大文件头部避免完整上传)、流式检测(逐块处理文件)、置信度评分(模糊格式的百分比匹配)以及扩展名验证(将声明的扩展名与检测到的格式比较并警告不匹配)。该工具处理边缘情况:空文件、截断文件(不完整下载)、格式变体(BMP vs DIB位图)以及加密/压缩容器(检测外部格式同时注意加密内容)。
安全和数据恢复中的应用
文件格式检测在关键角色中服务:安全分析(检测伪装成安全格式的恶意文件、识别带有文档扩展名的可执行文件)、数据恢复(识别未分配磁盘空间中的文件类型、恢复无扩展名的文件)、取证调查(分析未知文件、验证文件完整性)以及内容过滤(阻止特定文件类型、验证上传)。该工具帮助:实现上传验证的开发者(服务器端格式验证)、分析可疑文件的安全研究人员(恶意软件经常伪装文件类型)、管理文件策略的系统管理员(基于内容的过滤超越扩展名检查)以及识别损坏文件的数据恢复专家。常见用例包括:检测双扩展名(file.pdf.exe隐藏可执行文件)、识别多格式文件(利用解析器差异作为多种格式有效)、验证下载完整性(确保文件未损坏)以及逆向工程未知格式(格式分析的起点)。最佳实践:永远不要单独信任文件扩展名(容易重命名)、在服务器端验证魔数(客户端检查可绕过)、维护更新的签名数据库(定期引入新格式)以及结合多种检测方法(扩展名、魔数、内容分析、MIME类型)以实现强大识别。
常见问题
- 我的文件会被上传到服务器吗?
- 不会。所有检测均在浏览器本地完成,文件不会被上传。
- 为什么检测出的格式与扩展名不同?
- 扩展名可以被随意重命名。检测更信任内容的魔数签名,而非扩展名。
- 多格式(Polyglot)文件能准确识别吗?
- 多格式文件可能匹配多个签名。我们给出置信度最高的结果,如有疑问请结合头部详情判断。
- 什么是魔数(文件签名)?
- 位于文件开头的特征字节序列,用于标识格式,如 JPEG 的 FF D8 FF、PNG 的 89 50 4E 47。
- 能用于生产环境的安全校验吗?
- 可以,但应配合服务端校验,并结合 MIME、内容扫描等多重检查。
相关文档
- 文件签名数据库 - 魔数大全 - 全面的文件签名和魔数数据库,用于格式识别
- RFC 6838 - 媒体类型规范 - IETF 媒体类型和 MIME 类型注册规范
- MDN - FileReader API - 浏览器中读取文件内容和二进制数据的 Web API
- Wikipedia - 文件签名列表 - 各种文件格式的签名和魔数详细列表
- TrID - 文件识别工具 - 使用模式匹配进行格式检测的免费文件识别工具