Теперь рассмотрим устройство ветви, содержащей информацию о пользователях. Опять же на примере:
[HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users]
@=hex(00000018):
В поле типа параметра по умолчанию указано количество записей (фактически, это количество пользователей). Далее идут ключи с именами по RID пользователя, например:
[HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\000001F4]
"F"=hex: .....
"V"=hex: .....
У каждого ключа есть по два параметра:
"F"(flags) - по всей видимости содержит флаги (размер всегда 50h)
"V"(value) - соответственно прочие настройки (размер меняется)
Вот значения каких полей удалось распознать:
018: qword таймстамп последней модификации записи (или смены пароля ?) если 0, то надо менять пароль при следующем логоне 030: dword RID пользователя 038: word (?) флаги (при установке в 1) 00: account disabled 03: local account 04: global account 09: password never expired 3 и 4 флаги взаимоисключающие 044: byte (?) у пользователей с правами администратора равен 1 (к чему бы это)
первые 204 (ССh) байт занимает индекс вида 00: dword адрес параметра, относительно начала данных (CCh) 04: dword размер параметра 08: dword дополнительная информация о параметре (обычно количество элементов, например в битовых параметрах) Всего 17 (11h) параметров. Они бывают следующих типов (по порядку): - структура неизвестного содержания (почти) 00: dword неизвестно 04: dword адрес блока 1 08: dword адрес блока 2 0С: dword адрес блока 3 10: dword адрес блока 4 14: данные адреса относительно начала этой структуры второе слово в блоках - это размер текущего блока (по крайней мере в 3-м и 4-м) известно, что в блоке 4 по смещению 50h (0Ch при локальном аккаунте) находится байт (?), содержащий флаги: 02: ??? account locked out (если сброшен в 0) 06: user can't change password (если сброшен в 0) и по смещению 54h (10h при локальном аккаунте) SID, т.о. 6Ch (28h при локальном аккаунте) dword RID. - имя пользователя (username) - полное имя (fullname) - описание (description) - неизвестно (???) - расширенные установки (extended settings) terminal server имеет следующие дополнительные параметры: CtxCfgPresent CtxCfgFlags1 CtxCallback CtxShadow CtxMaxConnectionTime CtxMaxDisconnectionTime CtxMaxIdleTime CtxKeyboardLayout CtxMinEncryptionLevel CtxWorkDirectory CtxNWLogonServer CtxWFHomeDir CtxWFHomeDirDrive CtxWFProfilePath CtxInitialProgram CtxCallbackNumber - домашний каталог (homedir) - буква для мапирования сетевого ресурса (map drive letter) - имя логон-скрипта (logon script name) - путь к профайлу полльзователя (user profile path) - список серверов для коннекта (logon to) - время, разрешенное для регистрации (logon hours bit map) обычно содержит 168 (A8h) бит (по одному на каждый час недели) что точно укладывается в 21 (15h) байт - неизвестно - кодированный пароль LanManager-а (encripted LanManager password) - кодированный пароль WinNT (encripted WinNT password) - предыдущие кодированные пароли WinNT (previous encripted WinNT passwords) - предыдущие кодированные пароли LanManager-а (previous encripted LanManager passwords) С адреса CCh начинаются данные.В этом же разделе присутствует ключ, содержащий список соответствия RID имени пользователя
[HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names]Его подключи имеют название по имени пользователя, а параметр по умолчанию в поле типа параметра содержит RID этого пользователя, например:
[HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names\Administrator] @=hex(000001F4):