iT邦幫忙

2026 iThome 鐵人賽

DAY 17
0
Security

新手的30天數位鑑識之旅系列 第 17 篇

17|程式真的執行過嗎?Prefetch、ShimCache、AmCache

  • 分享至 

  • xImage
  •  

Prefetch

Prefetch 是 Windows 用來協助改善程式啟動效能的機制。

當 Windows 執行某些程式時,可能會產生對應的 .pf 檔案。

常見位置:

C:\Windows\Prefetch\

例如:

SUSPICIOUS.EXE-12345678.pf

從 Prefetch 可以看到一些與程式執行相關的資訊,例如:

  • 程式名稱

  • 執行相關資訊

  • 執行次數

  • 最後執行時間等資訊

  • 程式執行時使用到的一些檔案


ShimCache

ShimCache 又常被稱為 AppCompatCache,

它和 Windows 的 Application Compatibility 機制有關。

Windows 會使用相關資訊來協助判斷程式的相容性,因此可能留下:

Executable Path
Application Information

等資料。


AmCache

常見位置:

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
                    ↓
             還原事件經過

上一篇
16|Windows Registry:作業系統留下的數位足跡
下一篇
18|使用者做了什麼?LNK、Jump Lists、Shellbags
系列文
新手的30天數位鑑識之旅 共 18 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言