Блок ключа |
00h | dword | размер блока | FFFFFFA8h | (-58h) должен быть кратен 4; поскольку блок используемый, то значение должно быть отрицательным; вычисляем последним |
04h | word | ( nk ) - сигнатура | 6B6Eh | |
06h | word | флаг | 2Ch | корневой ключ и юникоды не используем |
08h | qword | время создания | 0 | любое значение (можно из другого ключа) |
10h | dword | не известно | 0 | |
14h | dword | указатель на родителя | FFFFFFFFh | корневой ключ не должен иметь ссылки на родителя |
18h | dword | количество потомков | 0Ah | (см. последний лог; в нем указано 9 найденных ссылающихся потомков, но в индексе указано на одного больше - он потерян, и может быть восстановлен) |
1Ch | dword | неизвестно | 0 | |
20h | dword | указатель на индекс по потомкам | 13428h | находим индекс, который ссылается на потомков (lf, lh, li); проверяем, нет ли для него корневых индексов (ri); если индекс не найден, то его надо создать самим; в данном случае индекс найден по физическому адресу 14428h |
24h | dword | неизвестно | 0 | |
28h | dword | количество параметров | 0 | поскольку, параметры не имееют ссылки на владельца и найти их нет возможности |
2Ch | dword | указатель на индекс по параметрам | FFFFFFFFh | |
30h | dword | указатель на блок защиты | 80h | обычно корневой ключ ссылается на блок защиты следующий непосредственно за ним; в данном случае этот блок защиты отсутствует (см. лог - 1080h); можно использовать любой другой блок защиты |
34h | dword | указатель на имя класса | FFFFFFFFh | аналогично параметрам, к тому же имя класса обычно находится сразу за блоком ключа, и скорее всего удалено |
38h | dword | неизвестно | 0 | |
3Ch | dword | неизвестно | 0 | |
40h | dword | неизвестно | 0 | |
44h | dword | неизвестно | 0 | |
48h | dword | неизвестно | 0 | |
4Ch | word | размер имени ключа | 8 | (имя не в юникоде) |
4Eh | word | размер имени класса | 0 | |
50h | имя ключа | .Default | (поставим это значение, подсмотрев в другой файл ntuser.dat) |