ハイバネーションファイルのコンバート
ハイバネーションファイルも、Sandman プロジェクトを使えばクラッシュダンプファイルへコンバートできるみたいですが、手元ではうまくいったことがない今日この頃。
Hibinfo.exe で試しているのですが、Error:Failed to open file. になってしまいコンバートが先にすすみません。
ということで、昨年末に試してこけてた気がする、Volatility Framework 1.3ベータに含まれる hibinfo コマンドを実行。
C:\>c:\temp\Volatility-1.3_Beta\volatility hibinfo -f c:\temp \hiberfil.sys -d c:\temp\hiberRAW.bin c:\temp\Volatility-1.3_Beta\forensics\win32\crashdump.py:31: DeprecationWarning: the sha module is deprecated; use the hashlib module instead import sha Signature: SystemTime: Thu Jan 01 00:00:00 1970 Control registers flags CR0: 80010031 CR0[PAGING]: 1 CR3: 0ad40080 CR4: 000006f1 CR4[PSE]: 1 CR4[PAE]: 1 Traceback (most recent call last): File "c:\temp\Volatility-1.3_Beta\volatility", line 219, in <module> main() File "c:\temp\Volatility-1.3_Beta\volatility", line 212, in main modules[argv[1]].execute(argv[1], argv[2:]) File "c:\temp\Volatility-1.3_Beta\vmodules.py", line 62, in execute self.cmd_execute(module, args) File "c:\temp\Volatility-1.3_Beta\vmodules.py", line 1677, in hibinfo (major,minor,build) = hiberAS.get_version() File "c:\temp\Volatility-1.3_Beta\forensics\win32\hiber_addrspace.py", line 45 2, in get_version addr_space = IA32PagedMemoryPae(self,self.CR3) NameError: global name 'IA32PagedMemoryPae' is not defined
これは、PAE 環境に問題があるとかそいうオチ?
ということで?PAEを無効にしてからハイバネーションファイルを作成して実行。
C:\>volatility hibinfo -t nopae -f c:\temp\hiberfil_NOPAE.sys -d c:\temp\NOPAE_hib.bin c:\temp\Volatility-1.3_Beta\forensics\win32\crashdump.py:31: DeprecationWarning: the sha module is deprecated; use the hashlib module instead import sha Signature: SystemTime: Thu Jan 01 00:00:00 1970 Control registers flags CR0: 80010031 CR0[PAGING]: 1 CR3: 12ae0000 CR4: 000006d1 CR4[PSE]: 1 CR4[PAE]: 0 Traceback (most recent call last): File "c:\temp\Volatility-1.3_Beta\volatility", line 219, in <module> main() File "c:\temp\Volatility-1.3_Beta\volatility", line 212, in main modules[argv[1]].execute(argv[1], argv[2:]) File "c:\temp\Volatility-1.3_Beta\vmodules.py", line 62, in execute self.cmd_execute(module, args) File "c:\temp\Volatility-1.3_Beta\vmodules.py", line 1677, in hibinfo (major,minor,build) = hiberAS.get_version() File "c:\temp\Volatility-1.3_Beta\forensics\win32\hiber_addrspace.py", line 46 7, in get_version ['_KGDTENTRY','BaseLow'], NtTibAddr) File "c:\temp\Volatility-1.3_Beta\forensics\object.py", line 206, in read_obj return read_value(addr_space, current_type, vaddr + offset) File "c:\temp\Volatility-1.3_Beta\forensics\object.py", line 71, in read_value buf = addr_space.read(vaddr, type_size) File "c:\temp\Volatility-1.3_Beta\forensics\x86.py", line 124, in read paddr = self.vtop(vaddr) File "c:\temp\Volatility-1.3_Beta\forensics\x86.py", line 109, in vtop if self.entry_present(pgd): File "c:\temp\Volatility-1.3_Beta\forensics\x86.py", line 72, in entry_present if (entry & (0x00000001)) == 0x00000001: TypeError: unsupported operand type(s) for &: 'NoneType' and 'int'
むーん、今度は TypeErrorですか。
PAEを無効化する手順の資料。
Windows Server 2003 Service Pack 1 または Windows XP Service Pack 2 で PAE カーネルの読み込みを防止する方法
http://support.microsoft.com/kb/900524/ja