General Paul Lee Project
О... Новости Статьи Софт Кнопки Форум Написать
73144998
General Paul Lee Project

Структура реестра II (окончание)

Вот некоторые хитрости, которые необходимо учитывать при работе с реестром.

Обычно в первом же блоке данных первым идет блок содержащий корневой элемент дерева. Для такого элемента значение поля флага равно 2Ch, хотя возможно только установленные 2-й и 3-й биты флага, т.к. 9-й бит флага отвечает за использование unicode в имени ключа (установлен - не используется, сброшен - используется). Значения других битов флага неизвестно.

Если у ключа есть параметр с нулевой длиной имени, то это параметр 'Default' (при экспорте обозначается символом '@').

Если длина значения параметра отрицательная, то значение параметра хранится в самом блоке параметра на месте указателя на значение параметра. Реальный размер значения параметра в таком случае получается путем сброса старшего бита в 0 и обычно не превышает 4 байт.

Указатель на предка ссылается непосредственно на nk-блок.

Указатель на индекс по потомкам может ссылаться либо на lf-блок, либо на ri-блок. Надо проверять при работе.

Если размер блока отрицательный, значит блок используется (надо брать абсолютную величину), если положительный, то это просто выравнивание (свободное место).

Самый распространенный размер hbin-блока 1000h байт (4К). Обычно их размер не превышает F000h, но бывают исключения. Мне попался блок размером 46000h байт (280К). Не стоит упускать это из виду.

ПРИЛОЖЕНИЕ 1


Назад

General Paul Lee Corruption