首页/安全/取证与溯源速查/istat 读取单文件四类时间戳
溯源思路与流程68 条

istat 读取单文件四类时间戳

istat 输出指定 inode 的元数据,包括 Modified、Accessed、Changed、Created 四类时间与块映射,是核对单个文件时间语义的常用工具。

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

istat 读单个 inode

istat 是 Sleuth Kit 里读取单个 inode 元数据的工具,输出该 inode 的类型、权限、属主、大小、四类时间戳(修改、访问、元数据变更、创建)以及数据块映射。它解决的是「某个具体文件到底是什么时候变化的」这类问题:先用 fls 或 ifind 拿到 inode 号,再用 istat 看四类时间的完整读数。因为直接工作在镜像上,它不会像挂载分区那样扰动元数据。

基本信息

适用平台Linux/macOS 分析机(Sleuth Kit)
用法istat [-o 分区偏移] [-z 时区] <镜像> <inode 号>
配套命令fls 列出目录项获取 inode,ifind 按文件名或时间反查 inode
输出内容inode 属性、四类时间戳、数据块映射(直接与间接块)
时间显示由 -z 决定渲染时区,建议显式写 UTC
只读特性直接读取镜像,不挂载,不改变元数据

典型使用场景

  • 核对单个文件的四类时间,判断是新建还是被修改
  • 把文件时间与日志事件对齐,确认操作顺序
  • 定位文件的数据块,为后续提取内容做准备
  • 确认文件是否已被删除(inode 状态与链接数)
  • 批量抽样若干关键文件的元数据,形成文件级时间线
  • 复核其他工具(如 fls 输出)给出的时间读数是否一致

查看单个 inode

查看单个 inode
# 先用 fls 找到目标文件的 inode 号
fls -o 2048 -r -m / -z UTC /evidence/disk.dd | grep -F '/etc/passwd'
# 读取该 inode 的完整元数据(时间按 UTC 渲染)
istat -o 2048 -z UTC /evidence/disk.dd 12845 | sed -n '1,12p'
# 按文件名反查 inode,再用 istat 查看
ifind -o 2048 -n /etc/passwd /evidence/disk.dd
# 只看时间相关行
istat -o 2048 -z UTC /evidence/disk.dd 12845 | grep -iE 'modified|accessed|changed|created'
# 部分版本支持直接输出 bodyfile 格式,便于合并进时间线
# istat -o 2048 -z UTC -B /evidence/disk.dd 12845

输出逐项读法

项含义判读要点
inode 号与类型唯一标识与文件类型同一分区内唯一;不同分区会重复出现
mode/uid/gid权限位与属主属组可看出是否可执行、属主是否异常
Modified内容修改时间写入内容才会刷新
Accessed访问时间受挂载选项影响,noatime 下不可靠
Changedinode 元数据变更时间改权限、改名都会刷新,不等同于创建时间
Created创建时间部分文件系统不支持或为 0
数据块映射直接块与间接块列表用于按块提取内容或分析碎片
Created 在部分文件系统上缺失或为 0;Changed 是 inode 元数据变更时间,不等同于创建时间。四类时间要分别理解,不要互相替代。
inode 号在不同分区会重复出现,必须同时带上分区偏移(-o)才是唯一定位。省略偏移可能读到另一分区的同名 inode,结论完全不同。

易错点

  • 省略分区偏移,inode 号在另一分区被解析成完全不同的文件
  • 未指定时区参数,时间读数的渲染基准不明,与其他来源比对时出现偏移
  • 把 Changed 当创建时间,文件「创建于何时」的结论错误
  • 只取一个读数不复核,遗漏工具输出与文件系统实际状态的不一致
  • 在挂载的分区上操作而不是镜像,读元数据的同时扰动状态

数据来源与参考

  • Sleuth Kit man 手册(istat)
  • Sleuth Kit Wiki(MAC time 说明)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌