← 返回博客

MFT 解析器对比:MFTECmd、omerbenamram/mft 与浏览器端解析

· 阅读 2 分钟

MFT 解析器 是这样一种工具:它读取 $MFT —— 也就是每个 NTFS 卷根部的 Master File Table —— 并把其中 1024 字节的记录转换成人类或下游工具可以使用的形式:CSV、JSON、时间线,或可搜索的索引。在实战中真正重要的项目有三个。本文如实地对它们进行比较,并告诉你各自适合在何时上场。

MFTECmd(Eric Zimmerman 出品)

MFTECmd 是事件响应中事实上的标准。它是一个仅 Windows 可用的 .NET CLI,免费使用,能够解析 $MFT$Boot$J($UsnJrnl:$J 变更日志)、$SDS(来自 $Secure 的安全描述符流)以及 $LogFile。输出是 CSV,采用 bodyfile 近似 的布局,可被 Eric Zimmerman 的其他工具(Timeline Explorer、KAPE、RECmd)直接消费。

何时选用:

  • 你正在使用 Windows 分析工作站。
  • 你想要一份能在 Timeline Explorer 里打开、可交互翻看的 CSV。
  • 你在使用 KAPE —— MFTECmd 是 MFT 目标自带的解析器。
  • 你需要在同一工作流中解析 $J

何时跳过: 你在没有 .NET 运行时的 macOS 或 Linux 上,或者你想把解析能力嵌入到另一程序里。

配套的图形界面工具 MFT Explorer 以树形视图交互式浏览 $MFT。大多数分析师两者并用:批量解析用 MFTECmd,需要追查具体某条记录时用 MFT Explorer。

omerbenamram/mft(Rust crate + CLI)

omerbenamram/mft crate 是本站使用的解析器库。它同时以 Rust 依赖(cargo add mft)和独立 CLI(mft_dump)的形式发布。CLI 输出 CSV 或 JSON;库则将完整的记录结构对外暴露,便于程序化使用。

何时选用:

  • 你需要把 MFT 解析能力嵌入到一个更大的 Rust 流水线、服务器或 WebAssembly 目标中。
  • 你想要 JSON 输出,以便管道交给 jq、OpenSearch 或自建数据库。
  • 你在 Linux 或 macOS 上,不想安装 .NET。
  • 你希望解析器是可审计的 —— 代码量小、是地道的 Rust,测试语料就放在仓库里。

何时跳过: 你想要一种「开箱即用」的分析师体验,带 GUI 和一整套时间线工具链。

把这个 crate 编译成 WebAssembly,正是主页上的浏览器解析器背后所运行的东西。

浏览器端解析(本站)

本站的解析器omerbenamram/mft crate 编译为 WebAssembly,放在一个 Web Worker 中运行。你把 $MFT 文件拖到页面上,记录就会以分页、可搜索的表格形式出现。不会上传任何内容;二进制数据只停留在浏览器的内存里。

何时选用:

  • 你想要无需安装就能快速读一下 $MFT
  • 政策禁止把证据发送到云端服务。WebAssembly 解析在本地完成 —— 你可以先断开网络再拖入文件来验证。
  • 你需要与一位没有取证工具链的同事共享一份排查视图。
  • 你在演示或讲授 NTFS 结构,需要一个可交互的沙盒环境。

何时跳过: 你手上是一个频繁使用的服务器导出的多 GB $MFT(内存模型按文件大小线性扩展),或者你需要能接入更广泛的 Eric Zimmerman 工具链的输出。

它们之间的对比

| 维度 | MFTECmd | omerbenamram/mft | 浏览器解析器 | |------|---------|------------------|--------------| | 平台 | Windows(.NET) | Linux / macOS / Windows / WebAssembly | 任何现代浏览器 | | 安装 | 一个二进制文件 | cargo install 或下载发行版 | 无需安装 | | 输出 | CSV(Timeline Explorer 架构) | CSV / JSON | 可交互表格 + CSV 导出 | | $UsnJrnl:$J | 支持 | 不支持(由独立的 omerbenamram/usn crate 处理) | 浏览器解析器链接到 $J 视图 | | $LogFile | 支持 | 不支持 | 不支持 | | 可脚本化 | 仅 CLI | 库 + CLI | 否(界面驱动) | | 隐私 | 本地 | 本地 | 本地(可通过断网验证) |

选哪个

针对一次常规的、在 Windows 工作站上进行的 IR 调查:MFTECmd。这是最不容易出意外的路径,也能无缝接入 KAPE 与 Timeline Explorer。

针对一个会摄取大量磁盘、在 Linux 上运行,或者想要 JSON 的流水线:omerbenamram/mft。CLI 速度很快,而库是把 MFT 解析能力加入自己工具的最干净方式。

针对一次性的排查、不可信网络环境、教学场景,或者一位没有取证机器的同事:本站的浏览器解析器

三者是互补的。大多数经验丰富的检验人员会根据当下场景选择最合适的那一个,而不是死守某一款。

外部资源