-
-
[翻译]Windows预取文件
-
发表于: 2021-6-13 19:23 12749
-
0x0前言
一些名词的意思老是忘,干脆记个笔记。
本人英语水平一般,有错误欢迎指出。
0x1起源
1 2 3 4 5 6 7 8 | / / Flag prefetch handles so they can be skipped. / / Performing IO using a prefetch fileobject could lead to a deadlock. / / 标记预取句柄,以便可以跳过它们,使用预取文件对象执行IO可能会导致死锁。 if (AvIsPrefetchEcpPresent( FltObjects - > Filter , Data )) { SetFlag( streamHandleContext.Flags, AV_FLAG_PREFETCH ); } |
起源是这段代码,看到预取句柄什么鬼没见过,搜一搜没有,倒是搜到了预取文件,
想想这是create irp 里的,打开预取文件获取的句柄不就是预取句柄?
0x2正文
什么是预取文件
对于试图分析系统上运行的应用程序的取证人员来说,预取文件是很好的文件
当应用程序第一次从特定位置运行时,Windows会创建一个预取文件。
这有助于加快应用程序的加载速度.
对于调查人员来说,这些文件包含一些有关用户在计算机上应用程序执行历史的有价值的数据。
为什么预取文件对数字取证调查很重要?
程序执行的证据对调查员来说是一种有价值的资源。
他们可以证明嫌疑人运行了像CCleaner这样的程序,来掩盖潜在的不法行为。
如果程序已经被删除,预取文件可能仍然存在于系统中,以提供执行的证据。
预取文件的另一个有价值的用途是在恶意软件调查中,它可以帮助检查人员确定恶意程序何时运行。
结合一些基本的时间轴,分析调查人员可以识别系统上下载或创建的任何其他恶意文件,以帮助确定事件的根本原因。
调查预取文件时需要找到的关键文件
预取文件都以常见的格式命名,其中列出了应用程序的名称,
然后是运行应用程序的位置的8个字符的散列,. pf扩展名。
例如,calc.exe的预取文件将显示为calc.exe-0fe8f3a9.pf,其中0fe8f3a9是执行文件的路径的哈希值。这些文件都存储在“ROOT/Windows/Prefetch”文件夹下。
根据预取文件中提供的散列计算应用程序的原始路径相对简单
但是可能会很耗时。根据获取文件的Windows版本,将使用不同的哈希函数。
一个功能用于XP/2003,一个用于Vista,一个用于2008/7/8/2012。Forensics Wiki和Hexacorn博客都非常详细地介绍了预取文件,并为调查人员提供了计算原始路径的脚本。
可执行文件的位置可能与任何时间戳数据一样重要。
大多数经验丰富的恶意软件调查人员可以识别已知文件从临时文件夹执行的附加问题
而不是更合法的位置,比如Windows system32文件夹。
虽然文件名中的信息可能非常有价值,预取文件的内容也包含了丰富的信息。
分析预取文件相对简单。除了前面提到的名称和路径之外,预取文件包含应用程序运行次数的详细信息,卷详细信息,以及详细说明应用程序第一次和最后一次运行时间的时间戳信息。对于Windows 8+,预取文件现在包含了最多8个应用程序上一次运行的时间戳,这给调查人员提供了几个额外的时间戳,以帮助建立一个系统上的事件时间表。
使用网络证据查找器(IEF)简化预取文件分析
IEF已经收集和组织了时间戳和包含在预取文件中的其他细节,并以易于阅读的格式报告给调查员
又以下信息:
应用程序原始路径的哈希值
应用程序名称
应用程序运行的次数
应用程序最近8次运行的时间戳(Windows 8)
通过将这些时间戳添加到我们的预取分析中,调查人员可以使用IEF Timeline或log2timeline等工具绘制出嫌疑人在给定时间内在系统上运行的应用程序,或识别任何可能在事故期间运行的恶意可执行程序。
预取文件只是许多Windows操作系统文件之一,这些文件帮助调查人员了解用户在某个特定时间在系统上做什么。应该一起检查所有Windows OS文件,以揭示事件或调查的更大图景。
0x3 原文链接:https://www.magnetforensics.com/blog/forensic-analysis-of-prefetch-files-in-windows/
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
赞赏
- [翻译]Windows预取文件 12750
- [翻译]基于堆栈的文件对象 7156
- [翻译]文件过滤驱动中各种上下文的使用场景 11991
- [翻译] 文件流与流上下文 10891