Поводом для написания этой статьи послужило тестирование прораммы RegView на реестре WinNT. При просмотре SAM-файлов возникало некоторое замешательство, вызванное нестандартным использованием формата файла реестра. Например, использование поля типа параметра не по прямому назначению. Вот что удалось раскопать...
Начнем с того, что SAM-файл (SAM сокращение от Security Accounts Manager) - это база "учетных записей пользователей, содержащая сведения об уровнях пользовательских привилегий, паролях и т.п.". Само-сабой разумеется, информация в нем хранится секретная :-) да к тому же еще и зашифрованная (я имею ввиду пароли пользователей). По умолчанию ветвь реестра SAM закрыта от просмотра даже для администратора, хотя с полтыка разобраться там действительно невозможно. Ко всему этому прибавим нестандартное использование формата файла реестра и получим полнейшую кашу.
Самый первый параметр попадается на глаза в этом разделе
[HKEY_LOCAL_MACHINE\SAM\SAM]
"C"=hex: .....
Параметр содержит в себе индексированную структуру, содержимое которой для меня остается пока загадкой. Единственное, что можно отметить, это самое первое слово параметра - оно имеет отношение к версии операционной системы, и имеет следующие значения:
3 - WinNT 4.0;
4 - WinNT 4.0 Terminal Edition;
5 - возможно, WinNT 4.5 for Small Business, не проверял;
6 - WinNT 5.0 (2K/XP).
Углубившись еще на два уровня, видим два ключа, содержащие учетные записи:
[HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account]
содержит учетные записи, добавляемые в процессе работы системы и
[HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Builtin]
(от built-in - встроенный), содержит учетные записи встроенные в систему.
Каждый из них имеет по два параметра, которые я оставлю здесь без внимания. Логическая структура их подключей, совершенно идентична, поэтому рассмотрим ее на примере первого ключа.
Итак, перейдя ниже на один уровень, видим три ключа:
[HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Aliases]
содержит информацию о группах (подробней)
[HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users]
содержит информацию о пользователях (подробней)
[HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Groups]
тоже содержит информацию :-)