当前位置:六中手游网 > 游戏知识 > 后缀pf是什么文件(.pf属于什么文件类型,有哪些用处)

后缀pf是什么文件(.pf属于什么文件类型,有哪些用处)

#一、简介

Prefetch预读取文件,简称pf文件,是从Windows XP开始引入,作用是加速系统和应用程序启动过程。pf文件包含了可执行文件的名称、路径、调用DLL文件的列表、上次执行时间、运行次数等信息。简单来说,就相当于缓存。在Windows 7中可以记录128个条目,Windows 8/10可记录1024个条目。

#二、文件分析

pf文件存储在%SystemRoot%\Prefetch文件夹中。

后缀pf是什么文件(.pf属于什么文件类型,有哪些用处)  第1张

Pf文件的名称由“大写字母的应用程序名、-、大写的8位十六进制哈希值、.pf扩展名”组成。

当用户首次运行某个应用程序的时候,Windows操作系统的Windows Cache Manager程序会跟踪记录应用程序启动过程中所需的代码和数据(主要是DLL),然后由一个名为NTKRNLPA.exe的核心进程将在内存中跟踪的数据以pf文件的形式保存下来。当用户下一次运行相同程序时候,系统会首先读取pf文件将必要的数据和代码加载到内存中,以加快程序的启动过程。

通过WinHex打开一个pf文件观察其组成结构:(这里以Windows 7中的pf文件举例)

后缀pf是什么文件(.pf属于什么文件类型,有哪些用处)  第2张

偏移位置:00H:17 00 00 00:pf文件格式的版本

偏移位置:04H:53 43 43 41:签名SCCA

偏移位置:08H:11 00 00 00:未知

偏移位置:0CH:C6 4D 01 00:pf文件长度

偏移位置:10H:43 00 48 00 52 00 4F 00 4D 00 45 00 2E 00 45 00 58 00 45 00 00:应用程序的名称,这里是CHROME.EXE

偏移位置:4CH:BA B1 99 D9:pf文件的哈希值,与应用程序名称一起组成了pf文件名

偏移位置:80H:D2 38 72 D9 E0 6B D7 01:应用程序最后一次运行的时间

偏移位置:98H:0B 00 00 00:应用程序运行次数

在不同的系统版本中,pf文件的版本有所不同,在Windows xp/2003中版本是17(0x11),Windows 7是23(0x17),Windows 8 是26(0x1a),Windows 10的版本是30(0x1e)。

pf文件信息的格式也因为pf版本不同而有所不同:如在xp系统中pf文件信息中记录应用程序最后一次运行的时间的偏移位置是78H,记录程序运行次数的偏移位置是90H。

如果是Windows 10的pf文件则是经过压缩的(Microsoft XPRESS Huffman(LZXPRESS)压缩算法),文件结构信息如下:

后缀pf是什么文件(.pf属于什么文件类型,有哪些用处)  第3张

开头的4D 41 4D 04是MAM签名,然后是EE 65 04 00是压缩pf文件的总长度。

#三、Prefetch取证实战

描述:公司的SIEM系统识别到公司某些主机上一个名为Scvhost.exe的可疑文件。我们确认Scvhost.exe是否已经在主机上运行过,运行的时间及如何被删除的。

找出可疑文件的最后执行时间和执行次数。

提供的附件:

后缀pf是什么文件(.pf属于什么文件类型,有哪些用处)  第4张

通过使用pf解析工具PECmd(
https://github.com/EricZimmerman/PECmd)对pf文件进行分析。

后缀pf是什么文件(.pf属于什么文件类型,有哪些用处)  第5张后缀pf是什么文件(.pf属于什么文件类型,有哪些用处)  第6张

根据pf文件解析的结果进行分析,可以得出该文件最后执行的时间是2020-02-07 21:26,总共运行的次数是4次。

根据程序执行的时间线分析:

后缀pf是什么文件(.pf属于什么文件类型,有哪些用处)  第7张

可能是通过微软Sysinternals的sdelete.exe工具进行删除的。

#参考文章:

[Windows Prefetch File Format - Forensics Wiki](https://forensicswiki.xyz/wiki/index.php?title=Windows_Prefetch_File_Format

Compression - Forensics Wiki:https://forensicswiki.xyz/wiki/index.php?title=Compression