PECmd - Windows Prefetchの解析
Windows Prefetch について
Windows Prefetchは、アプリケーションの起動の高速化のために導入された機能です。 Prefetchファイルには、下記のような情報が含まれています。
- 実行ファイル名(最大29文字)
- アプリケーションの実行回数
- ボリュームパスやボリュームシリアル番号などのボリューム関連情報
- アプリケーションの起動に使用されたファイルとディレクトリ
- アプリケーションが最後に実行された時刻
Prefetchファイルには、上記の情報が含まれているので、 解析することでプログラムの実行痕跡などが得られる可能性があります。
なお、Prefetchファイルは、下記のディレクトリに「~.pf」という拡張子で格納されています。
C:\Windows\Prefetch
PECmd(Prefetchファイルの解析ツール)
Prefetchファイルの解析ツールは、色々とありますが、今回はPECmdというコマンドラインのツールを紹介します。 PECmdは、Prefetchファイルをパースすることで、下記の項目を抽出することができます。
PECmdは、こちら(Eric Zimmerman's tools)のページでダウンロードできます。
※ ただし、Windows 8以下のバージョンでは、Windows 10のPrefetchファイルを解析できないので、注意してください。
使い方
基本
- Prefetchファイルを直接指定する(-f オプション)
PECmd.exe -f "NOTEPAD.EXE-B28CC291.pf"
PECmd.exe -d "C:\Windows\Prefetch"
実行例(Prefetchファイルを直接指定する)
今回は、例として C:\Users\TEST\Desktop\test.txt を notepad.exe で開いたときに生成されたPrefetchファイルを解析してみます。下記が解析結果より、実行時間や参照したファイルなどが確認できます。
C:\Windows\Prefetch>PECmd.exe -f NOTEPAD.EXE-B28CC291.pf PECmd version 1.3.0.0 Author: Eric Zimmerman (saericzimmerman@gmail.com) https://github.com/EricZimmerman/PECmd Command line: -f NOTEPAD.EXE-B28CC291.pf Keywords: temp, tmp Processing 'NOTEPAD.EXE-B28CC291.pf' Created on: 2019-02-24 04:55:17 Modified on: 2019-02-24 04:54:06 Last accessed on: 2019-02-24 05:02:51 Executable name: NOTEPAD.EXE Hash: B28CC291 File size (bytes): 50,472 Version: Windows 10 Run count: 2 Last run: 2019-02-24 04:54:03 Other run times: 2019-02-24 04:11:39 Volume information: #0: Name: \VOLUME{01d4cbf353a8246d-f25451a4} Serial: F25451A4 Created: 2019-02-24 03:45:04 Directories: 17 File references: 103 Directories referenced: 17 00: \VOLUME{01d4cbf353a8246d-f25451a4}\PROGRAMDATA 01: \VOLUME{01d4cbf353a8246d-f25451a4}\PROGRAMDATA\MICROSOFT 02: \VOLUME{01d4cbf353a8246d-f25451a4}\PROGRAMDATA\MICROSOFT\WINDOWS 03: \VOLUME{01d4cbf353a8246d-f25451a4}\PROGRAMDATA\MICROSOFT\WINDOWS\CACHES 04: \VOLUME{01d4cbf353a8246d-f25451a4}\USERS 05: \VOLUME{01d4cbf353a8246d-f25451a4}\USERS\TEST 06: \VOLUME{01d4cbf353a8246d-f25451a4}\USERS\TEST\DESKTOP 07: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS 08: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\FONTS 09: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\GLOBALIZATION 10: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\GLOBALIZATION\SORTING 11: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32 12: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\IME 13: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\IME\IMEJP 14: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\IME\SHARED 15: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\JA-JP 16: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\WINSXS\AMD64_MICROSOFT.WINDOWS.COMMON-CONTROLS_6595B64144CCF1DF_6.0.17763.107_NONE_05B63884071E656E Files referenced: 81 00: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\NTDLL.DLL 01: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\NOTEPAD.EXE 02: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\KERNEL32.DLL 03: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\KERNELBASE.DLL 04: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\LOCALE.NLS 05: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\ADVAPI32.DLL 06: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\MSVCRT.DLL 07: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\SECHOST.DLL 08: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\RPCRT4.DLL 09: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\GDI32.DLL 10: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\GDI32FULL.DLL 11: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\MSVCP_WIN.DLL 12: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\UCRTBASE.DLL 13: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\USER32.DLL 14: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\WIN32U.DLL 15: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\COMBASE.DLL 16: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\BCRYPTPRIMITIVES.DLL 17: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\COMDLG32.DLL 18: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\SHCORE.DLL 19: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\SHLWAPI.DLL 20: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\SHELL32.DLL 21: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\CFGMGR32.DLL 22: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\WINDOWS.STORAGE.DLL 23: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\PROFAPI.DLL 24: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\POWRPROF.DLL 25: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\KERNEL.APPCORE.DLL 26: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\CRYPTSP.DLL 27: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\WINSXS\AMD64_MICROSOFT.WINDOWS.COMMON-CONTROLS_6595B64144CCF1DF_6.0.17763.107_NONE_05B63884071E656E\COMCTL32.DLL 28: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\PROPSYS.DLL 29: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\OLEAUT32.DLL 30: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\WINSPOOL.DRV 31: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\BCRYPT.DLL 32: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\URLMON.DLL 33: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\IPHLPAPI.DLL 34: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\IERTUTIL.DLL 35: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\CRYPTBASE.DLL 36: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\IMM32.DLL 37: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\JA-JP\NOTEPAD.EXE.MUI 38: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\WINDOWSSHELL.MANIFEST 39: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\OLE32.DLL 40: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\RPCSS.DLL 41: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\UXTHEME.DLL 42: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\CLBCATQ.DLL 43: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\MRMCORER.DLL 44: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\MSCTF.DLL 45: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\DWMAPI.DLL 46: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\CRYPT32.DLL 47: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\MSASN1.DLL 48: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\FONTS\STATICCACHE.DAT 49: \VOLUME{01d4cbf353a8246d-f25451a4}\$MFT 50: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\EFSWRT.DLL 51: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\MPR.DLL 52: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\WINTYPES.DLL 53: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\TWINAPI.APPCORE.DLL 54: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\RMCLIENT.DLL 55: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\GLOBALIZATION\SORTING\SORTDEFAULT.NLS 56: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\OLEACC.DLL 57: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\OLEACCRC.DLL 58: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\C_1252.NLS 59: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\TEXTINPUTFRAMEWORK.DLL 60: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\COREUICOMPONENTS.DLL 61: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\COREMESSAGING.DLL 62: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\NTMARTA.DLL 63: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\IME\IMEJP\IMJPTIP.DLL 64: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\VERSION.DLL 65: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\IME\IMEJP\IMJPAPI.DLL 66: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\IME\SHARED\IMJKAPI.DLL 67: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\POLICYMANAGER.DLL 68: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\MSVCP110_WIN.DLL 69: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\IME\IMEJP\IMJPPRED.DLL 70: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\IME\SHARED\IMETIP.DLL 71: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\DUI70.DLL 72: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\IME\SHARED\IMECFM.DLL 73: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\WER.DLL 74: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\JA-JP\MSCTF.DLL.MUI 75: \VOLUME{01d4cbf353a8246d-f25451a4}\USERS\TEST\DESKTOP\TEST.TXT 76: \VOLUME{01d4cbf353a8246d-f25451a4}\PROGRAMDATA\MICROSOFT\WINDOWS\CACHES\CVERSIONS.2.DB 77: \VOLUME{01d4cbf353a8246d-f25451a4}\PROGRAMDATA\MICROSOFT\WINDOWS\CACHES\{6AF0698E-D558-4F6E-9B3C-3716689AF493}.2.VER0X0000000000000001.DB 78: \VOLUME{01d4cbf353a8246d-f25451a4}\PROGRAMDATA\MICROSOFT\WINDOWS\CACHES\{DDF571F2-BE98-426D-8288-1A9A39C3FDA2}.2.VER0X0000000000000001.DB 79: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\JA-JP\PROPSYS.DLL.MUI 80: \VOLUME{01d4cbf353a8246d-f25451a4}\WINDOWS\SYSTEM32\IME\SHARED\IMESEARCHDLL.DLL ---------- Processed 'NOTEPAD.EXE-B28CC291.pf' in 0.02787400 seconds ----------
追加オプション
出力先指定
PECmd.exe -f NOTEPAD.EXE-B28CC291.pf --json "jsonOutput"
PECmd.exe -f NOTEPAD.EXE-B28CC291.pf --json "jsonOutput" --pretty
PECmd.exe -d "C:\Windows\Prefetch" --csv "csvOutput"
PECmd.exe -d "C:\Windows\Prefetch" --html "C:\Users\TEST\Desktop\htmlOutput"
日時表示形式の指定
- 時刻表示を現地時刻にする(--local オプション)
PECmd.exe -f NOTEPAD.EXE-B28CC291.pf --local
- 日時表示形式を変更する(--dt オプション)
- カスタム日時書式指定文字列を指定することができます。
- 形式は、カスタム日時書式指定文字列 | Microsoft Docsを参照してください。
- デフォルトでは、"yyyy-MM-dd HH:mm:ss" が設定されています。
- カスタム日時書式指定文字列を指定することができます。
PECmd.exe -f NOTEPAD.EXE-B28CC291.pf --dt "yyyy/MM/dd HH:mm:ss"
- 時刻表示の精度を上げる(--mp オプション)
- 0.1マイクロ秒まで表示する。
(例:2019-02-24 04:54:03 → 2019-02-24 04:54:03.3462456)
- 0.1マイクロ秒まで表示する。
PECmd.exe -f NOTEPAD.EXE-B28CC291.pf --mp
その他
- 特定のキーワードをハイライトする(-k オプション)
- 指定したキーワードに該当する行が赤字でハイライトされます。
- デフォルトのキーワードとして、tempとtmpが設定されています。
PECmd.exe -f NOTEPAD.EXE-B28CC291.pf -k "USERS"
PECmd.exe -f NOTEPAD.EXE-B28CC291.pf --json "jsonOutput" -q