Многие сталкивались с порно баннерами, блокирующими экран, кому то необходимо прописать запуск программ без полной загрузки системы, а кто то просто хочет самостоятельно проверить компьютер на наличие разных лишних программ в автозапуске, которые сразу и не видны. Этому и посвящена статья ниже.
Утилита системной конфигурации MSConfig.exe
Начиная с Windows версии 98, Microsoft поставляет утилиту «MSConfig.exe», предоставляющую удобный интерфейс для управления файлами, запускающимися при загрузке Windows. Она находится в каталоге установки Windows. Ее можно запустить из диалогового окна «Выполнить». В ней нет возможности добавлять новый элемент с именем приложения или документа для автозапуска, но можно отключать, не удаляя, любой пункт из находящихся в списках. Есть еще одна интересная возможность — проверка правильности пути, соответствующего элементу автозапуска, и удаление из списков элементов, пути к которым не верны. Возможности этого приложение достаточно убогие и годятся для пользователей системы, но никак не для администраторов. Далее в статье я, по необходимости, буду ссылаться на эту утилиту.
Автозапуск из файлов инициализации
Изложение мест автозапуска будет вестись в хронологическом порядке, начиная с первых версий Windows и устаревших технологий. Файлы инициализации достались в наследство от 16-битных версий Windows 3.x. Microsoft несколько раз декларировала, что она избавляется от устаревших файлов, но на самом деле они до сих пор обрабатываются при запуске.
В файле «Win.ini» в разделе «[windows]» есть два параметра, которые могут служить местом для автозапуска. Первый параметр это «load», второй — это «run». Содержимое по умолчанию для них — это пустая строка. Имена файлов в них не должны содержать пробелов, указание полного имени файла в двойных кавычках не допускается. В них можно перечислить несколько имен файлов через запятую. Обычно они используются для загрузки драйверов, но могут загружать «троянских коней» или «клавиатурных шпионов».
Еще один файл инициализации, который может быть использован для автоматического запуска программ, — это файл «System.ini». В этом файле в разделе «[boot]» есть параметр «shell», который хранит имя оболочки Windows. Значение по умолчанию этого параметра — «Explorer.exe». Значение «shell» может содержать список приложений для автоматического запуска как параметры командной строки «Explorer.exe». Приложение «Explorer.exe» обрабатывает командную строку и пытается запускать приложения или документы, перечисленные в командной строке. Требования к формату параметра «shell» такие же, как и у вышеупомянутых параметров файла «Win.ini». В последнее время этот параметр начал широко использоваться для запуска сетевых червей. Это делает локализацию трудно обнаруживаемой, т.к. администраторы забывают просматривать этот параметр как место для запуска деструктивных приложений.
Утилита «MSConfig.exe» позволяет просматривать состояние и редактировать содержимое этих трех параметров: «load», «run», «shell», находящихся в файлах инициализации.
Папки автозапуска
Первая папка, которая отрабатывается после завершения загрузки Windows, — это папка «Автозагрузка», которая может хранить список ярлыков (*.lnk) приложений или документов. Ее состояние можно увидеть, выйдя из меню «Пуск» в подменю «Программы». Это — папка, относящаяся к «Текущему пользователю».
Чтобы найти ее размещение, сначала надо найти в системном реестре ключ «HKEY_CURRENT_USER\ SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ Explorer\ User Shell Folders», хранящий размещение всех измененных папок, и отыскать там параметр «Startup» строкового типа. Если искомый параметр отсутствует, то ее размещение по умолчанию на жестком диске прописано в системном реестре в параметре «Startup» ключа «HKEY_CURRENT_USER\ SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ Explorer\ Shell Folders».
Ярлыки к приложениям, находящимся в папке «Автозагрузка», отображаются в программе для настройки системы «MSConfig.exe». Если отключить автоматический запуск какого-нибудь элемента через «MSConfig.exe», то в папке «Программы» (она же и подменю в меню «Пуск») будет создана папка с названием «Отключенные элементы запуска», куда «MSConfig.exe» и переместит отключенный элемент. Для того чтобы временно исключить ярлык из автоматической загрузки, я прибегаю к более простому способу: у необходимого ярлыка я выставлю атрибут «скрытый» и при следующей загрузке он пропускается.
Следующая папка — это «Общая» для всех пользователей папка «Автозагрузки» (Common Startup Folder), которая также отрабатывается после загрузки Windows в поисках ярлыков с документами или приложениями. Увидеть ее в подменю «Пуск» можно в Windows NT или 2000. В Windows 9.x, ME ее содержимое не отображается. Она должна хранить ярлыки общие для профилей всех пользователей. В документации Microsoft (MSDN) сказано, что эта папка создавалась для Windows. Однако ее содержимое отрабатывается, даже если Windows 95, 98, ME работают в однопользовательском режиме.
В системном реестре ее размещение на жестком диске прописано в строковом параметре «Common Startup» ключа «HKEY_LOCAL_MACHINE\ SOFTWARE\ Micro-soft\ Windows\ CurrentVersion\ Explorer\ Shell Folders», который хранит измененные пути папок. При отсутствии этого параметра следует посмотреть размещение этой папки по умолчанию в параметре «Common Startup» ключа «HKEY_LOCAL_MA-CHINE\ SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ Explorer\ Shell Folders».
Список исполнимых файлов, находящихся в «Общей» (для профилей всех пользователей) папке «Автозагрузка» также показываются «MSConfig.exe». Если отключить автоматический запуск какого-нибудь элемента через «MSConfig.exe», то в той же папке, где находится папка «Общего запуска», будет создана папка с названием «Отключенные элементы запуска», куда утилитой «MSConfig.exe» будут перемещены отключенные элементы запуска.
Администраторам следует обращать внимание на содержимое этой папки как место для возможного запуска приложений.
Системный реестр: автозапуск, общий для всех версий Windows
В системном реестре Windows есть ветвь «SOFTWARE\ Microsoft\ Windows\ CurrentVersion», содержащая несколько групп для автоматического запуска приложений. Все эти группы могут быть как в разделе HKEY_LOCAL_MACHINE, так и в разделе HKEY_CURRENT_USER. Изложение будет общим, и все может быть экстраполировано на оба этих раздела. Если Windows используется как многопользовательская среда, другими словами, это либо Windows версий NT/2000/XP, либо 95, 98, ME с задействованными профилями пользователей, то группы запуска следует искать также в разделе «HKEY_USERS\ .Default». Это раздел общий для всех пользователей системы. Если Windows 95, 98, ME работают в однопользовательском режиме, то раздел «HKEY_USERS\ .Default» идентичен разделу HKEY_CURRENT_USER.
Итак, я приведу полные пути к ключам: «SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ Run», «SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ RunOnce», «SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ RunOnceEx», «SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ RunOnce\ Setup», «SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ RunServices», «SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ RunServicesOnce», которые могут содержать строковые параметры, с именами приложений или документов запускающиеся при старте системы. Раздел реестра «RunOnce» не поддерживается в Windows NT 3.5. Имена строковых параметров, содержащихся в этих ключах, могут быть произвольными.
Далее я приведу несколько правил, ориентируясь на которые можно лучше понять процесс и очередность запуска приложений, прописанных в тех или иных местах автозапуска:
Ключи, содержащиеся в разделе HKEY_LOCAL_MACHINE, отрабатываются раньше соответствующих ключей, находящихся в разделе HKEY_CURRENT_USER.
Содержимое ключей системного реестра «RunServices», «RunServicesOnce» обрабатывается раньше параметров ключей «Run», «RunOnce».
Запуск «RunServices» и «RunServicesOnce» происходит до выдачи окна регистрации пользователя, далее идет асинхронно с диалогом регистрации и может продолжаться и после успешно проведенной регистрации. Приложения, прописанные в параметры системного реестра, содержащиеся в ключах «RunServices» и «RunServicesOnce», запускаются асинхронно, и поэтому может возникнуть ситуация, когда они будут работать одновременно.
Запуск приложений или документов, как это следует из самого названия, прописанных в ключах «RunOnce» и «RunServicesOnce», происходит один раз, независимо от того, был он успешным или нет. Параметр, находящийся в ключе «RunOnce» или «RunServicesOnce», удаляется до запуска приложения, имя которого он содержит.
Параметры, содержащиеся в ключах «Run», «RunOnce», запускаются синхронно и в неопределенном порядке, но после того, как закончило загрузку содержимое «RunServices» и «RunServicesOnce».
Ключи системного реестра обрабатываются в следующем порядке. Первыми отрабатывается содержимое «RunServices» и «RunServicesOnce» раздела HKEY_LOCAL_MACHINE. Далее выдается окно регистрации пользователя в системе. После этого операционная система переходит к обработке ключей «RunOnce» и «Run» раздела HKEY_LO-CAL_MACHINE, далее «Run» раздела HKEY_CURRENT_USER. Следующими запускаются элементы, содержащиеся в папке «Автозагрузка». После этого наступает очередь параметров ключа «RunOnce» раздела HKEY_CURRENT_USER.
Списками параметров, автоматически запускающих приложения при старте Windows, находящихся в ключах «RunServices» и «Run», можно управлять с помощью приложения для настройки системы «MSConfig.exe». Если отключить какой-либо элемент из списка, то «MSConfig.exe» переместит этот элемента в ключ «RunServices-» или «Run-» соответственно.
Следует обратить внимание на ключ «Setup», который может содержаться в ключе «RunOnce» как в разделе HKEY_LOCAL_MACHINE, так и в разделе HKEY_CURRENT_USER. Этот ключ используется как мастером установки Windows, так и мастером «установки — удаления» программ. При отработке параметров, содержащихся в этом ключе, отображается диалоговое окно с индикатором прогресса. Имя параметра используется как имя пункта в диалоговом окне. Аналогично содержимому ключа «RunOnce», пункты ключа «RunOnce\ Setup» удаляются и запускаются один раз.
Еще один ключ системного реестра, на который следует обратить внимание, — это «RunOnceEx». Приведу отличия запуска параметров, находящихся в «RunOnceEx» от запуска параметров, содержащихся в ключах системного реестра «RunOnce» и «Run».
Параметры, находящиеся в ключе «RunOnceEx», запускаться не будут. Для автоматической отработки необходимо создать в нем ключ реестра, и уже в нем должны быть параметрами с именами приложений. Ключи и параметры, находящиеся в ключе «RunOnceEx», сортируются в алфавитном порядке для того, чтобы принудительно придать им строго определенный порядок запуска. Другими словами, элемент, находящийся выше по алфавиту, будет запущен раньше, независимо от того, когда он был добавлен в ключ «RunOnceEx». Приложения или файлы сценариев должны или сами себя завершать, или не требовать отдельного вмешательства для завершения, пока не завершится один элемент запуска или остановится дальнейшая отработка списка, или загрузка Windows остановится в ожидании принудительного завершения запущенного приложения. Для приложений, запущенных из ключа «RunOnceEx», в отличие от ключей «RunOnce» и «Run», отдельные процессы не создаются.
Содержимое ключей «RunOnce», «RunOnceEx», «RunOnce\ Setup» и «RunServicesOnce» приложением настройки системы «MSConfig.exe» не отображается.
Особенности автозапуска в Windows NT/2000/XP
В добавление к вышеперечисленным ключам, для Windows версий NT, 2000 и XP специфичен еще один ключ системного реестра — «Software\ Microsoft\ Windows NT\ CurrentVersion\ Windows\ Run», который может находиться в разделах LO-CAL_MACHINE или HKEY_CURRENT_USER.
В ключе «Software\ Microsoft\ Windows NT\ CurrentVersion\ Windows» могут находиться два строковых параметра «Load» и «Run», которые могут хранить списки приложений для автоматического запуска.
Эти параметры аналогичны одноименным параметрам из файла инициализации «Win.ini». При установке Windows NT (2000) поверх Windows 95, 98 значения параметров из «Win.ini» раздела «[windows]» переносятся в соответствующие параметры ключа «Software\ Microsoft\ Windows NT\ CurrentVersion\ Windows». Если в параметре указывается несколько файлов, то имена должны быть разделены пробелами. Поэтому в них невозможно прописать путь к файлу, содержащим пробелы, — двойные кавычки не принимаются. «Значение по умолчанию» для этих параметров — пробел. Программы, запущенные из параметра «Load», минимизируются при запуске.
Особенности автозапуска в Windows ME/2000/XP
У Windows версий ME, 2000 и XP появляется еще один список автозагрузки программ или документов, запускающихся после регистрации пользователя в системе, который может размещаться как в разделе HKEY_LOCAL_MACHINE, так и в разделе HKEY_CURRENT_USER. Он размещается в строковых параметрах ключа «Software\ Microsoft\ Windows\ CurrentVersion\ Policies\ Explorer\ Run». Имена параметров для этого ключа имеют особенность: они должны быть представлены в виде порядковых номеров, начиная с «1». Список, находящийся в разделе HKEY_LOCAL_MACHINE, будет отработан раньше списка раздела HKEY_CURRENT_USER.
Автозапуск при отработке Windows Logon
Отдельная группа Windows Logon для управления инициализацией при регистрации пользователя появляется в Windows NT и далее развивается Microsoft для Windows версий 2000 и XP. Параметры Winlogon находятся в системном реестре в ключе «SOFTWARE\ Microsoft\ Windows NT\ CurrentVersion\ Winlogon» раздела HKEY_LOCAL_MACHINE. Все описываемые в статье параметры, относящиеся к Winlogon, имеют строковый тип.
Параметр Shell
Параметр «Shell», отвечающий за программную оболочку, присутствует в ветви реестра «Winlogon» в версиях Windows NT, 2000 и XP.
Этот строковый параметр определяет список исполнимых файлов, обеспечивающих для операционной системы интерфейс пользователя и которые должны быть запущены вместе с программной оболочкой.
По умолчанию Windows запускает программы, перечисленные в параметре «Userinit», расположенном в ветви «Winlogon», включая и сам «Userinit.exe». Если же по какой-то причине «Winlogon» процесс не смог запустить программы, определенные в параметре «Userinit», тогда «Winlogon» переходит непосредственно к обработке исполнимых файлов, имена которых записаны в параметре «Shell».
Значение по умолчанию параметра «Shell» может варьироваться. Это — «taskman, progman, wowexec» для Windows NT и «Explorer.exe» для Windows 2000, XP.
Параметр System
Этот параметр присутствует в Windows версий NT, 2000 и XP. Он содержит список имен исполнимых файлов, запускаемых Winlogon в системном контексте во время инициализации системы. Этот список можно варьировать, редактируя значение этого параметра.
Значение по умолчанию этого параметра — «lsass.exe, spoolss.exe» для Windows NT, и «lsass.exe» для Windows 2000, XP. Интересно замечание Microsoft, приведенное в MSDN: «Этот параметр появляется, но не используется самой Windows 2000».
Параметр VmApplet
Параметр «VmApplet», запускающий приложение «Панели управления» для настройки конфигурации системы, специфичен для Windows версий 2000 и XP.
Он содержит список или один исполнимый файл, которые Winlogon-процесс запускает для того, чтобы пользователь мог скорректировать настройки виртуальной памяти, если на системном томе отсутствует страничный файл подкачки. В этом параметре не обязательно указывать расширения для имен файлов.
Значение по умолчанию этого параметра — «rundll32 shell32, Control_RunDLL «sysdm.cpl»». Не стоит без нужды и изменять значение этого параметра, потому что это может привести к изменению настроек виртуальной памяти в Windows 2000, XP.
Параметр Userinit
«Userinit» (инициализация пользователя) специфичен для версий Windows NT, 2000 и XP.
Значение этого параметра содержит исполнимые файлы, которые запускаются процессом WinLogon в контексте пользователя, при регистрации пользователя в системе.
По умолчанию Winlogon запускает «Userinit.exe», который ответственен за запуск программной оболочки и исполняет файлы сценариев для регистрации, переустанавливает сетевые соединения и затем запускает «Explorer.exe».
Значение по умолчанию параметра «Userinit»: «userinit, nddeagnt.exe» для Windows NT, «userinit» для Windows 2000, XP. Приложение «nddeagnt.exe» необходимо для запуска NetDDE — сетевого динамического обмена данными.
Расширения в именах файлов, перечисленных в этом параметре, не обязательны.
Значение этого параметра можно изменять, добавляя или убирая программы из списка.
Если необходимо запустить приложение до загрузки интерфейса пользователя вместе с «проводником» Windows, то для этого можно заменить «Userinit.exe» на имя своей программы, не забыв включить в приложение код для запуска «Userinit.exe», или поступить еще проще, создав исполнимый файл для пакетной обработки с именем «userinit.bat», со списком программ для запуска и в одной из строк прописать собственно «Userinit.exe».
P.S. Информация, систематизированная в этой статье, была адресована в первую очередь администраторам Windows-систем, а не хакерам. Все сведения, приведенные в статье, содержатся в том или ином виде в официальной документации Microsoft.
Специфика Windows NT / 2000 / XP
В операционных системах серии Windows NT способы автозапуска программ в целом почти идентичны системам Windows 9x, однако имеется ряд разделов в реестре, специфичных только для Windows NT.
Кроме того, в этих ОС отсутствует возможность запуска программ с помощью файлов autoexec.bat (при запуске DOS-приложения, правда, происходит автоматическая обработка файла %SystemRoot%\SYSTEM32\AUTOEXEC.NT, если в настройках свойств этой DOS-программы не указан другой файл), winstart.bat, dosstart.bat.
Итак, в Windows NT могут иметь место дополнительные параметры автозапуска в разделах реестра:
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\Run
HKEY_LOCAL_MACHINE\ Software\Microsoft\Windows NT\CurrentVersion\Windows\Run
В разделе
HKEY_CURRENT_USER\ Software\Microsoft\Windows NT\ CurrentVersion\Windows
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows
могут присутствовать строковые параметры Load (программы, запуск которых в нем прописан, загружаются минимизированными) и Run, в которые при установке Windows NT поверх Windows 9x переносится соответствующий список программ автозапуска из аналогичных параметров файла win.ini.
К этим параметрам реестра применимы те же правила написания, что и к соответствующим параметрам win.ini. Если же наследования этого списка из предыдущей ОС не происходит, то по умолчанию значением этих параметров является пробел.
В разделе
HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft\Windows NT\CurrentVersion\Winlogon
также содержится ряд строковых параметров, отвечающих за автозапуск различных приложений при входе пользователя в систему:
- Userinit — определяет список программ, запускаемых процессом WinLogon в контексте пользователя при его регистрации в системе. По умолчанию это userinit.exe, nddeagnt.exe для Windows NT и userinit.exe для Windows 2000 / XP.
- Shell — задает оболочку (вернее, список программ, формирующих пользовательский интерфейс)
Windows (по умолчанию taskman, progman, wowexec для Windows NT и explorer.exe для Windows 2000 / XP). - System — определяет список программ, запускаемых процессом WinLogon в контексте системы во время ее инициализации. По умолчанию — lsass.exe, spoolss.exe для Windows NT и lsass.exe для Windows 2000 / XP.
- VmApplet — определяет список программ или программу, запускаемую процессом WinLogon для оперативной настройки параметров виртуальной памяти -по умолчанию его значение rundll32 shell32, Control_ RunDLL «sysdm.cpl».
Неявные способы автозагрузки
К сожалению, операционные системы семейства Windows и их внутреннее устройство довольно сложны для рядового пользователя — к копанию в реестре расположен далеко не каждый. Тем более, что помимо вышеперечисленных способов автозапуска программ на старте системы существует еще и такой вариант, как запуск исполнимого модуля одной программы при загрузке другого, вполне легитимного приложения. Подобный симбиоз (или, скорее, что-то типа паразитирования) можно наблюдать при использовании утилит класса ad-ware, то есть таких программ, в которых вы расплачиваетесь с их авторами не живыми деньгами, а своими нервными клетками, попорченными из-за просмотра рекламных баннеров внутри интерфейса самой программы.
Подобных модулей-баннерососов создано уже довольно много, и отловить их вручную слишком сложно даже для опытного пользователя, а потому всегда полезно периодически сканировать систему не только антивирусным сканером, но программами типа Ad-Aware, или Opt Out grc.com/optout.htm, или SpyBot — Search & Destroy (security.kolla.de), призванными находить и удалять из системы эти модули.
Такие программы обычно абсолютно бесплатны и имеют в своих постоянно обновляемых базах данных информацию о десятках известных шпионско-рекламных модулях и даже троянских вирусах. Учтите только, что некоторые программы не работают без таких «пауков» (тот же ReGet) — в этом случае можно либо заблокировать баннеры персональным файрволлом, например, AtGuard или Norton Internet Security, либо найти альтернативную программу аналогичного назначения, но уже без мерзопакостной нагрузки. Всеми обожаемый браузер от повсеместно любимой корпорации Microsoft также имеет мало известную, но достаточно коварную возможность вместе со своим запуском загружать посторонние модули, так называемые Browser Helper Objects (BHO) — небольшие программы, не имеющие пользовательского интерфейса и автоматически запускаемые вместе с Internet Explorer.
Эти самые BHO могут быть как действительно ценными дополнениями (например, модуль, который прописывает в систему программа FlashGet), так и зловредными троянскими вирусами или шпионскими модулями, а потому при проверке автозагрузки нелишним будет проконтролировать и список установленных в системе BHO. Список этот можно увидеть в разделе реестра
HKEY_LOCAL_MACHINE\ SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects
Подозрительные или явно зловредные Browser Helper Objects можно удалить из этого списка (ленивым пользователям желательно предварительно сделать резервную копию реестра, а добросовестным — обязательно) — это их полностью дезактивирует.
Например, если в этом разделе вы обнаружите подраздел
HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft\Windows\CurrentVersion\ Explorer\Browser Helper Objects\{A5366673-E8CA-11D3- 9CD9-0090271D075B}
то произведите поиск во всем реестре найденного идентификатора Browser Helper Objects — {A5366673-E8CA-11D3-9CD9-0090271D075B} — обнаружите его упоминание также и в разделе
HKEY_CLASSES_ROOT\CLSID\ {A5366673-E8CA-11D3-9CD9-0090271D075B}.
Просмотрите все содержимое найденного раздела, чтобы определить, к какой программе относится этот Browser Helper Objects. В данном случае вы найдете такую запись:
HKEY_CLASSES_ROOT\CLSID\ {A5366673-E8CA-11D3-9CD9-0090271D075B}\ InprocServer32@= «C:\PROGRAM FILES\FLASHGET\ JCCATCH.DLL»
— из которой можно сделать вывод, что обнаруженный Browser Helper Objects создан программой FlashGet (менеджер закачек) и никакой угрозы совершенно не представляет.
Если же обнаружится упоминание библиотеки непонятного происхождения (например, в свойствах этого файла нет никаких данных о его разработчике), то попробуйте удалить в реестре все упоминания данного Browser Helper Objects — скорее всего, именно он и является причиной неприятностей.
Удобнее же всего для поиска и идентификации установленных Browser Helper Objects использовать специально для этого предназначенные программы, такие как BHODemon (definitivesolutions.com) или BHOCaptor, которые выдадут всю информацию об установленных модулях Browser Helper Objects и помогут деактивировать подозрительные модули.
Конечно, существуют и другие доступные способы загрузить программный код без ведома пользователя, например, с помощью плагина какой-либо программы, хотя бы того же всеми любимого браузера Internet Explorer. Файлы подключаемых модулей-плагинов Internet Explorer находятся в папке \Program Files\Internet Explorer\Plugins, по свойствам каждого файла можно выяснить его предназначение.
Не исключено также, что зловредной программе удастся прописать себя в системе как системный драйвер или сервис, одним словом, борьба с вирусами или другими, запускающимися без ведома пользователя программами, весьма и весьма непроста.
С некоторой натяжкой, правда, к автозапуску можно отнести еще и возможность использования файла autorun.inf в корневой директории жесткого диска.
Утилита TaskInfo
В особо же тяжелых случаях советую попробовать определить имя исполнимого файла непонятно каким образом запущенного процесса с помощью программы типа TaskInfo (iarsn.com/download.html), а затем произвести тщательный поиск этого файла на диске и его упоминаний в системном реестре. Утилита эта вообще очень примечательна.
Она в реальном времени показывает информацию обо всех запущенных процессах (использование памяти и CPU, открытые файлы, используемые библиотеки и прочее).
Иконка программы помещается в системный трей и показывает загрузку процессора. С ее помощью также можно устанавливать уровень приоритета для запущенных приложений.
Эта программа позволяет не только просмотреть почти все способы автозагрузки, но обладает еще целым рядом полезных функций. Например, с помощью утилиты Starter вы легко отредактируете любую запись в реестре, относящуюся к автоматически загружаемым программам, удалите, временно отключите или добавите в автозагрузку любое новое приложение или документ.
Также эта программа позволяет делать резервную копию автозагрузочных разделов реестра в виде текстового файла, документа HTML или стандартного reg-файла и, естественно, восстанавливать их из нее. Любую замеченную в автозагрузке программу можно запустить непосредственно из интерфейса Starter, просмотреть свойства исполнимого файла этой программы и открыть ее папку на диске.
Кроме того, с помощью Starter можно просмотреть и список запущенных процессов, задать любому из них нужный приоритет или принудительно выгрузить его из памяти. Словом, возможностей даже у далеко не идеального, на мой взгляд, Starter гораздо больше, чем у msconfig (впрочем, msconfig — более универсальная программа, призванная решать и другие задачи настройки системы), а пользоваться ей заметно удобнее, что, конечно, не исключает наличия и более продвинутых утилит мониторинга автозагрузки.
В своих статьях вы часто пишете про программы из автозагрузки Windows. Не могли бы вы поподробнее рассказать о том, каким образом осуществляется эта самая автозагрузка? Я пару раз сталкивался с ситуацией, когда никак не мог выявить, каким образом загружается та или иная программа или вирус — поиск в разделах
RUN
реестра не давал результата. Может, имеются ещё какие-то «секретные» приёмы автозагрузки? Такая информация многих спасла бы отFORMAT C:
…
Да, в Windows различных версий имеется несколько способов автоматического запуска определённой программы или открытия документа во время загрузки операционной системы. Это обусловлено разными причинами: требованиями совместимости с приложениями для DOS и для Windows 3.11, наличием в системе нескольких зарегистрированных пользователей с индивидуальными настройками, необходимостью разграничения пользовательских привилегий, необходимостью обеспечения определённого порядка запуска приложений при инсталляции программ и так далее. В последних версиях Windows, а конкретнее — в Windows 98, 98SE, Me и XP имеется довольно неплохая утилита для управления программами из автозагрузки — MSCONFIG.EXE
. В более старых системах — Windows 95 и Windows 2000 тоже вполне допускается использовать эту программу, скопировав её, соответственно, из Windows 98 и Windows XP — реализации MSCONFIG
для систем 9x и NT заметно различаются. Правда, вся прелесть этой программы заключается, пожалуй, только в том, что она уже есть в составе Windows, и что она предельно проста — практически не даёт пользователю возможности привести ОС в неработоспособное состояние.
На вкладке «Автозагрузка» («StartUp») утилиты MSCONFIG.EXE
можно увидеть текущий список автоматически загружаемых программ и, сняв тот или иной флажок, отключить автозагрузку какой-либо из них. При этом, что немаловажно, отключённый элемент не удаляется из списка, и его можно в любой момент снова вернуть в автозагрузку. Отключаемый элемент списка лишь перемещается в необрабатываемый системой раздел реестра RunServices-
или Run-
, либо в папку «Отключенные элементы автозапуска» меню «Пуск» в соответствии с тем, каким способом изначально проводилась его автозагрузка. Также на вкладке «Автозагрузка» программы MSCONFIG.EXE
имеется кнопка «CleanUp», при нажатии на которую производится проверка путей к файлам автоматически загружаемых программ, и в случае, если обнаруживается неверный путь, ошибочная запись удаляется из списка. К сожалению, эта программа не только не позволяет добавить в автозагрузку какую-то новую программу, но и сам список автоматически загружаемых программ в ней может быть не полон. Дело в том, что она не учитывает некоторые довольно важные способы автозагрузки — в частности, содержимое подразделов реестра RunOnce
, RunOnceEx
, RunOnce\
и Run
в этой программе не отображается. Чуть больше возможностей дают аналогичные утилиты от сторонних производителей, например, достаточно известная программа Starter [1], которая позволяет не только просмотреть почти все способы автозагрузки, но обладает ещё целым рядом полезных функций. Например, с помощью утилиты Starter вы легко отредактируете любую запись в реестре, относящуюся к автоматически загружаемым программам, удалите, временно отключите или добавите в автозагрузку любое новое приложение или документ. Также эта программа позволяет делать резервную копию автозагрузочных разделов реестра в виде текстового файла, документа HTML или стандартного REG-файла и, естественно, восстанавливать их из неё. Любую замеченную в автозагрузке программу можно запустить непосредственно из интерфейса Starter, просмотреть свойства исполнимого файла этой программы и открыть её папку на диске. Кроме того, с помощью Starter можно просмотреть и список запущенных процессов, задать любому из них нужный приоритет или принудительно выгрузить его из памяти. Словом, возможностей даже у далеко не идеального, на мой взгляд, Starter гораздо больше, чем у MSCONFIG
(впрочем, MSCONFIG
— более универсальная программа, призванная решать и другие задачи настройки системы), а пользоваться ей заметно удобнее, что, конечно, не исключает наличия и более продвинутых утилит мониторинга автозагрузки. Поэтому я советую при активной работе с автозагрузкой пользоваться именно такими, более мощными программами. Однако, в тех случаях, когда даже с их помощью не удаётся выявить способ загрузки какой-либо программы, или необходимо определить причину сбоя, следует вручную проконтролировать все возможные пути автоматической загрузки программ. Эти пути в Windows 9x и в Windows NT немного различаются.
Автозагрузка в Windows 9x
Самый первый способ автоматической загрузки программы в Windows 9x — использование рудиментарного файла AUTOEXEC.BAT
. Разумеется, таким образом можно запустить только приложение для DOS или какой-то пакетный BAT-файл. В Windows Me обработка этого файла уже не производится, а потому в этой системе этот способ не работает. Сразу оговорюсь, что такие используемые вирусами способы автозагрузки как, например, внедрение чужеродного исполняемого кода в обычную программу (например, в COMMAND.COM
, WIN.COM
или даже в драйвер мыши) или подмена файла легитимной программы файлом вируса мы рассматривать не будем, оставив это на откуп антивирусным программам — в особо тяжёлых случаях можно просто снять жёсткий диск с проблемной машины и, подключив его к заведомо «чистому» в плане вирусов ПК, просканировать его с помощью парочки качественных антивирусных сканеров. Хотя, пожалуй, в контексте вирусологии стоит упомянуть о системном файле WININIT.EXE
— эта программа тоже запускается в самой начальной стадии загрузки системы, в том случае, если в папке Windows присутствует файл WININIT.INI
, инструкции из которого она и призвана выполнить. В принципе, возможна не только подмена самого файла WININIT.EXE
файлом вируса, но и создание деструктивных инструкций в файле WININIT.INI
, результатом которых окажется, например, полное удаление папки «My Documents» сразу после загрузки компьютера. Так что имейте это в виду.
Далее по ходу загрузки операционной системы автоматически исполняется ещё один недокументированный командный файл — WINSTART.BAT
, если он имеется в директории Windows. Из него, так же как и из AUTOEXEC.BAT
, можно загрузить некоторые резидентные DOS-программы или выполнить последовательность команд (в «Миллениуме» этот файл также не обрабатывается). Не забывайте ещё, что при перезагрузке системы Windows 95/98 в режим эмуляции MS-DOS (с помощью меню «Выключить компьютер») используется пакетный файл DOSSTART.BAT
, в котором может быть задан запуск любой DOS-программы или любого другого BAT-файла.
Затем при загрузке операционной системы доходит очередь до обработки ещё одного конфигурационного файла — SYSTEM.INI
. Напрямую с его помощью можно запустить только одну программу, а именно — оболочку Windows. Изначально такой оболочкой является Проводник EXPLORER.EXE
, что вы и можете наблюдать, если посмотрите значение параметра SHELL
в разделе [BOOT]
, однако ничто не мешает указать дополнительные программы как аргументы командной строки самого файла EXPLORER.EXE
— Проводник сам при запуске загрузит эти программы или документы. Впрочем, вполне возможна и замена самой оболочки EXPLORER.EXE
на любой другой файл, собственно, именно для этого и предназначен этот параметр. Кстати, если поместить в корневой каталог системного диска какой-либо файл с именем EXPLORER.EXE
, то система запустит именно его, решив, что это и есть оболочка.
Далее в процессе загрузки Windows появляется ещё одна возможность запуска программ — доставшийся от Windows 3.11 файл WIN.INI
содержит в разделе [windows]
специальные параметры load
и run
, которые могут использоваться для задания автозапуска (для обеспечения совместимости эти параметры по-прежнему обрабатываются даже самыми последними на сегодняшний день версиями ОС). По умолчанию значением этих параметров должна являться пустая строка.
Поскольку файлы SYSTEM.INI
и WIN.INI
— наследие Windows 3.11, то, если вы вдруг захотите использовать эти параметры, не забывайте, что указывать путь к исполнимому файлу (или имя файла) в их значении следует в стандарте MS-DOS, без пробелов и длинных имён. Если требуется поместить в автозагрузку сразу несколько программ, то допускается перечисление через запятую имён файлов этих программ. Поскольку этот путь загрузки обычными пользователями уже изрядно подзабыт, его нередко используют доморощенные создатели троянских вирусов.
Наконец, во время загрузки операционной системы начинает обрабатываться системный реестр, в котором существует целый ряд разделов, обеспечивающих загрузку приложений в определённом порядке и в контексте определённого пользователя. Подразделы реестра, отвечающие за автозапуск, носят следующие имена: Run
, RunOnce
, RunOnceEx
, Run
, Run
. Располагаться они могут в следующих разделах реестра, в зависимости от того, в каком контексте производится автозапуск:
HKEY_
HKEY_
HKEY_
В том случае, если в Windows 9x зарегистрирован только один пользователь, то содержание раздела HKEY_
дублирует раздел HKEY_
, в Windows 2000/XP содержимое этих двух корневых разделов не идентично. Полный путь к этим параметрам может выглядеть, например, таким образом:
HKEY_
То есть, для того, чтобы просмотреть автозагрузку, в каждом из корневых разделов реестра следует открыть ветвь SOFTWARE\
и найти вышеперечисленные подразделы RUN*
(можно, например, воспользоваться встроенным механизмом поиска редактора реестра). Каждый из этих подразделов может содержать довольно длинный перечень строковых параметров (порядок запуска приложений, расположенных в одном подразделе, обычно соответствует расположению по алфавиту имён этих параметров), значением которых являются пути к программам, которые и надо загрузить на старте Windows. Эти пути могут содержать длинные имена и пробелы.
Первыми при загрузке системы обрабатываются параметры RUN*
из раздела HKEY_
, причём ключи RunServices
и Run
обрабатываются раньше, чем Run
и RunOnce
. Программы из подразделов Run
и Run
запускаются ещё до входа пользователя в систему в так называемом асинхронном режиме, независимо от запуска других программ и от процесса регистрации пользователя в системе. Подразделы Run
и RunOnce
служат для однократного запуска программ, и их содержимое очищается непосредственно перед самой загрузкой программ, указанных в этих разделах (раздел реестра RunOnce
не поддерживается в Windows NT 3.5).
Специальные разделы RunOnceEx
отличаются от разделов RunOnce
и Run
. Эти разделы несколько запутанным способом позволяют запускать программы в заранее определённом порядке, последовательно. Напрямую параметры, расположенные в разделе RunOnceEx
, не запускаются. Внутри раздела RunOnceEx
для автоматически запускаемых с его помощью программ создаётся дополнительный подраздел, в котором уже и указываются параметры с именами приложений и путями к исполнимым файлам. При этом подразделы внутри RunOnceEx
обрабатываются системой в алфавитном порядке, что и позволяет задать порядок запуска приложений или групп приложений, что может быть крайне важно при инсталляции некоторых программ. При обработке такого списка программ система (формат записи этих параметров несколько отличается, например: "program"=
или "print_
) будет ожидать завершения работы каждого элемента списка и только после этого произведёт запуск следующего, стоящего в очереди.
Кроме того, в подразделе реестра RunOnce
может содержаться специальный раздел Setup
, используемый при установке компонентов Windows либо некоторых прикладных программ. Параметры внутри этого раздела обрабатываются системой так же, как и обычные параметры раздела RunOnce
— то есть происходит однократный запуск указанных в них программ, однако в ходе этого запуска отображается индикатор (в его диалоговом окне указано имя соответствующего параметра из раздела Setup
) с прогресс-баром, то есть показывается, на сколько процентов завершено копирование файлов устанавливаемой программы.
После обработки раздела HKEY_
приходит черёд аналогичной обработки общего для всех пользователей многопользовательских конфигураций раздела HKEY_USERS\
, а после регистрации пользователя в системе — раздела HKEY_
.
В последних версиях Windows — Me, 2000 и XP появились новые разделы для автозагрузки программ:
HKEY_
HKEY_
Особенность этих разделов заключается в том, что имена параметров, прописанных в них, должны быть представлены в виде порядковых номеров, начиная с единицы.
Также после регистрации пользователя в системе происходит запуск программ, ярлыки к которым помещены в папку «Автозагрузка» меню «Пуск». Следует учитывать, что для текущего пользователя реальное местоположение на диске этой папки с ярлыками может быть изменено с помощью программы типа Tweak UI [2] либо вручную путём изменения значения параметра Startup
в разделе реестра
HKEY_
По умолчанию же ярлыки автозапуска текущего пользователя располагаются в папке \WINDOWS\
для Windows 9x, либо \Documents and Settings\
для Windows XP (путь этот также задан в реестре — параметр Startup
раздела HKEY_
).
Кроме этой папки ярлыки автоматически запускаемых программ могут располагаться и в папке, общей для всех пользователей многопользовательской конфигурации. В Windows XP это папка \Documents and Settings\
, а в Windows 9x — \WINDOWS\
(путь к этой папке тоже может быть изменен в реестре — параметр Common Startup
раздела HKEY_
). Эти папки обрабатываются даже в однопользовательских конфигурациях, а параметры Startup
и Common Startup
в ряде случаев могут находиться и в других разделах реестра, поэтому при поиске способа запуска какой-либо программы необходимо произвести поиск этих параметров по всему реестру.
Специфика Windows NT/2000/XP
В операционных системах серии Windows NT способы автозапуска программ в целом почти идентичны системам Windows 9x, однако имеется ряд разделов в реестре, специфичных только для Windows NT. Кроме того, в этих ОС отсутствует возможность запуска программ с помощью файлов AUTOEXEC.BAT
(при запуске DOS-приложения, правда, происходит автоматическая обработка файла %SystemRoot%\
, если в настройках свойств этой DOS-программы не указан другой файл), WINSTART.BAT
, DOSSTART.BAT
. Итак, в Windows NT могут иметь место дополнительные параметры автозапуска в разделах реестра:
HKEY_
HKEY_
Также в разделе
HKEY_
или в
HKEY_
могут присутствовать строковые параметры Load
(программы, запуск которых в нём прописан, загружаются минимизированными) и «Run», в которые при установке Windows NT поверх Windows 9x переносится соответствующий список программ автозапуска из аналогичных параметров файла WIN.INI
. К этим параметрам реестра применимы те же правила написания, что и к соответствующим параметрам WIN.INI
. Если же наследования этого списка из предыдущей ОС не происходит, то по умолчанию значением этих параметров является пробел.
В разделе
HKEY_
также содержится ряд строковых параметров, отвечающих за автозапуск различных приложений при входе пользователя в систему:
Userinit
— определяет список программ, запускаемых процессом WinLogon в контексте пользователя, при его регистрации в системе. По умолчанию этоUSERINIT.EXE, NDDEAGNT.EXE
для Windows NT иUSERINIT.EXE
для Windows 2000/XP.Shell
— задаёт оболочку (вернее — список программ, формирующих пользовательский интерфейс) Windows (по умолчанию —TASKMAN, PROGMAN, WOWEXEC
для Windows NT иEXPLORER.EXE
для Windows 2000, XP).System
— определяет список программ, запускаемых процессом WinLogon в контексте системы во время её инициализации. По умолчанию —LSASS.EXE, SPOOLSS.EXE
для Windows NT, и пустая строка либоLSASS.EXE
для Windows 2000/XP.VmApplet
— определяет список программ или программу, запускаемую процессом WinLogon для оперативной настройки параметров виртуальной памяти — по умолчанию его значениеrundll32 shell32, Control_
.RunDLL "sysdm.cpl"
Надо обратить внимание, что в разделе
HKEY_
могут быть указаны DLL-файлы, которые, являясь, по сути, исполнимыми модулями, будут запускаться при загрузке, не отображаясь при этом в диспетчере задач.
Помимо этого предусмотрена возможность автоматического запуска сторонних программ вместе с запуском командного процессора CMD.EXE
— эти программы задаются в специальных разделах реестра
HKEY_
HKEY_
Неявные способы автозагрузки
К сожалению, операционные системы семейства Windows и их внутреннее устройство довольно сложны для рядового пользователя — к копанию в реестре расположен далеко не каждый. Тем более что помимо вышеперечисленных способов автозапуска программ на старте системы существует ещё и такой вариант, как запуск исполнимого модуля одной программы при загрузке другого, вполне легитимного приложения. Подобный симбиоз (или, скорее — что-то типа паразитирования) можно наблюдать при использовании утилит класса ad-ware, то есть таких программ, в которых вы расплачиваетесь с их авторами не живыми деньгами, а своими нервными клетками, попорченными из-за просмотра рекламных баннеров внутри интерфейса самой программы. За примером таких программ далеко ходить не надо — это и ReGet, и ICQ, и Opera. Закачкой этих баннеров обычно занимается отдельный исполнимый модуль, запускаемый вместе с основной программой-маткой. Подобных модулей-баннерососов создано уже довольно много и отловить их вручную слишком сложно даже для опытного пользователя, а потому всегда полезно периодически сканировать систему не только антивирусным сканером, но программами типа Ad-Aware [3], или Opt Out [4], или SpyBot – Search & Destroy [5], призванными находить и удалять из системы эти модули. Такие программы обычно абсолютно бесплатны и имеют в своих постоянно обновляемых базах данных информацию о десятках известных шпионско-рекламных модулях и даже троянских вирусах. Учтите только, что некоторые программы не работают без таких «пауков» (тот же ReGet) — в этом случае можно либо заблокировать баннеры персональным фаейрволлом, например, AtGuard [6] или Norton Internet Security [7], либо найти альтернативную программу аналогичного назначения, но уже без мерзопакостной нагрузки.
Всеми обожаемый браузер от повсеместно любимой корпорации Microsoft также имеет малоизвестную, но достаточно коварную возможность вместе со своим запуском загружать посторонние модули, так называемые Browser Helper Objects (BHO) — небольшие программы, не имеющие пользовательского интерфейса и автоматически запускаемые вместе с Internet Explorer. Эти самые BHO могут быть как действительно ценными дополнениями (например, модуль, который прописывает в систему программа FlashGet), так и зловредными троянскими вирусами или шпионскими модулями, а потому при проверке автозагрузки нелишним будет проконтролировать и список установленных в системе BHO. Список этот можно увидеть в разделе реестра
HKEY_
Подозрительные или явно зловредные BHO можно удалить из этого списка (желательно предварительно сделать резервную копию реестра) — это их полностью дезактивирует. Например, если в этом разделе вы обнаружите подраздел
HKEY_
то произведите поиск во всём реестре найденного идентификатора BHO — {A5366673-E8CA-11D3-9CD9-0090271D075B}
— обнаружите его упоминание также и в разделе
HKEY_
Просмотрите всё содержимое найденного раздела, чтобы определить, к какой программе относится этот BHO — в данном случае вы найдёте такую запись:
HKEY_
@="C:\PROGRAM FILES\
из которой можно сделать вывод, что обнаруженный BHO создан программой FlashGet и никакой угрозы не представляет. Если же обнаружится упоминание DLL-библиотеки непонятного происхождения (например, в свойствах этого файла нет никаких данных о его разработчике), то попробуйте удалить в реестре все упоминания данного BHO — скорее всего, именно он и является причиной неприятностей. Удобнее же всего для поиска и идентификации установленных BHO использовать специально для этого предназначенные программы, такие как BHODemon [8] или BHOCaptor [9]), которые выдадут всю информацию об установленных модулях BHO и помогут деактивировать подозрительные модули.
Конечно, существуют и другие способы загрузить программный код без ведома пользователя, например, с помощью плагина какой-либо программы, хотя бы того же Internet Explorer. Файлы подключаемых модулей-плагинов IE находятся в папке \PROGRAM FILES\
— по свойствам каждого файла можно выяснить его предназначение. Не исключено также, что зловредная программа пропишет себя в системе как системный драйвер или сервис, одним словом — борьба с вирусами или другими, запускающимися без ведома пользователя программами весьма и весьма непроста. А самый лучший способ помочь самому себе в этой борьбе — постоянный мониторинг состояния файлов на диске, реестра и конфигурационных файлов с помощью хорошего деинсталлятора. Только так вы получите реальную картину того, что пишется на диск и в реестр при установке новых программ или при посещении находящихся на отшибе Всемирной Сети веб-сайтов. Догадайтесь с трёх раз, какой деинсталлятор я использую? Конечно, Ashampoo Uninstaller [10] — мои постоянные упоминания этой программы, вероятно, уже изрядно всем надоели, но ничего лучшего лично для себя я пока не подобрал, тем более, что результаты её работы меня более чем устраивают.
Вот, собственно говоря, и всё, что мне известно на сегодня (или, вернее — что вспомнил 🙂) про способы автозагрузки приложений и документов в операционных системах семейства Windows. С некоторой натяжкой, правда, к автозапуску можно отнести ещё и возможность использования файла AUTORUN.INF
в корневой директории жёсткого диска (если он там обнаружится — смело удаляйте), но этому файлу уже была посвящена довольно большая статья в нашем журнале. В особо же тяжёлых случаях я советую также попробовать определить имя исполнимого файла непонятно каким образом запущенного процесса с помощью программы типа TaskInfo [11]), а затем произвести поиск этого файла на диске и его упоминания в системном реестре.
Есть программы, которые автоматически запускаются при загрузке системы независимо от того, хотите вы этого или нет. Поиск и остановка таких программ — сизифов труд. Автоматический запуск программ операционной системой Windows возможен из двух папок и восьми главных разделов реестра. Ниже перечислены 10 мест, откуда Windows XP, Windows 2000 и Windows NT могут автоматически запускать программы в процессе загрузки системы.
10. Папка Startup. Пользовательская папка Startup является одним из распространенных мест расположения программ, которые Windows автоматически загружает на начальном этапе работы. Папка может иметь следующий полный путь: Documents and Settings, user, Start Menu, Programs, Startup. После миграции из NT папку Startup можно найти в WinNT, Profiles, user, Start Menu, Programs, Startup.
9. Папка All Users Startup. Еще одно распространенное место, где могут храниться автоматически запускаемые программы. Если содержимое папки Startup определяет программы, которые автоматически запускаются только для данного зарегистрировавшегося пользователя, то папка All Users Startup автоматически запускает программы вне зависимости от того, кто зарегистрировался в системе. Полный путь папки: Documents and Settings, All Users, Start Menu, Programs, Startup. После миграции из NT папку можно найти в WinNT, Profiles, user, Start Menu, Programs, Startup.
8. Раздел load. Несколько подразделов реестра также могут автоматически запускать программы. Одно из таких тайных мест — параметр реестра load в подразделе HKEY_CURRENT_USERSoftwareMicrosoftWindowsNT CurrentVersionWindowsload.
7. Параметр Userinit. Параметр Userinit в разделе HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsNT CurrentVersionWinlogonUserinit также может инициировать запуск программ на этапе загрузки системы. Обычно данный параметр содержит значение userinit.exe, но он может принимать значения переменных, разделяемых запятыми, так что другие программы могут добавляться в конец записи.
6. Параметр ExplorerRun. В отличие от load и Userinit, параметр ExplorerRun находится в двух корневых разделах — HKEY_CURRENT_USER и HKEY_LOCAL_MACHINE. Полные названия подразделов с параметрами ExplorerRun: HKEY_CURRENT_USERSoftwareMicrosoftWindows CurrentVersionPoliciesExplorerRun и KEY_LOCAL_MACHINESOFTWAREMicrosoftWindows CurrentVersionPoliciesExplorerRun.
5. Параметр RunServicesOnce. Параметр RunServicesOnce предназначен для запуска служебных программ до того, как пользователь зарегистрируется в системе, и до того, как запустятся программы из других подразделов. Параметр RunServicesOnce вы найдете в подразделах HKEY_CURRENT_USERSoftwareMicrosoftWindows CurrentVersionRunServicesOnce и HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows CurrentVersionRunServicesOnce.
4. Параметр RunServices. Программы, перечисленные в RunServices, запускаются сразу после указанных в RunServicesOnce и до того, как пользователь зарегистрируется в системе. Параметр RunServices можно найти в подразделах HKEY_CURRENT_USERSoftwareMicrosoftWindows CurrentVersionRunServices и HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows CurrentVersionRunServices.
3. Параметр RunOnceSetup. Значение по умолчанию для RunOnceSetup определяет программы для запуска после регистрации пользователя. Параметр RunOnceSetup есть в корневых разделах HKEY_CURRENT_USER и HKEY_LOCAL_MACHINE. Полные названия подразделов: HKEY_CURRENT_USERSoftwareMicrosoftWindows CurrentVersionRunOnceSetup и HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows CurrentVersionRunOnceSetup.
2. Параметр RunOnce. Обычно параметр RunOnce используется для автоматического запуска программ различными средствами настройки. Этот параметр можно найти в подразделах HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows CurrentVersionRunOnce и HKEY_CURRENT_USERSoftwareMicrosoftWindows CurrentVersionRunOnce. Параметр RunOnce в корневом разделе HKEY_LOCAL_MACHINE запускает соответствующие программы непосредственно после регистрации пользователя и до того, как запустятся программы, указанные в других параметрах Run. Параметр RunOnce в корневом разделе HKEY_CURRENT_USER запускает программы после того, как операционная система обработает другие параметры Run и содержимое папки Startup. Работая в XP, можно также проверить параметр RunOnceEx в подразделе HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows CurrentVersionRunOnceEx.
1. Параметр Run. Несомненно, самое распространенное местоположение программ автозапуска — параметр Run, он находится в подразделе HKEY_CURRENT_USERSoftwareMicrosoftWindows CurrentVersionRun и в HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows CurrentVersionRun. Параметр Run в корневом разделе HKEY_LOCAL_MACHINE запускает программы непосредственно перед параметром Run в корневом разделе HKEY_CURRENT_USER, и указанные в обоих параметрах программы запускаются раньше, чем программы из папки Startup.
Цель автоматического запуска
Основной целью функции автоматического запуска является обеспечение отклика программного обеспечения на аппаратные действия, выполняемые на компьютере. Автоматический запуск предусматривает функции, указанные ниже.
•Двойной щелчок
•Контекстное меню
•Автозапуск
Эти функции обычно вызываются со сменного носителя или из общих сетевых папок. При автозапуске обрабатывается файл Autorun.inf со сменного носителя. Этот файл определяет, какие команды выполняет система. Многие компании используют эту функцию для запуска своих установщиков.
Вариант работы функций автозапуска и автозагрузки по умолчанию
Вариант работы функции автозапуска по умолчанию на компьютерах с системой Windows XP
Функция автозапуска начинает чтение носителя сразу же после его вставки в дисковод. Таким образом, файлы установки программ и находящиеся на аудиодисках музыкальные файлы запускаются сразу. До системы Windows XP с пакетом обновления 2 (SP2) функция автозапуска была по умолчанию отключена для съемных носителей (например, дисководов гибких дисков) и сетевых дисков. Однако для дисководов компакт-дисков она была по умолчанию включена. Начиная с системы Windows XP с пакетом обновления 2 (SP2), функция автозапуска включена и для съемных носителей, в том числе устройств ZIP и некоторых USB-накопителей. Автозапуск можно отключить для дисководов компакт-дисков, съемных носителей или сразу для всех дисководов (соответствующая процедура описана в этой статье).
Примечание. Необходимые параметры находятся как в папке «Конфигурация компьютера», так и в папке «Конфигурация пользователя». В случае конфликта параметров преимущество имеют параметры из папки «Конфигурация компьютера».
Вариант работы функции автозагрузки по умолчанию
Как правило, команды автозагрузки хранятся в файлах Autorun.inf. Эти команды выполняют автоматический запуск приложений, программ установки и других процедур. В версиях операционных систем Windows, предшествующих Windows Vista, при вставке носителя, содержащего команду Автозагрузка, система автоматически запускает программу без вмешательства пользователя. Поскольку при этом код может выполняться без ведома или согласия пользователя, из соображений безопасности пользователь может посчитать необходимым отключить эту функцию. Описанные в этой статье параметры конфигурации позволяют администраторам выборочно или полностью отключать возможности автозагрузки на компьютерах с системами Windows 2000, Windows XP, Windows Server 2003, Windows Vista и Windows Server 2008.
В операционных системах Windows Vista и Windows Server 2008 функция автозагрузки по умолчанию запрашивает у пользователя разрешение на выполнение команды Автозагрузка. Изменения этих параметров описаны далее в этой статье. Администратор может полностью отключить команды Автозагрузка или восстановить вариант работы функции автозагрузки, который использовался в системах, предшествовавших Windows Vista (автоматическое выполнение команды Автозагрузка). Если функция автозагрузки отключена или не настроена, системы Windows Vista и Windows Server 2008 запрашивают у пользователя разрешение на выполнение команды Автозагрузка.
Использование параметров групповой политики для отключения всех функций автозапуска в Windows Server 2008 или Windows Vista
Используйте любой из описанных ниже способов.
Способ 1
1.Нажмите кнопку ПускСвернуть это изображениеРазвернуть это изображение, введите Gpedit.msc в окне Начать поиск и нажмите клавишу ВВОД.
Свернуть это изображениеРазвернуть это изображениеПри получении запроса на ввод или подтверждение пароля администратора введите пароль или нажмите кнопку Разрешить.
2.В разделе Конфигурация компьютера последовательно разверните узлы Административные шаблоны, Компоненты Windows и Политики автозапуска.
3.В области Подробности дважды щелкните элемент Отключить автозапуск.
4.Щелкните элемент Включено, а затем выберите вариант Все диски в окне Отключить автозапуск, чтобы отключить автоматический запуск для всех дисков.
5.Перезагрузите компьютер.
Способ 2
1.Нажмите кнопку ПускСвернуть это изображениеРазвернуть это изображение, введите Gpedit.msc в окне Начать поиск и нажмите клавишу ВВОД.
Свернуть это изображениеРазвернуть это изображениеПри получении запроса на ввод или подтверждение пароля администратора введите пароль или нажмите кнопку Разрешить.
2.В разделе Конфигурация компьютера последовательно разверните узлы Административные шаблоны, Компоненты Windows и Политики автозапуска.
3.В области Подробности дважды щелкните элемент Вариант работы автозапуска по умолчанию.
4.Чтобы отключить автозапуск для всех дисководов, щелкните элемент Включено, а затем в поле Поведение автозапуска по умолчанию выберите элемент Не исполнять команды автозапуска.
5.Перезагрузите компьютер.
Использование параметров групповой политики для отключения всех функций автозапуска в ОС Windows Server 2003, Windows XP Professional или Windows 2000
1.Выберите в меню Пуск пункт Выполнить, введите Gpedit.msc в поле Открыть и нажмите кнопку ОК.
2.Последовательно разверните узлы Конфигурация компьютера, Административные шаблоны и Система.
3.В области Параметры щелкните правой кнопкой мыши элемент Отключить автозапуск и выберите пункт Свойства.
Примечание. В системе Windows 2000 параметр политики называется Отключить автозапуск.
4.Щелкните элемент Включено, а затем выберите вариант Все диски в окне Отключить автозапуск, чтобы отключить автоматический запуск для всех дисков.
5.Нажмите кнопку ОК, чтобы закрыть диалоговое окно Свойства выключения автозапуска.
6.Перезагрузите компьютер.
Включение и отключение всех функций автозапуска в Windows 7 и других операционных системах
Самостоятельное решение проблемы
Важно! В данный раздел, метод или задачу включены действия по изменению параметров реестра. Однако неправильное изменение параметров реестра может привести к возникновению серьезных проблем. Поэтому такие действия необходимо выполнять очень внимательно. Для дополнительной защиты нужно создать резервную копию реестра. Это позволит восстановить реестр при возникновении неполадок. Дополнительные сведения о создании резервной копии и восстановлении реестра см. в следующей статье базы знаний Майкрософт:
322756 (http://support.microsoft.com/kb/322756/ru/ ) Создание резервной копии, редактирование и восстановление реестра Windows XP и Windows Server 2003
Чтобы отключить функцию автозапуска самостоятельно в операционной системе без групповой политики Gpedit.msc, выполните указанные ниже действия.
1.В меню Пуск выберите пункт Выполнить, в поле Открыть введите команду regedit и нажмите кнопку ОК.
2.Найдите и выберите в реестре следующую запись:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer\NoDriveTypeAutorun
3.Щелкните правой кнопкой мыши параметр NoDriveTypeAutoRun и выберите команду Изменить.
4.Чтобы отключить все типы дисков, в поле Значение введите 0xFF. Или для выборочного отключения дисков введите другое значение, как описано в разделе «Выборочное отключение функций автозапуска».
5.Нажмите кнопку ОК и закройте редактор реестра.
6.Перезагрузите компьютер.