RegistryとTransaction log files
Windows 10 環境で取得した ntuser.dat.LOG1 ファイルのデータ内容を確認します。
ファイルフォーマットについては「Windows registry file format specification」のNew format を参照しています。
ファイルの先頭 512バイトは、Base block となっており、NTUSER.DAT ファイルの一部バックアップとなっています。(部分的には異なる)
Log entries
オフセット512からLog entrieが開始されます。
48 76 4C 45 Signature ⇒ HvLE
00 8E 01 00 Size ⇒ 101,888
00 00 00 00 Flags
9B 01 00 00 Sequence number
00 50 0E 00 Hive bins data size ⇒ 937,984
0D 00 00 00 Dirty pages count ⇒ 13
4E 8D E6 65 CA 45 AE 85 Hash-1
E7 5 DD 9B AE 69 9 EC 79 Hash-2
Dirty pages references
オフセット40から Dirty pages references が Dirty pages count 分(=13)続きます。
00000000 Offset ⇒ 0
00100000 Size ⇒ 4096
00000300 Offset ⇒ 196,608
00100000 Size ⇒ 4096
00600300 Offset ⇒ 221,184
00100000 Size ⇒ 4096
00300600 Offset ⇒ 405,504
00200000 Size ⇒ 8192
00C00600 Offset ⇒ 442,368
00100000 Size ⇒ 4096
00B00700 Offset ⇒ 503,808
00100000 Size ⇒ 4096
00E00700 Offset ⇒ 516,096
00100000 Size ⇒ 4096
00200800 Offset ⇒ 532,480
00100000 Size ⇒ 4096
00600B00 Offset ⇒ 745,472
00100000 Size ⇒ 4096
00000C00 Offset ⇒ 786,432
00100000 Size ⇒ 4096
00A00C00 Offset ⇒ 827,392
00800000 Size ⇒ 32768
00A00D00 Offset ⇒ 892,928
00100000 Size ⇒ 4096
00D00D00 Offset ⇒ 905,216
00400000 Size ⇒ 16,384
Dirty page
例えば、「RegistryとFile format(3)」で参照した UserInitMprLogonScript 値は NTUSER.DAT ファイル内の、Hive Bins Data のオフセット 443,304 にあります。
上記 Dirty pages reference の Offset 値から、オフセット 442,368 のDirty Page内にデータが含まれている事を確認できます。
NTUSER.DAT.LOG1 ファイル内では、Base block 512 + Log entrie 40 + Dirty pages references 104 + 4096 + 4096 + 4096 + 8192 = 21,136 からの 4096 バイトになります。
30 00 00 00 Size ⇒ 48
76 6B Signature ⇒ vk
16 00 Name length ⇒ 22
3C 00 00 00 Data size ⇒ 60
28 33 0E 00 Data offset ⇒ 930,600
01 00 00 00 Data type ⇒ REG_SZ
01 00 Flags
04 00 Spare
55736572496E69744D70724C6F676F6E5363726970746D00 ⇒ UserInitMprLogonScriptm
削除データの復元
yarp: yet another registry parser を利用すると、削除データの復元が可能です。
このツールはトランザクションログにも対応しており、オプション指定により含める・含めないを選択できます。
--deleteオプションを利用した出力結果で、削除された値を確認できました。
---
Key path: Environment
Last written timestamp (UTC): 2017-12-09 05:58:21.726800
Access bits: 2Value name: Path
Value type: REG_EXPAND_SZ
Data size: 102
Data (decoded):
%USERPROFILE%\AppData\Local\Microsoft\WindowsApps;Value name: TEMP
Value type: REG_EXPAND_SZ
Data size: 66
Data (decoded):
%USERPROFILE%\AppData\Local\TempValue name: TMP
Value type: REG_EXPAND_SZ
Data size: 66
Data (decoded):
%USERPROFILE%\AppData\Local\TempValue name: OneDrive
Value type: REG_SZ
Data size: 56
Data (decoded):
C:\Users\forensics\OneDriveAssociated deleted values below (may contain reallocated data):
Value name: UserInitMprLogonScript
Value type: REG_SZ
Data size: 60
Data (decoded):
c:\users\forensics\mrset.bat---
snip
---
Deleted values (all, may contain reallocated data):
Value name: UserInitMprLogonScript
Value type: REG_SZ
Data size: 60
Data (decoded):
c:\users\forensics\mrset.bat
素晴らしい!