elite 发表于 2009-12-7 10:20

Prefetch预文件处理

首先什么是Prefetch呢?Windows引入Prefetch的作用是什么呢?
其實prefetch的概念類似Cache,由於 Windows 每次執行程式時,都需要配置並初始化記憶體,然後再從硬碟載入該程式,這個會花掉不少時間,所以 Windows 會將已初始化過的記體映像儲存一份到 C:\Windows\prefetch 資料夾中,以便於下次啟動程式前 (以及開機時) 可以直接將常用程式與開機程式的記憶體映像事先載入記憶體,加快開機與應用程式的啟動速度。當然你也可以透過刪除 C:\Windows\prefetch 資料夾,除了可以減少硬碟使用的空間之外,
還可以解決部份問題。
另外,也可以透過系統機碼 (registry) 來設定 prefetch 的行為:

代碼:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters

在這個機碼下有一個 EnablePrefetcher 的 REG_DWORD 的值,意義如下:
0: 停用 prefetch 功能
1: 將應用程式的記憶體映像事先載入
2: 將開機程式的記憶體映像事先載入
3: 等於 1 + 2 的功能
好了說到現在還是一些基本的東西,那么Prefetch 在計算機取證中有什么貢獻呢?
通過我們對Prefetch Analysis之後,你可以了解到用戶最近開啟過那些程序或行為。Windows XP一共支持128個Prefetch file,每個Prefetch file是以 .pl 結尾的。列如:winrar.exe-087B4001其中是隨機數.如果你用Hex Editor 打開每個Prefetch file你會發現里面以Unicode存在著大量有用的Metadata訊息,如打開某個特定程序共用到哪些.dll或module。但是對於我們來說最主要還是這個程序什么時間開啟過以及共開啟該程序的次數(number of times the application has been run)。而這些訊息在prefetch file中都是存在的。

Location of the .exe
Number of times .exe has ran
Last time .exe run

這里我們要注意的是每個prefetch所提供的訊息并不是正對某個特定用戶的,如果在多用戶系統環境下我們要利用Registry UserAssist key來確定是那個用戶開啟的。(對於Windows Registry Analysis我以後會向大家介紹)。
在真實環境中,通過對prefetch的分析我們發現有人曾經利用cleanup等軟件為自己的行為來掩飾,然後再將cleanup軟件uninstall企圖來cover自己(ie, removed software, emptied their Recycle Bin, etc.)

最後我給大家介紹幾種方法來對prefetch進行解析
第一,
你可以利用ProDiscover ProScript 軟體來對prefetch folder進行自己解析,運行以後自動將每個程序運行的時間和次數清楚的列出。
第二,
如果你有encase的軟件,你可以通過Prefetch Analysis Enscipt來進行prefetch的自動解析。有興趣可以下載來試試哦http://tietjenk.googlepages.com/PrefetchFolderAnalysis.EnScript

第三,可以利用prefetch parser這個小工具幫助你完成分析 here

第四,
當然在沒有任何工具的情況下,你可以通過手動的來分析,這樣比較花時間哦。
页: [1]
查看完整版本: Prefetch预文件处理