Тонкости реестра Windows Vista. Трюки и эффекты
Шрифт:
Аналогично предыдущей, запуск программ из этой ветви также можно запретить. Для этого используются REG_DWORD-параметры DisableCurrentUserRunOnce и DisableLocalMachineRunOnce. Первый из них запрещает рассматриваемую ветвь из корневого раздела HKEY_CURRENT_USER, а второй – из корневого раздела HKEY_LOCAL_MACHINE.
Ветвь HKEY_KEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnceEx отличается от предыдущей лишь более широкими возможностями. Например, в ней можно указать последовательность, в которой будут загружаться программы.
Использование групповых политик
Ветвь реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run определяет
Ветвь HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\scripts\Startup предназначена для запуска программ и сценариев с правами системы при входе пользователя. В этой ветви могут содержаться подразделы, имеющие названия в формате 1, 2, 3, 4, 5 и т. д. В каждом из этих подразделов должны содержаться подразделы, имеющие такой же формат названия (1, 2, 3, 4 и т. д.). В данных подразделах, кроме других, могут находиться два строковых параметра – Script и Parameters. Первый параметр определяет путь к программе, которая будет запускаться, а второй задает список параметров для запуска этой программы. Эту ветвь реестра использует GPO [1] .
1
Group Policy Object (Объекты групповых политик) – набор настроек операционной системы Windows, которые может изменять только пользователь с правами администратора.
Ветвь реестра HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\System\Scripts\Logon подобна предыдущей, но программы, запускаемые с ее помощью, имеют права пользователя.
Запуск native-программ
Ветвь реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager включает в себя параметр BootExecute, имеющий тип REG_MULTI_SZ. Данный параметр должен содержать названия лишь специальных программ, называемых native-программами. Они работают только с функциями Native API, большинство из которых описано в библиотеке ntldr.dll. Такие функции позволяют работать с файловой системой компьютера и жестким диском, однако не могут использовать графическую подсистему Windows. Что, в общем-то, не удивительно, ведь эти программы работают на этапе запуска компьютера, на котором операционная система еще не загружена.
Известные библиотеки
Ветвь HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs содержит список известных операционной системе библиотек (в виде параметров строкового типа, значение которых определяет название библиотеки). Известные операционной системе библиотеки всегда проецируются в оперативную память (не выгружаются в файл подкачки), и их запрещено замещать локальными библиотеками, имеющими те же названия, но расположенными в папке запускаемой программы.
В данной ветви реестра также находится параметр расширенного строкового типа DllDirectory. Он задает путь к каталогу, в котором хранятся библиотеки, определенные в ветви HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs.
Заметьте, что исключить определенные библиотеки из списка известных библиотек можно достаточно простым способом. Для этого нужно указать библиотекиисключения в значении параметра REG_MULTI_SZ-типа ExcludeFromKnownDlls, расположенного в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager.
Службы
Ветвь HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
содержит все сведения о сервисах и службах, установленных на компьютере. Кроме того, она хранит сведения о том, будет ли служба автоматически загружаться при входе в систему (чтобы просмотреть информацию обо всех службах и способах их загрузки, введите в окне Запуск программы команду services.msc). Рассмотрим формат содержимого подразделов данной ветви.• Description – данный параметр строкового типа определяет строку описания для соответствующей службы. Строка отображается в поле Описание окна, вызываемого двойным щелчком кнопки мыши на соответствующей службе в окне Службы.
• DisplayName – этот параметр строкового типа задает строку названия службы. Строка отображается в поле Имя службы окна свойств службы.
• ObjectName – данный параметр строкового типа определяет, от чьего имени будет выполняться запуск программы. Если значение этого параметра равно LocalSystem, то вход будет выполняться с правами системы. Если значение этого параметра равно NT Authority\NetworkService, то вход будет произведен от имени сетевой службы. Если же нужно предоставить службе вход от имени какого-нибудь пользователя данного компьютера, то этому параметру нужно присвоить строку .\логин пользователя.
• ErrorControl – этот REG_DWORD-параметр задает поведение системы при возникновении ошибок в работе службы. Если значение данного параметра равно 0, то ошибки будут игнорироваться. При значении параметра равном 1 пользователь будет предупреждаться об ошибке. Если значение параметра равно 2, то при появлении ошибки система будет перезагружаться.
• ImagePath – данный параметр строкового типа определяет путь к файлу службы. Именно этот файл будет запускаться при входе пользователя в систему. Чтобы данный файл запускался, он действительно должен быть службой, то есть должен корректно ответить на запросы системы. Например, если таким образом запускать какую-нибудь программу, например regmon.exe, то она сначала запустится (вы сможете увидеть ее окно, если в параметре Type, о котором будет рассказано ниже, будет присутствовать битовая маска 0х00000100), а через некоторое время появится сообщение, что служба не отвечает на запросы, и после этого regmon.exe прекратит свою работу.
Внимание!
Описанным способом можно легко запускать вирусы, даже если они не оформлены как службы, ведь некоторое время перед тем, как система завершит не отвечающую службу вируса, она будет работать. Этого хватит, чтобы заразить половину компьютера. К тому же такой вирус будет намного сложнее найти, ведь система сама выгружает его процесс.
• Start – этот REG_DWORD-параметр задает, в какой момент загрузки системы будет запускаться указанная служба. Например, если значение этого параметра равно 0, то служба будет запускаться при загрузке операционной системы. При значении 1 служба будет запускаться при инициализации операционной системы. Если значение данного параметра равно 2, то служба будет запускаться автоматически при входе в систему. При значении 3 служба должна запускаться вручную; значение 4 означает, что эта служба отключена.
• Type – данный REG_DWORD-параметр указывает, к какому типу программ относится эта служба. Он может принимать следующие значения:
– 1 – определяет устройства уровня ядра;
– 2 – задает драйвер файловой системы;
– 4 – является аргументом для адаптера;
– 8 – относится к службам файловой системы;
– 10 – является программой, запускающей свой процесс;
– 20 – является программой, запускающей общий процесс.