本發(fā)明屬于數(shù)據(jù)恢復(fù)和計算機取證領(lǐng)域,涉及事實取證中的使用痕跡調(diào)查,尤其涉及一種恢復(fù)并解析Windows操作系統(tǒng)預(yù)讀文件的方法。
背景技術(shù):
計算機取證是包括計算機取證技術(shù)、計算機鑒識、計算機法醫(yī)學(xué)等運用計算機辨析技術(shù),對計算機犯罪行為進行分析以確認所需的計算機證據(jù),并將犯罪者留在計算機中的痕跡作為有效的訴訟證據(jù)提供給法庭,以便對犯罪嫌疑人提起訴訟并據(jù)此將罪犯繩之以法的有效工具。同時,也是針對計算機入侵與犯罪,進行證據(jù)獲取、保存、分析和出示的過程。計算機證據(jù)指在計算機系統(tǒng)運行過程中產(chǎn)生的以其記錄的內(nèi)容來證明案件事實的電磁記錄物,可理解為從計算機上提取證據(jù),即:獲取、保存、分析、出示、提供的證據(jù)。
由于對計算機取證的分類十分復(fù)雜,往往難以按一定的標準進行合理分類。通常情況下根據(jù)取得的證據(jù)的用途不同進行分類,通??梢苑譃閮深惒煌再|(zhì)的取證:一類是來源取證,一類是事實取證。
所謂來源取證,指的是取證的目的主要是確定犯罪嫌疑人或者證據(jù)的來源。例如在網(wǎng)絡(luò)犯罪偵查中,為了確定犯罪嫌疑人,可能需要找到犯罪嫌疑人犯罪時使用的機器的IP地址,則尋找IP地址便是來源取證。
事實取證指的是取證不是查明犯罪嫌疑人,而是取得與案件相關(guān)事實的證據(jù)。在事實取證中常見的取證方法有文件內(nèi)容調(diào)查、使用痕跡調(diào)查、軟件功能分析、軟件相似性分析、日志文件分析、網(wǎng)絡(luò)狀態(tài)分析、網(wǎng)絡(luò)數(shù)據(jù)包分析等。
使用痕跡調(diào)查包括Windows運行的痕跡,包括運行欄歷史記錄、搜索欄歷史記錄、打開/保存文件記錄、臨時文件夾、最近訪問的文件等使用文件與程序調(diào)查、上網(wǎng)記錄的調(diào)查、Office、RealPlay和MediaPlay的播放列表及其它應(yīng)用軟件使用歷史記錄。
在Windows運行的痕跡中,最近訪問的程序調(diào)查痕跡就存儲于預(yù)讀文件中,在預(yù)讀文件中存儲有應(yīng)用程序名稱、應(yīng)用程序存放路徑、應(yīng)用程序最后運行時間、應(yīng)用程序運行次數(shù)等信息。在現(xiàn)有技術(shù)中,雖然涉及到提取和分析預(yù)讀文件的相關(guān)文獻和軟件,但未涉及如何恢復(fù)被刪除的預(yù)讀文件,也未公開解析預(yù)讀文件的具體方法和步驟,同時,也未公開預(yù)讀文件的底層數(shù)據(jù)格式。
技術(shù)實現(xiàn)要素:
本發(fā)明針對現(xiàn)有技術(shù)的不足和上述問題,提出一種恢復(fù)并解析Windows操作系統(tǒng)預(yù)讀文件的方法,通過解析預(yù)讀文件的底層數(shù)據(jù),能夠提取預(yù)讀文件中保存的應(yīng)用程序名稱、應(yīng)用程序存放路徑、應(yīng)用程序最后運行時間、應(yīng)用程序運行次數(shù),解決了現(xiàn)有技術(shù)中不能恢復(fù)預(yù)讀文件、未公開解析預(yù)讀文件的具體方法和步驟以及未公開預(yù)讀文件的底層數(shù)據(jù)格式的問題,所述方法包括以下步驟:
S1:獲取所述Windows操作系統(tǒng)預(yù)讀文件;
S2:解析所述Windows操作系統(tǒng)預(yù)讀文件,包括應(yīng)用程序名稱、應(yīng)用程序存放路徑、應(yīng)用程序最后運行時間、應(yīng)用程序運行次數(shù);
S3:根據(jù)解析結(jié)果,提取所述應(yīng)用程序名稱、所述應(yīng)用程序存放路徑、所述應(yīng)用程序最后運行時間、所述應(yīng)用程序運行次數(shù)。
作為優(yōu)選,所述Windows操作系統(tǒng)預(yù)讀文件后綴為pf且保存在%systemroot%\Prefetch目錄中,所述Windows操作系統(tǒng)預(yù)讀文件為二進制文件,用十六進制編輯器軟件打開后顯示為十六進制文件并用于解析。
作為優(yōu)選,所述步驟S1包括以下步驟:
S101:判斷所述Windows操作系統(tǒng)預(yù)讀文件是否被刪除,如果是,執(zhí)行步驟S102,否則執(zhí)行步驟S2;
S102:以所述Windows操作系統(tǒng)預(yù)讀文件的文件頭為關(guān)鍵字,掃描存儲介質(zhì)空閑區(qū);
S103:判斷是否查找到所匹配的所述文件頭,如果是,執(zhí)行步驟S2,否則執(zhí)行步驟S102;
作為優(yōu)選,所述步驟S2包括以下步驟:
S201:查找并解析所述Windows操作系統(tǒng)預(yù)讀文件的文件頭和文件長度:所述Windows操作系統(tǒng)預(yù)讀文件前8個字節(jié)的內(nèi)容為所述文件頭,所述文件長度以小端格式存儲在地址0x0000000C開始的連續(xù)4個字節(jié)中,所述文件長度是相對于文件起始地址0x00000000的偏移量;
S202:查找并解析所述應(yīng)用程序名稱:所述應(yīng)用程序名稱以Unicode編碼的小端格式存儲在地址0x00000010開始的連續(xù)多個字節(jié)中,且以不少于連續(xù)2個全零字節(jié)作為結(jié)束符;
S203:查找并解析路徑區(qū):所述路徑區(qū)的起始地址以小端格式存儲在地址0x00000064開始的連續(xù)4個字節(jié)中;所述路徑區(qū)的偏移量是相對于所述路徑區(qū)的起始地址的偏移量,以小端格式存儲在地址0x00000068開始的連續(xù)4個字節(jié)中;所述路徑區(qū)的結(jié)束地址以小端格式存儲在地址0x0000006C開始的連續(xù)4個字節(jié)中,所述路徑區(qū)的路徑以Unicode編碼格式存儲;
S204:查找并解析所述應(yīng)用程序存放路徑:以所述路徑區(qū)的結(jié)束地址作為起始位置,向前查找所述應(yīng)用程序名稱,再以所述應(yīng)用程序名稱的起始地址作為起始位置,向前查找第一個路徑隔斷標識,所述路徑隔斷標識后2個字節(jié)的內(nèi)容為路徑標識符,從所述路徑標識符起,向后至所述應(yīng)用程序名稱截止,為所述應(yīng)用程序存放路徑;所述應(yīng)用程序存放路徑以Unicode編碼格式存儲;
S205:查找并解析所述應(yīng)用程序的運行時間:所述應(yīng)用程序的最后運行時間以FILETIME時間格式存儲在地址0x00000080開始的連續(xù)8個字節(jié)中;
S206:查找并解析所述應(yīng)用程序的運行次數(shù):所述應(yīng)用程序的運行次數(shù)以小端格式存儲在地址0x00000098開始的連續(xù)4個字節(jié)中。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:能夠恢復(fù)Windows操作系統(tǒng)預(yù)讀文件,提供了一種解析預(yù)讀文件的具體方法和步驟以及提供了預(yù)讀文件的底層數(shù)據(jù)格式,為計算機取證提供了一種恢復(fù)及調(diào)查使用痕跡的方法。
附圖說明
圖1為本發(fā)明的主流程圖。
圖2為本發(fā)明中獲取Windows操作系統(tǒng)預(yù)讀文件的處理流程圖。
圖3為本發(fā)明中解析Windows操作系統(tǒng)預(yù)讀文件的處理流程圖。
圖4為本發(fā)明中預(yù)讀文件包含的應(yīng)用程序名稱、路徑區(qū)、最后運行時間、運行次數(shù)的數(shù)據(jù)結(jié)構(gòu)圖。
圖5為本發(fā)明中預(yù)讀文件包含的路徑區(qū)起始位置的數(shù)據(jù)結(jié)構(gòu)圖。
圖6為本發(fā)明中預(yù)讀文件包含的路徑區(qū)結(jié)束位置的數(shù)據(jù)結(jié)構(gòu)圖。
圖7為本發(fā)明中預(yù)讀文件包含的應(yīng)用程序存放路徑的數(shù)據(jù)結(jié)構(gòu)圖。
具體實施方式
下面結(jié)合附圖和實施例對本發(fā)明作進一步闡述。
如圖1所示,一種恢復(fù)并解析Windows操作系統(tǒng)預(yù)讀文件的方法,包括以下步驟:
S1:獲取Windows操作系統(tǒng)預(yù)讀文件:Windows操作系統(tǒng)預(yù)讀文件后綴為pf且保存在%systemroot%\Prefetch目錄下,即系統(tǒng)根目錄下的Prefetch文件夾;本實施例中,選用Windows XP操作系統(tǒng)的預(yù)讀文件進行解析,而Windows XP操作系統(tǒng)的系統(tǒng)根目錄是C:\Windows,因此,預(yù)讀文件以二進制方式存儲在C:\Windows\Prefetch路徑下;本實施例中,選用的預(yù)讀文件是WINWORD.EXE-CEA9B574.pf,用十六進制編輯器軟件打開后顯示為十六進制文件并用于解析;
步驟S2包括如圖2所示的以下步驟:
S101:判斷Windows操作系統(tǒng)預(yù)讀文件是否被刪除,如果是,執(zhí)行步驟S102,否則執(zhí)行步驟S2;
S102:以Windows操作系統(tǒng)預(yù)讀文件的文件頭為關(guān)鍵字,掃描存儲介質(zhì)空閑區(qū);該實施例中,由于預(yù)讀文件以二進制方式存儲在C:\Windows\Prefetch路徑下,所以掃描C:\Windows\Prefetch路徑下的空閑區(qū),而Windows操作系統(tǒng)預(yù)讀文件的文件頭均以0x1700000053434341作為標識,所以,以0x1700000053434341為關(guān)鍵字進行查找;
S103:判斷是否查找到所匹配的文件頭0x1700000053434341,如果是,執(zhí)行步驟S2,否則執(zhí)行步驟S102;
S2:解析Windows操作系統(tǒng)預(yù)讀文件,包括應(yīng)用程序名稱、應(yīng)用程序存放路徑、應(yīng)用程序最后運行時間、應(yīng)用程序運行次數(shù),步驟S2包括如圖3所示的以下步驟:
S201:查找并恢復(fù)并解析Windows操作系統(tǒng)預(yù)讀文件的文件頭和文件長度:如圖4所示,該預(yù)讀文件前8個字節(jié)的內(nèi)容0x1700000053434341為文件頭,文件長度以小端格式存儲在地址0x0000000C開始的連續(xù)4個字節(jié)中,該實施例中文件長度為0x58710400,由于是以小端格式存儲,故該文件長度為十六進制數(shù)0x00047158,該文件長度是相對于文件起始地址0x00000000的偏移量;
S202:查找并解析應(yīng)用程序名稱:如圖4所示,應(yīng)用程序名稱以Unicode編碼的小端格式存儲在地址0x00000010開始的連續(xù)多個字節(jié)中,且以不少于連續(xù)2個全零字節(jié)作為結(jié)束符,該實施例中,應(yīng)用程序名稱為0x570049004E0057004F00520044002E00450058004500,即右側(cè)解釋欄所示的WINWORD.EXE;
S203:查找并解析路徑區(qū):如圖4所示,路徑區(qū)的起始地址以小端格式存儲在地址0x00000064開始的連續(xù)4個字節(jié)中,即圖4所示的0x98880300,由于是以小端格式存儲,故該路徑區(qū)的起始地址為十六進制數(shù)0x00038898,如圖5所示,以地址0x00038898開始為該路徑區(qū);
如圖4所示,路徑區(qū)的偏移量是相對于路徑區(qū)的該起始地址的偏移量,以小端格式存儲在地址0x00000068開始的連續(xù)4個字節(jié)中,即圖4所示的0x8CA60000;
如圖4所示,路徑區(qū)的結(jié)束地址以小端格式存儲在地址0x0000006C開始的連續(xù)4個字節(jié)中,路徑區(qū)的路徑以Unicode編碼格式存儲,即圖4所示的0x282F0400,由于是以小端格式存儲,故該路徑區(qū)的結(jié)束地址為十六進制數(shù)0x00042F28,如圖6所示,地址0x00042F28為該路徑區(qū)的結(jié)束地址;
S204:查找并解析應(yīng)用程序存放路徑:如圖7所示,以路徑區(qū)的該結(jié)束地址作為起始位置,向前查找應(yīng)用程序名稱WINWORD.EXE,再以該應(yīng)用程序名稱的起始地址作為起始位置,向前查找第一個路徑隔斷標識0x0000,如圖7中圓角矩形框中的內(nèi)容所示;該路徑隔斷標識后2個字節(jié)的內(nèi)容為路徑標識符0x5C00,從該路徑標識符起,向后至該應(yīng)用程序名稱WINWORD.EXE截止,為該應(yīng)用程序存放路徑,如圖7中直角矩形框中的內(nèi)容所示,該路徑為\DEVICE\HARDDISKVOLUME2\PROGRAM FILES(X86)\MICROSOFT OFFICE\OFFICE12\WINWORD.EXE;該應(yīng)用程序存放路徑以Unicode編碼格式存儲;
S205:查找并解析應(yīng)用程序的運行時間:如圖4所示,應(yīng)用程序的最后運行時間以FILETIME時間格式存儲在地址0x00000080開始的連續(xù)8個字節(jié)中,該實施例中,其內(nèi)容為0x2B7D01F22A88D201,該時間為2017/02/16 16:01:57;
S206:查找并解析應(yīng)用程序的運行次數(shù):如圖4所示,應(yīng)用程序的運行次數(shù)以小端格式存儲在地址0x00000098開始的連續(xù)4個字節(jié)中,該實施例中,其內(nèi)容為0xE8000000,即,該運行次數(shù)為0x000000E8。
S3:根據(jù)解析結(jié)果,提取該應(yīng)用程序名稱、應(yīng)用程序存放路徑、應(yīng)用程序最后運行時間、應(yīng)用程序運行次數(shù)等所需信息。
應(yīng)當理解的是,本發(fā)明不限于上述的舉例,對本領(lǐng)域普通技術(shù)人員來說,可以根據(jù)上述說明加以改進或變換,所有這些改進和變換都應(yīng)屬于本發(fā)明所附權(quán)利要求的保護范圍。