首页/安全/取证与溯源速查/$MFT 的 $SI 与 $FN 双时间组
Windows 取证55 条

$MFT 的 $SI 与 $FN 双时间组

NTFS 每个文件在 $MFT 中有两处时间组:$STANDARD_INFORMATION 常随操作更新,$FILE_NAME 在文件名相关变更时更新,两者对照是时间分析的基础。

取证与溯源速查安全更新于 2026-10-13

$SI 与 $FN 双时间组

NTFS 中每个文件在主文件表 $MFT 里有两处时间组:$STANDARD_INFORMATION 属性里的时间会随文件操作更新,$FILE_NAME 属性里的时间只在文件名相关操作时更新。两组时间对照是时间分析的基础,差异的方向与幅度往往比“有没有差异”更有意义。

基本信息

$SI 时间创建、修改、MFT 变更、访问四项,多数文件操作会刷新这里
$FN 时间同为四项,但更新时机更少,通常早于 $SI
典型差异复制、重命名、属性修改都会造成两组时间不一致
解析工具MFTECmd 导出 CSV,或 MFT 解析脚本逐条输出
时间基准FILETIME 格式,解析工具一般按 UTC 呈现

典型使用场景

  • 判断文件是原生的还是被复制、搬移过来的
  • 发现时间戳被改写的迹象,作为篡改检测的切入点
  • 还原文件在某个目录中的存在时段
  • 与日志时间对齐,确定可执行文件的实际落地时刻
  • 识别创建时间晚于修改时间等反常规的时间组合

导出与对比

导出与对比
MFTECmd.exe -f 'C:\case\$MFT' --csv C:\out\mft
Import-Csv C:\out\mft\'$MFT.csv' | Select-Object -First 3 FullPath, 'SI Created', 'FN Created', 'SI Modified', 'FN Modified
Import-Csv C:\out\mft\'$MFT.csv' | Where-Object { $_.'SI Created' -ne $_.'FN Created' } | Select-Object -First 10 FullPath, 'SI Created', 'FN Created

$SI 与 $FN 对照

场景$SI 表现$FN 表现
常规文件写入随操作更新通常保持较早的值
文件创建时与创建时刻一致与 $SI 接近,可有毫秒级差异
重命名或移动一般保持原值可能随文件名变更而刷新
工具改写时间戳被改成目标值多数工具不会同步触碰
两组时间存在差异本身并不等于篡改:复制、改名、归档、杀毒扫描都可能造成差异。判断时看差异的方向与幅度是否与已知操作场景相符,必要时用系统日志或备份副本交叉确认。
只改 $SI 时间是常见工具的能力,$FN 通常不受影响。当 $SI 时间早于 $FN、或创建时间晚于修改时间时,这类反常规组合才值得深挖;同时要排除解析工具版本差异导致字段读错的可能。

易错点

  • 把两组时间存在差异直接判定为篡改,忽略复制与改名等正常操作
  • 用不同精度或时区的两组时间直接排序,时间线整体错位
  • 解析工具版本升级后字段名与列顺序变化,脚本按固定下标取值出错
  • 只看创建时间不看四组时间的组合,漏掉创建晚于修改这类反常信号

数据来源与参考

  • MFTECmd 官方文档(Eric Zimmerman)
  • NTFS 文档(属性定义)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌