3 个稳定版本
使用旧 Rust 2015
1.0.2 | 2018年3月25日 |
---|
#1869 in 命令行工具
110KB
324 行
prefetchkit
分析并从 Microsoft Prefetch 文件中提取信息的高级取证命令行工具。
完全支持以下 Prefetch 版本
- Windows XP/2003
- Windows Vista/7
- Windows 8/8.1
部分支持以下 Prefetch 版本
- Windows 10
描述
prefetchkit
是一个命令行工具,用于解析和读取 Microsoft Prefetch 文件。
Prefetch 文件(扩展名为 .pf
或 .PF
)是位于 C:\WINDOWS\Prefetch\
的 Windows 系统文件。它们帮助 Windows 加载可执行文件更快。
prefetchkit
是一个 取证工具:它提取诸如最后运行的可执行文件、该可执行文件运行了多少次等信息。
使用 metrics
选项,您可以查看在加载或可执行文件过程中加载的文件。例如,如果用户在特定图片上启动了 Paint,该图片的路径将被存储在 Prefetch 文件中。
prefetchkit
使用 libprefetch
库解析和读取 Prefetch 文件。
安装
使用 cargo
cargo intall prefetchkit
功能
--帮助
:
Prefetchkit 1.0.0
A powerful command-line tool for analysing Microsoft Prefetch Files
USAGE:
prefetchkit [FLAGS] [OPTIONS] <TARGET>
FLAGS:
--color Put some colors, it never hurts
-h, --help Prints help information
-m, --metrics Print metrics (loaded DLL etc)
-r, --reverse Reverse order
--version Prints version information
-v, --verbose Display more information
-V, --volumes Print volumes
OPTIONS:
--sort <sort> Specify sort (if TARGET is a directory)
EXEC: by execution counter
TIME: by last execution time
NAME: by name [possible values: EXEC, TIME, NAME]
ARGS:
<TARGET> Target to analyze (pf files or directory containing pf files)
prefetchkit
接受一个位置参数,可以是特定的 Prefetch 文件或包含 Prefetch 文件的目录。
示例
$ prefetchkit MSPAINT.EXE-11CBB631.pf # a specific file
$ prefetchkit xpmount/WINDOWS/Prefetch/ # The Windows Prefetch directory
基础
如果您在没有标志和选项的情况下运行 prefetchkit
,您将得到一个包含可执行文件名称、最后执行时间和执行计数器的表格。
$ prefetchkit MSPAINT.EXE-11CBB631.pf
Executable name Last execution time Execution counter
MSPAINT.EXE 2011-03-22 21:44:39 2
在目录上,您可以使用 --sort=<VALUE>
选项进行排序:
EXEC
- 执行计数器TIME
- 最后执行时间NAME
- 名称
此外,还有 -r
用于反转排序。
指标
指标是 Prefetch 文件的一个特殊部分,它指示与可执行文件一起加载的每个 DLL、DAT(和其他)文件。根据 Windows 版本的不同,您还可以获得诸如平均加载时间等额外信息。
要显示指标,请使用标志 -m
$ prefetchkit UPDATE.EXE-0CB058D8.pf -m
Executable name Last execution time Execution counter
UPDATE.EXE 2011-03-13 11:09:24 2
└─Metrics:
├─\DEVICE\HARDDISKVOLUME1\WINDOWS\SYSTEM32\NTDLL.DLL
├─\DEVICE\HARDDISKVOLUME1\WINDOWS\SYSTEM32\KERNEL32.DLL
├─\DEVICE\HARDDISKVOLUME1\WINDOWS\SYSTEM32\UNICODE.NLS
├─\DEVICE\HARDDISKVOLUME1\WINDOWS\SYSTEM32\LOCALE.NLS
├─\DEVICE\HARDDISKVOLUME1\WINDOWS\SYSTEM32\SORTTBLS.NLS
├─\DEVICE\HARDDISKVOLUME1\WINDOWS\SOFTWAREDISTRIBUTION\DOWNLOAD\38F47E51C38A7A0EBC9C39DCA1EDD5A6\UPDATE\UPDATE.EXE
├─\DEVICE\HARDDISKVOLUME1\WINDOWS\SYSTEM32\ADVAPI32.DLL
├─\DEVICE\HARDDISKVOLUME1\WINDOWS\SYSTEM32\RPCRT4.DLL
├─\DEVICE\HARDDISKVOLUME1\WINDOWS\SYSTEM32\COMCTL32.DLL
├─\DEVICE\HARDDISKVOLUME1\WINDOWS\SYSTEM32\GDI32.DLL
├─\DEVICE\HARDDISKVOLUME1\WINDOWS\SYSTEM32\USER32.DLL
├─\DEVICE\HARDDISKVOLUME1\WINDOWS\SYSTEM32\CRYPT32.DLL
├─\DEVICE\HARDDISKVOLUME1\WINDOWS\SYSTEM32\MSVCRT.DLL
├─\DEVICE\HARDDISKVOLUME1\WINDOWS\SYSTEM32\MSASN1.DLL
├─\DEVICE\HARDDISKVOLUME1\WINDOWS\SYSTEM32\IMAGEHLP.DLL
....
使用详细模式标志(-
),您将获得额外的信息
$ prefetechkit UPDATE.EXE-0CB058D8.pf -mv
Executable name Last execution time Execution counter
UPDATE.EXE 2011-03-13 11:09:24 2
└─Metrics:
├─\DEVICE\HARDDISKVOLUME1\WINDOWS\SYSTEM32\NTDLL.DLL
│ └─ start time: 0s duration: 50s average duration: ✘ MFT entry index: ✘
│
├─\DEVICE\HARDDISKVOLUME1\WINDOWS\SYSTEM32\KERNEL32.DLL
│ └─ start time: 50s duration: 52s average duration: ✘ MFT entry index: ✘
│
├─\DEVICE\HARDDISKVOLUME1\WINDOWS\SYSTEM32\UNICODE.NLS
│ └─ start time: 102s duration: 5s average duration: ✘ MFT entry index: ✘
│
├─\DEVICE\HARDDISKVOLUME1\WINDOWS\SYSTEM32\LOCALE.NLS
│ └─ start time: 107s duration: 3s average duration: ✘ MFT entry index: ✘
│
├─\DEVICE\HARDDISKVOLUME1\WINDOWS\SYSTEM32\SORTTBLS.NLS
│ └─ start time: 110s duration: 4s average duration: ✘ MFT entry index: ✘
│
├─\DEVICE\HARDDISKVOLUME1\WINDOWS\SOFTWAREDISTRIBUTION\DOWNLOAD\38F47E51C38A7A0EBC9C39DCA1EDD5A6\UPDATE\UPDATE.EXE
│ └─ start time: 114s duration: 57s average duration: ✘ MFT entry index: ✘
....
卷
当您启动一个可执行文件时,它会使用一个或多个卷上的文件。这类信息存储在预取文件中。即使可执行文件存储在外部卷上,也会创建一个预取文件。
从取证的角度来看,这可能非常有用:您可以确定USB闪存盘是否被用于Paint、Chrome或其他软件,或者特殊软件位于外部硬盘上。
对于卷,使用卷标志:-
$ prefetchkit UPDATE.EXE-0CB058D8.pf -V
Executable name Last execution time Execution counter
UPDATE.EXE 2011-03-13 11:09:24 2
└─Volumes:
└─\DEVICE\HARDDISKVOLUME1
再次使用详细模式标志-
,您将获得额外的信息,例如可执行文件使用的每个目录
$ prefetchkit UPDATE.EXE-0CB058D8.pf -Vv
Executable name Last execution time Execution counter
UPDATE.EXE 2011-03-13 11:09:24 2
└─Volumes:
└─\DEVICE\HARDDISKVOLUME1
├─Creation time: 2009-03-04 10:23:57 Serial: 0x1054BA98
└─Directories:
├─\DEVICE\HARDDISKVOLUME1\
├─\DEVICE\HARDDISKVOLUME1\WINDOWS\
├─\DEVICE\HARDDISKVOLUME1\WINDOWS\INF\
├─\DEVICE\HARDDISKVOLUME1\WINDOWS\SOFTWAREDISTRIBUTION\
├─\DEVICE\HARDDISKVOLUME1\WINDOWS\SOFTWAREDISTRIBUTION\DOWNLOAD\
├─\DEVICE\HARDDISKVOLUME1\WINDOWS\SOFTWAREDISTRIBUTION\DOWNLOAD\38F47E51C38A7A0EBC9C39DCA1EDD5A6\
├─\DEVICE\HARDDISKVOLUME1\WINDOWS\SOFTWAREDISTRIBUTION\DOWNLOAD\38F47E51C38A7A0EBC9C39DCA1EDD5A6\UPDATE\
├─\DEVICE\HARDDISKVOLUME1\WINDOWS\SYSTEM32\
├─\DEVICE\HARDDISKVOLUME1\WINDOWS\SYSTEM32\CATROOT\
├─\DEVICE\HARDDISKVOLUME1\WINDOWS\SYSTEM32\CATROOT\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\
├─\DEVICE\HARDDISKVOLUME1\WINDOWS\WINSXS\
└─\DEVICE\HARDDISKVOLUME1\WINDOWS\WINSXS\X86_MICROSOFT.WINDOWS.COMMON-CONTROLS_6595B64144CCF1DF_6.0.2600.2180_X-WW_A84F1FF9\
版本
版本说明在RELEASES.md中提供。
兼容性
ole
似乎对Rust 1.9及更高版本有效。
许可证
依赖项
~2.5MB
~26K SLoC