首页/安全/取证与溯源速查/Prefetch 痕迹解析
Windows 取证55 条

Prefetch 痕迹解析

Prefetch 记录程序执行与加载的文件引用:常驻目录 C:/Windows/Prefetch,按执行时间排序可补全执行史。

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

Prefetch 痕迹解析是什么

Prefetch 记录程序执行与加载过的文件引用,常驻 C:/Windows/Prefetch。它按执行时间补全执行史:即使可执行文件已被删除,痕迹仍可能保留下来,因此在「这台机器上跑过什么」这个问题上价值很高。

基本信息

适用平台Windows 工作站,服务器系统通常默认关闭
关键字段执行次数、首末执行时间、引用文件与目录
位置C:/Windows/Prefetch 下的 .pf 文件
解析工具PECmd(Zimmerman 工具集)

典型使用场景

  • 补全某程序是否被执行、执行过几次
  • 与进程创建事件交叉验证
  • 判断某程序是否为近期首次运行
  • 从引用文件推断程序读取了哪些配置或数据
  • 可执行文件已被删除时,仍能取回执行线索
  • 与执行事件的时间对齐,找出只有 Prefetch 而无日志的执行

解析

解析
PECmd.exe -d C:/Windows/Prefetch --csv out/ --csvf prefetch.csv   # 目录批量
PECmd.exe -f C:/Windows/Prefetch/CMD.EXE-XXXX.pf --json out/       # 单文件
# 输出含执行次数、首次与末次执行时间,以及程序引用的文件与目录列表

字段读法

字段含义注意
执行次数该程序被执行的近似次数有滚动上限,数值偏保守
最后一次执行时间最近一次运行时间与事件日志时间交叉验证
首次执行时间最早记录到的运行时间受滚动覆盖影响
引用文件程序加载过的文件与目录可推断其读取的数据来源
执行次数与首末时间受滚动窗口限制:Windows 7 之后默认只保留一定条数,早期记录会被覆盖,次数按「近似」口径使用。
服务器系统可能关闭该功能,缺失属正常现象。报告里要说明这一点,而不是据此推断程序从未运行过。
对空的 Prefetch 目录做一次完整性检查:该目录被人为清空本身就是值得记录的重要线索。
解析时保留原始文件的副本,便于用不同工具复核结果,也方便后续重新解析。
同一程序在不同用户下会各自产生痕迹,汇总统计时要按用户区分,否则次数会重复计算。
引用文件列表还能提示程序调用过的其他可执行文件,可据此发现执行链上的下一环。

易错点

  • 把执行次数当精确值,忽略滚动覆盖造成的低估
  • 服务器系统关闭该功能,缺失被误读为「未执行」
  • 不与事件日志交叉验证,时间线只有单一来源支撑
  • 已删除程序的 Prefetch 未做保全,被后续执行覆盖

数据来源与参考

  • Zimmerman PECmd 工具文档
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌