MFT 解析器 — 浏览器端的 NTFS $MFT 分析工具
一款完全在浏览器中运行的 MFT 解析器。拖入一个 NTFS $MFT 文件,即可检查每一条记录 —— 已删除条目、$STANDARD_INFORMATION 与 $FILE_NAME 时间戳、备用数据流、常驻数据 —— 全程零字节上传。底层由 WebAssembly 驱动,解析由 omerbenamram/mft 这一 Rust crate 完成。
关于本 MFT 解析器
MFT 解析器是一种读取 NTFS Master File Table(即每个 NTFS 卷开头的 $MFT 文件)的工具,它将 1,024 字节的记录转换为取证分析师可以操作的形式:文件名、时间戳、父目录、备用数据流、已删除条目以及驻留数据。本站就是这样的解析器之一,在你的浏览器中运行。
将 $MFT 文件拖到上方区域。文件会被读入浏览器内存,由编译为 WebAssembly 的 Rust crate omerbenamram/mft 解析,并以分页可搜索表格的形式呈现。不会上传任何内容——你可以在投放文件前断开网络以验证。下游分析可使用 CSV 导出和分流报告。
它显示什么
- 每条 MFT 记录(已分配或已删除),并暴露 in-use 标志。
- 两套时间戳——$STANDARD_INFORMATION 和 $FILE_NAME——一眼便可发现 时间戳篡改 (timestomping)。
- 附加到每条记录上的备用数据流,包括 Zone.Identifier。
- 小文件的驻留 $DATA 字节——通常是删除后唯一可恢复的版本。
- 通过沿表中的父引用回溯,实现完整路径重建。
与其他 MFT 解析器的比较
在 Windows 分析工作站上, MFTECmd 是标准 CLI,生成 Timeline Explorer 和 KAPE 所期望的 CSV。在 Linux 下做脚本,CLI 和 Rust crate omerbenamram/mft 会输出 JSON Lines。本浏览器解析器填补了第三种场景:零安装,只要有浏览器就能运行,适合快速分流以及证据不能发送到云端服务的情况。完整比较见文章 MFT 解析器对比。
获取要解析的 $MFT
Windows 运行时 $MFT 处于锁定状态。要提取一份副本,可在运行中的系统上使用 fsutil,对物理驱动器使用 FTK Imager,或使用 KAPE 的 MFT 目标进行完整分流采集。逐步说明见 如何从运行中的 Windows 系统提取 $MFT。
取证常见问题
- 什么是 Master File Table?
- Master File Table($MFT)是 NTFS 的元数据索引。卷上的每个文件和目录在 $MFT 中至少有一条 1024 字节的记录,描述其名称、属性、时间戳以及数据在磁盘上的位置。
- MFT 是什么的缩写?
- MFT 是 Master File Table 的缩写。在磁盘上写作 $MFT —— 美元符号是 NTFS 用于元数据文件的命名约定。
- Master File Table 中存储了哪些文件属性?
- 每条记录都包含 $STANDARD_INFORMATION(时间戳、DOS 标志)、$FILE_NAME(名称及第二组时间戳)和 $DATA(文件内容或其簇运行)。记录还可能包含 $ATTRIBUTE_LIST、$OBJECT_ID、$SECURITY_DESCRIPTOR、$INDEX_ROOT、$INDEX_ALLOCATION、$BITMAP、$REPARSE_POINT、$EA 与 $LOGGED_UTILITY_STREAM。
- 如何从 Windows 系统中提取 $MFT?
- $MFT 是每个 NTFS 卷上的第一个文件,在 Windows 运行时通常处于锁定状态。可以使用 FTK Imager、KAPE 等取证工具或 Windows 的「fsutil」命令从活动系统导出副本,也可以直接从磁盘镜像中读取。
- 如何修复损坏的 Master File Table?
- 在采取任何操作之前先对磁盘做镜像。然后对镜像运行 chkdsk /f(速度快,可能丢弃无法读取的记录),或使用能够扫描原始卷上的「FILE」签名并重建记录的恢复工具(速度慢,但保留更多证据)。在做镜像之前,切勿对原始卷运行 chkdsk。
- 此工具会上传我的 $MFT 吗?
- 不会。解析在使用 WebAssembly 的 Web Worker 中进行。文件仅被加载到浏览器内存中,绝不会被传输。如需验证,可断开网络连接。
- 为什么某些记录显示为已删除?
- 每个 MFT 记录都有一个「使用中」标志。当文件被删除时,该标志被清除,但记录会保留在 $MFT 中直到被重新使用。这些已删除的记录通常仍保留可恢复的文件名、时间戳,有时甚至包括常驻数据。
- 能够处理非常大的 $MFT 文件吗?
- 解析在独立的 Web Worker 线程中运行,内存占用随文件大小线性增长。数 GB 大小的 $MFT 在现代浏览器中也能工作,但首次读入内存需要一些时间。