Prefetch 是 Windows 用來協助改善程式啟動效能的機制。
當 Windows 執行某些程式時,可能會產生對應的 .pf 檔案。
常見位置:
C:\Windows\Prefetch\
例如:
SUSPICIOUS.EXE-12345678.pf
從 Prefetch 可以看到一些與程式執行相關的資訊,例如:
程式名稱
執行相關資訊
執行次數
最後執行時間等資訊
程式執行時使用到的一些檔案
ShimCache 又常被稱為 AppCompatCache,
它和 Windows 的 Application Compatibility 機制有關。
Windows 會使用相關資訊來協助判斷程式的相容性,因此可能留下:
Executable Path
Application Information
等資料。
常見位置:
C:\Windows\AppCompat\Programs\Amcache.hve
它主要與 Windows 的 Application Compatibility 以及程式資訊有關。
其中可能包含:
程式路徑
檔案名稱
檔案大小
File Hash
Publisher
Version
程式相關資訊
這些資訊可以協助我們了解:
這個程式或檔案是否曾經被 Windows 記錄過,以及它本身的一些資訊。
| Artifact | 主要用途 / 線索 |
|---|---|
| Prefetch | 程式執行相關線索、啟動資訊 |
| ShimCache | Application Compatibility 相關資訊 |
| AmCache | 程式、檔案與 Application Compatibility 相關資訊 |
Prefetch
↓
偏向「程式執行」相關線索
ShimCache
↓
偏向「Windows 記錄過程式資訊」相關線索
AmCache
↓
偏向「程式 / 檔案資訊」相關線索
但三者都不能脫離 Windows 版本、系統行為與其他證據來解讀。
這些 Artifacts 也可能包含時間相關資訊,因此可以協助建立 Timeline。
例如:
10:30
suspicious.exe 出現
10:35
相關 Artifact 出現
10:40
Network Connection
10:45
Process 結束
如果不同來源的時間與事件可以互相對應,就能更進一步還原:
程式什麼時候出現、是否有執行相關線索,以及執行後可能發生什麼事情。
但不同 Artifact 的時間欄位有不同的意義,不能看到時間就直接當成「程式執行時間」。
「看到檔案」和「證明程式執行過」是兩件不同的事情。
而 Prefetch、ShimCache、AmCache 都可以提供不同角度的線索。
suspicious.exe
│
┌────────────┼────────────┐
↓ ↓ ↓
Prefetch ShimCache AmCache
│ │ │
└────────────┼────────────┘
↓
Cross-check
↓
Event Timeline
↓
還原事件經過