首页/安全/取证与溯源速查/bodyfile:TSK 兼容的时间中间格式
溯源思路与流程68 条

bodyfile:TSK 兼容的时间中间格式

bodyfile 是 Sleuth Kit 系工具使用的行式文本格式,每条记录由管道符分隔为 11 个字段,可被 mactime 直接渲染为时间线。

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

bodyfile 时间中间格式

bodyfile 是 Sleuth Kit 系工具使用的行式文本格式,每条记录由管道符分隔为 11 个字段,可被 mactime 直接渲染成时间线。它的价值在于把不同来源的文件时间统一成一种中间格式,便于与其它工具的输出合并;通用性是它的优点,固定的字段顺序则是使用时的硬约束。

基本信息

字段顺序MD5|name|inode|mode|UID|GID|size|atime|mtime|ctime|crtime
时间单位Unix 秒(以 UTC 为基准),部分工具输出毫秒需先换算
生成工具fls -m 等 TSK 工具,也可按格式手工拼接
消费工具mactime 渲染时间线,或导入其它分析脚本
格式约束固定 11 段,字段内容中不能出现管道符

典型使用场景

  • 把文件系统层面的事件并入统一时间线
  • 与日志、执行痕迹按时间对齐后排布事件顺序
  • 批量处理镜像时生成中间格式,便于脚本消费
  • 复核他人时间线时读取其 bodyfile 输入
  • 作为可读的中间产物随分析过程一并归档

生成与消费

生成与消费
fls -o 2048 -r -m '/' /evidence/disk.dd > bodyfile.txt      # 生成 bodyfile
head -3 bodyfile.txt                                        # 确认字段数与分隔符
mactime -b bodyfile.txt -d -z UTC > timeline.csv             # 渲染为时间线
grep -c '|' bodyfile.txt                                     # 粗略检查每行是否具备分隔符
mactime -b bodyfile.txt -d 2026-01-01..2026-01-05 | head     # 只渲染指定日期范围

字段读法

字段含义注意点
MD5文件内容摘要多数工具默认输出 0,表示未计算
name文件完整路径镜像内路径,注意大小写与编码
inode 与 mode节点号与权限模式用于关联节点与判断权限
size文件大小(字节)与镜像中该文件的属性一致
四个时间atime、mtime、ctime、crtimecrtime 为 0 表示该来源不可得
crtime 为 0 表示该文件系统或该工具不提供创建时间,这是正常情况:解读时不要把它当成 1970 年,也不要据此判断文件被篡改,只需在说明里标注该字段不可用。
bodyfile 是中间产物,本身不携带来源信息。生成时要在文件名或伴生说明中记录镜像路径、分区偏移与时区设置,否则多份文件混在一起后,无法回溯每条记录究竟来自哪个证据。

易错点

  • 字段顺序记错,尤其是四个时间的排列,生成的时间线整体错位
  • 把 crtime 的 0 当作真实时间参与排序,出现 1970 年的异常记录
  • 生成时未记录镜像与偏移参数,事后无法复现同一份输入
  • 路径或文件名中含管道符导致字段错位,解析结果异常

数据来源与参考

  • Sleuth Kit(bodyfile 格式说明)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌