Автозагрузка в windows 2000

Многие сталкивались с порно баннерами, блокирующими экран, кому то необходимо прописать запуск программ без полной загрузки системы, а кто то просто хочет самостоятельно проверить компьютер на наличие разных лишних программ в автозапуске, которые сразу и не видны. Этому и посвящена статья ниже.

Утилита системной конфигурации 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\Setup и RunServicesOnce в этой программе не отображается. Чуть больше возможностей дают аналогичные утилиты от сторонних производителей, например, достаточно известная программа 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, RunServices, RunServicesOnce. Располагаться они могут в следующих разделах реестра, в зависимости от того, в каком контексте производится авто­запуск:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\
HKEY_USERS\.DEFAULT\SOFTWARE\Microsoft\Windows\CurrentVersion\
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\

В том случае, если в Windows 9x зарегистрирован только один пользователь, то содержание раздела HKEY_USERS\.DEFAULT дублирует раздел HKEY_CURRENT_USER, в Windows 2000/XP содержимое этих двух корневых разделов не идентично. Полный путь к этим параметрам может выглядеть, например, таким образом:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

То есть, для того, чтобы просмотреть авто­загрузку, в каждом из корневых разделов реестра следует открыть ветвь SOFTWARE\Microsoft\Windows\CurrentVersion и найти выше­пере­чис­ленные подразделы RUN* (можно, например, восполь­зоваться встроенным механизмом поиска редактора реестра). Каждый из этих подразделов может содержать довольно длинный перечень строковых параметров (порядок запуска приложений, расположенных в одном подразделе, обычно соответствует расположению по алфавиту имён этих параметров), значением которых являются пути к программам, которые и надо загрузить на старте Windows. Эти пути могут содержать длинные имена и пробелы.

Первыми при загрузке системы обраба­тываются параметры RUN* из раздела HKEY_LOCAL_MACHINE, причём ключи RunServices и RunServicesOnce обраба­тываются раньше, чем Run и RunOnce. Программы из подразделов RunServices и RunServicesOnce запускаются ещё до входа пользователя в систему в так называемом асинхронном режиме, независимо от запуска других программ и от процесса регистрации пользователя в системе. Подразделы RunServicesOnce и RunOnce служат для одно­кратного запуска программ, и их содержимое очищается непосредственно перед самой загрузкой программ, указанных в этих разделах (раздел реестра RunOnce не поддерживается в Windows NT 3.5).

Специальные разделы RunOnceEx отличаются от разделов RunOnce и Run. Эти разделы несколько запутанным способом позволяют запускать программы в заранее определённом порядке, последовательно. Напрямую параметры, расположенные в разделе RunOnceEx, не запускаются. Внутри раздела RunOnceEx для авто­мати­чески запускаемых с его помощью программ создаётся дополнительный подраздел, в котором уже и указываются параметры с именами приложений и путями к исполнимым файлам. При этом подразделы внутри RunOnceEx обраба­тываются системой в алфавитном порядке, что и позволяет задать порядок запуска приложений или групп приложений, что может быть крайне важно при инсталляции некоторых программ. При обработке такого списка программ система (формат записи этих параметров несколько отличается, например: "program"="||program.exe" или "print_test_page"="msprint2.dll|RUNDLL_PrintTestPage|") будет ожидать завершения работы каждого элемента списка и только после этого произведёт запуск следующего, стоящего в очереди.

Кроме того, в подразделе реестра RunOnce может содержаться специальный раздел Setup, используемый при установке компонентов Windows либо некоторых прикладных программ. Параметры внутри этого раздела обраба­тываются системой так же, как и обычные параметры раздела RunOnce — то есть происходит однократный запуск указанных в них программ, однако в ходе этого запуска отображается индикатор (в его диалоговом окне указано имя соответствующего параметра из раздела Setup) с прогресс-баром, то есть показывается, на сколько процентов завершено копирование файлов устанавливаемой программы.

После обработки раздела HKEY_LOCAL_MACHINE приходит черёд аналогичной обработки общего для всех пользователей много­поль­зова­тельских конфигураций раздела HKEY_USERS\.DEFAULT, а после регистрации пользователя в системе — раздела HKEY_CURRENT_USER.

В последних версиях Windows — Me, 2000 и XP появились новые разделы для авто­загрузки программ:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run

Особенность этих разделов заключается в том, что имена параметров, прописанных в них, должны быть представлены в виде порядковых номеров, начиная с единицы.

Также после регистрации пользователя в системе происходит запуск программ, ярлыки к которым помещены в папку «Авто­загрузка» меню «Пуск». Следует учитывать, что для текущего пользователя реальное местоположение на диске этой папки с ярлыками может быть изменено с помощью программы типа Tweak UI [2] либо вручную путём изменения значения параметра Startup в разделе реестра

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders

По умолчанию же ярлыки авто­запуска текущего пользователя располагаются в папке \WINDOWS\Start Menu\Programs\StartUp для Windows 9x, либо \Documents and Settings\ИМЯ ПОЛЬЗОВАТЕЛЯ\Start Menu\Programs\Startup для Windows XP (путь этот также задан в реестре — параметр Startup раздела HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders).

Кроме этой папки ярлыки авто­мати­чески запускаемых программ могут располагаться и в папке, общей для всех пользователей много­поль­зова­тельской конфигурации. В Windows XP это папка \Documents and Settings\All Users\Start Menu\Programs\Startup, а в Windows 9x — \WINDOWS\All Users\Start Menu\Programs\StartUp (путь к этой папке тоже может быть изменен в реестре — параметр Common Startup раздела HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders). Эти папки обраба­тываются даже в одно­поль­зова­тельских конфигурациях, а параметры Startup и Common Startup в ряде случаев могут находиться и в других разделах реестра, поэтому при поиске способа запуска какой-либо программы необходимо произвести поиск этих параметров по всему реестру.

Специфика 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".

Надо обратить внимание, что в разделе

HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\AppInit_DLLs

могут быть указаны DLL-файлы, которые, являясь, по сути, исполнимыми модулями, будут запускаться при загрузке, не отображаясь при этом в диспетчере задач.

Помимо этого предусмотрена возможность авто­мати­ческого запуска сторонних программ вместе с запуском командного процессора CMD.EXE — эти программы задаются в специальных разделах реестра

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun

Неявные способы авто­загрузки

К сожалению, операционные системы семейства 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_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\Browser Helper Objects

Подозрительные или явно зловредные BHO можно удалить из этого списка (желательно предварительно сделать резервную копию реестра) — это их полностью дезактивирует. Например, если в этом разделе вы обнаружите подраздел

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\Browser Helper Objects\{A5366673-E8CA-11D3-9CD9-0090271D075B}

то произведите поиск во всём реестре найденного идентификатора BHO — {A5366673-E8CA-11D3-9CD9-0090271D075B} — обнаружите его упоминание также и в разделе

HKEY_CLASSES_ROOT\CLSID\{A5366673-E8CA-11D3-9CD9-0090271D075B}

Просмотрите всё содержимое найденного раздела, чтобы определить, к какой программе относится этот BHO — в данном случае вы найдёте такую запись:

HKEY_CLASSES_ROOT\CLSID\{A5366673-E8CA-11D3-9CD9-0090271D075B}\InprocServer32
@="C:\PROGRAM FILES\FLASHGET\JCCATCH.DLL"

из которой можно сделать вывод, что обнаруженный BHO создан программой FlashGet и никакой угрозы не представляет. Если же обнаружится упоминание DLL-библиотеки непонятного происхождения (например, в свойствах этого файла нет никаких данных о его разработчике), то попробуйте удалить в реестре все упоминания данного BHO — скорее всего, именно он и является причиной неприятностей. Удобнее же всего для поиска и идентификации установленных BHO использовать специально для этого пред­на­зна­ченные программы, такие как BHODemon [8] или BHOCaptor [9]), которые выдадут всю информацию об установленных модулях BHO и помогут деактивировать подозрительные модули.

Конечно, существуют и другие способы загрузить программный код без ведома пользователя, например, с помощью плагина какой-либо программы, хотя бы того же Internet Explorer. Файлы подключаемых модулей-плагинов IE находятся в папке \PROGRAM FILES\INTERNET EXPLORER\PLUGINS — по свойствам каждого файла можно выяснить его пред­на­значение. Не исключено также, что зловредная программа пропишет себя в системе как системный драйвер или сервис, одним словом — борьба с вирусами или другими, запускающимися без ведома пользователя программами весьма и весьма непроста. А самый лучший способ помочь самому себе в этой борьбе — постоянный мониторинг состояния файлов на диске, реестра и конфигурационных файлов с помощью хорошего деинсталлятора. Только так вы получите реальную картину того, что пишется на диск и в реестр при установке новых программ или при посещении находящихся на отшибе Всемирной Сети веб-сайтов. Догадайтесь с трёх раз, какой деинсталлятор я использую? Конечно, 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.Перезагрузите компьютер.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Intel wifi 6 ax201 160mhz драйвер для windows 11
  • Macrium reflect клонирование windows
  • Easy idea wifi адаптер драйвер windows 7
  • Регулирование энергопотребления windows 10
  • Chrome skachat dlya kompyuter windows 10