Поставить на мониторинг ветку реестра hkcu software microsoft windows currentversion run

Обновлено: 03.07.2024

Всем привет. Я продолжаю рассказывать вам о том, какие опасности могут скрываться буквально под ближайшей ссылкой в гугле, и сегодня я поведаю о том, что нужно предпринять, если у вас возникают подозрения на заражение вашего компьютера какой-либо заразой. К сожалению, у меня одолжили блок питания моего ноутбука под Windows 7, потому скрины я представлю с Windows XP — но это некритично, ситуация схожая. Некоторые моменты могут не работать под Windows 8, и, быть может, я исправлю это недоразумение, описав её безопасность в одном из своих будущих блогов. Сам я ей не пользуюсь, но ради того, чтобы поделиться знаниями, я, возможно, поставлю её под виртуальной машиной. Прошу отписаться в комментариях, насколько это нужно.
Прежде чем я начну повествование, я дам ссылки на прошлые посты серии блогов о безопасности:
Блог первый, посвящённый возможным сценариям заражения вследствие неосторожности или незнания. Ориентирован на новичков.
Блог второй, о типах вредоносного ПО.

Итак, бывают ситуации, когда в мучениях от долгой загрузки Windows вы лезете в системный конфигуратор дабы посмотреть список программ, стартуемых при загрузке самой Windows. Так, «Пуск», «Выполнить. », msconfig , «Автозагрузка»… Это мне нужно, пусть загружается само, это тоже, это можно убрать… И тут мы видим это:


Непонятный exe'шник, непонятно откуда взявшийся и непонятно что делающий. Хотя в данном случае он ручной, пусть побудет тут для примера. ;)

И тут я сделаю небольшое отступление. С чего я решил, что это вредоносный файл, спросите вы? Дело в том, что это мой компьютер и я им управляю. Я говорю ему, что необходимо делать, а чего он делать не должен. И неизвестные процессы мне так или иначе не нужны. Вы — хозяин своей системы. Если вы не уверены в том, что это за процесс — посмотрите, к чему он относится.
Для примера возьмём со скрина выше файл igfxtray, расположенный в системном каталоге — Google подскажет, что это процесс драйвера Intel'овских интегрированных графических карт. Значит, ему можно доверять. А если мы погуглим, например, файл rundl132.exe, то узнаем, что это ПО класса MalWare. Обратите внимание на название: оно написано так, что его легко спутать по написанию с оригинальным системным файлом rundll32.exe, если бегло просматривать список процессов.


Ещё один пример, с системным файлом explorer.exe и фальшивкой, expl0rer.exe.

В Windows 7 в диспетчере задач есть полезная функция, отображение пути к образу исполняемой программы. Рекомендую воспользоваться, она очень полезна — например, в таких ситуациях:


Какой из процессов фальшивый? Оба имеют оригинальное название системного файла, оба занимают около 12-13 мегабайт и оба одновременно могут быть подлинными. Любопытствующим отвечу, что второй — фейк. Я сделал его для экспериментов и скринов — а если бы вместо него был бы вредоносный, как бы вы его различили? :)

Итак, вернёмся к тому странному файлу, что мы нашли в автозагрузке. Снимаем галку напротив него, идём в папку с файлом, сносим его и успокаиваемся? Как бы не так. Хорошо, если он вообще позволит себя удалить, будучи не запущенным и ничем не занятым. А что, если нет? И что, если антивирус спокойно дрыхнет себе в трее? Давайте разбираться. Первым делом обновим антивирусные базы (при условии, если вообще есть для чего их обновлять — если нет, можете скачать CureIt — это, по сути, одноразовая версия Dr.Web). Что, даже если натравить антивирус на этот файл, то он ничего не находит? В такой ситуации главное — не паниковать. Для начала отправьте подозрительный файл разработчику вашего антивируса (в самой программе должна быть эта функция), можете дождаться ответа. Но это может затянуться на длительное время. Пусть пока изучают, а мы попытаемся снести хулигана своими руками. Направляемся в диспетчер задач и отыскиваем там незванного гостя на вкладке процессов:


Нашли? Выделяйте наглеца и смело жмите на кнопку «завершить процесс».

Однако может случиться так, что через несколько секунд процесс запустится заново. И тут уж хоть затыкайте кнопку завершения процесса в диспетчере задач. Это означает, что работа основного процесса контролируется дополнительным — или вовсе службой. Кстати, иногда может помочь программа UnLocker — она выгружает процессы, которые препятствуют удалению того или иного файла, а если не получается — то попробует удалить его при перезагрузке Windows.

Если вы помните из прошлых постов серии понятие «руткит», то, возможно, вы уже задаётесь вопросом о эффекте его использования. Напомню, что руткит — это ПО для сокрытия в системе какого-либо процесса (-ов), файлов или элементов реестра. Так вот, если в системе активен так же руткит, привязанный к тому или иному паразиту, то процесса этого самого паразита в списке процессов и не будет. Опытный хакер/кракер/программист может в коде самой программы использовать хитрости для скрытия её процесса, не прибегая к помощи руткитов. Можно сказать, такая программа будет сама себя прятать. :) Так вот, скрыть процесс из диспетчера задач без руткита или буткита можно как минимум тремя способами (по крайней мере, столько знает ваш покорный слуга), и их эффективность, в общем-то, зависит от некоторых обстоятельств. Например, первый способ, довольно простой — организовать запуск программы от имени администратора. Ключевой момент заключается в том, что пользователь, не обладающий правами администратора, не сможет увидеть такой процесс в диспетчере задач. Эффективность стремится к нулю в домашних условиях, где пользователь обычно сидит под администраторской учётной записью (исключение — Linux, где сидеть под root'ом — дурной тон, но об этом в другой раз). Способ второй, самый распространённый, но требующий определённых знаний — использование WinAPI (Windows Application Programming Interface, интерфейс программирования приложений), а точнее, перехват его функций. Работа с API ОС Windows рассматривается при изучении, наверное, любого языка программирования, но уверенно работать с такими функциями может только опытный программист. Ну и третий способ — использовать системный процесс svchost.exe в качестве т.н. хост-процесса, то есть, управляющего. Сам по себе этот исполняемый файл необходим Windows для запуска и работы процессов из динамических библиотек (все, наверное, видели dll-файлы?). Третий способ может оказаться неэффективным в случае, если зараза сильно потребляет ресурсы компьютера — многие вирусы раскрываются именно из-за подозрений на процесс svchost.exe, постоянно жрущий слишком много памяти и нагружающий процессор до 50-70, а иногда и под 100 процентов.


svchost курильщика. Только гляньте на наглеца. Это явно ненормальное поведение для системного процесса. Будем избавляться.

При этом может использоваться подлинный svchost.exe, а может и поддельный (как уже описывалось выше на примере других системных файлов). Очень важный момент: svchost никогда и ни при каких условиях не запускается от имени обычного пользователя — за исключением вредоносной подделки.


svchost здорового человека компьютера. Вернее, Windows'а.

Итак, если зараза не использует для максировки системные процессы, первым делом нам нужно убрать её из списка автозагрузки. Это можно сделать при помощи системной утилиты msconfig, но мы пойдём другим путём — правкой реестра. Вызывается он через диалог «Выполнить» (Run), который можно найти в меню «Пуск» или же запустить сочетанием клавиш Windows и R. В появившемся окне вводим regedit и жмём Ok или Enter:





Правка реестра — занятие рискованное, если вы не будете соблюдать осторожность при работе с ним. Автор не несёт ответственности за удаление или модификацию ключей реестра, необходимых для нормальной работы Windows.

В реестре за автозагрузку отвечают несколько веток:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run — автозапуск для всех пользователей

HKEY_CURRENT_USER\SOFTWARE\Microsoft\CurrentVersion\Run — автозапуск для текущего пользователя

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce — разовый автозапуск, распространяется на всех пользователей. После перового выполнения автоматического старта этот ключ самостоятельно удаляется из реестра.

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce — аналогично для текущего пользователя.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx — разовый автозапуск программ, распространяется на всех пользователей. Отличие ветки RunOnce от RunOnceEx в том, что из первой ветки ключи удаляются автоматически сразу после запуска приложения из этого ключа, а во втором случае — после того, как выполнение программы будет завершено.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices — службы, запускаемые при старте Windows.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesOnce — сервисы для разовой загрузки.

Это основное. Дополнительно автозагрузка контролируется ветками
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SafeBoot
Первая ветвь содержит параметры загрузки дополнительных драйверов, служб и библиотек. Загрузка эта может выполняться, по сути, на любом этапе загрузки ОС. Вторая отвечает за старт драйверов, служб и библиотек в безопасном режиме.

Если вы нашли в этих ветках что-то подозрительное — можете спокойно это оттуда удалять без последствий для самой Windows. Исключение составляют, пожалуй, две последние ветки, куда без определённых знаний лучше не соваться.
Реестр и ключи автозагрузки позволят так же определить расположение заразы. Обычно это системные папки вроде \Windows
\Windows\system32
\WINDOWS\Temp
подпапки \Users\<USER>\AppData\ (для Windows Vista/7/8)
\Documents and Settings\<USER>\Application Data (для Windows XP)
\Documents and Settings\<USER>\Local Settings (опять же, XP)
\Documents and Settings\<USER>\Local Settings\Temp (снова XP)
Иногда встречаются в \RECYCLER , это папка «Корзины», но чаще она используется вредителями, использующими файл autorun.inf.

Открываете вы msconfig и отправляетесь на вкладку автозагрузки, или заходите в реестр, направляетесь в HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run , и видите там это:


Windows Explorer в ветке обычной автозагрузки реестра? Он же в автозагрузке msconfig? Сносите его оттуда нафиг. Настоящему explorer.exe не требуется использование автозагрузки, он загружается при старте Windows без этого ключа (о том, откуда он запускается, чуть ниже). К тому же оригинальный Windows Explorer располагается не в C:\Windows\System32, а просто в папке Windows.


Запомните, где располагаются основные системные файлы. Если сомневаетесь — погуглите, саппорт-портал Microsoft и Википедия содержат ответы на множество ваших вопросов. К тому же в интернете есть множество других технических ресурсов.

Ещё один нюанс, связанный с реестром. Взгляните на следующий скрин:


Это кусок списка ключей реестра, расположенного в ветке HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Winlogon . Эта же ветка есть и в разделе HKEY_LOCAL_MACHINE. Я не зря выделил ключ Shell, который в данном случае принимает значение Explorer.exe: читатель уже может догадаться (или уже знает :) ), что этот параметр отвечает за оболочку, которая будет использоваться при старте Windows. Настоятельно не рекомендую экспериментировать с этим параметром — дабы удовлетворить ваше любопытство, я сделаю это сам и покажу вам результат, к которому приводят его изменения.
Например, заменим значение этого пункта на cmd.exe:


Это изменение приведёт к тому, что при следующем входе в систему меня будет ждать не обычный графический режим Windows с его «Проводником» explorer.exe, а обычный запуск коммандной строки cmd.exe:



Никаких иконок на рабочем столе, никакой панели задач — потому что вместо explorer.exe мы попросили Windows загрузить cmd.exe. Картинка кликабельна.

И вот, что произойдёт при попытке воткнуть на место shell (оболочки) программу, которая вообще таковой не является (я прописал в соответствующий ключ обычный «Блокнот», то есть notepad.exe):


Тоже самое, никакой панели и иконок, только блокнот. Кликабельно.

К чему это я… А к тому, что на место оригинального «Проводника» Windows туда можно воткнуть модифицированный. Или вовсе не проводник, а, например, приложение-винлокер. Или рекламный баннер. Да вообще, что угодно. В случае, если у вас запускается нечто, отличное от стандартного «Проводника» и не даёт совершить никаких действий, загрузите какой-нибудь LiveCD (я настоятельно рекомендую Hiren's Boot CD) и проверьте эти ключи оттуда — если вместо Explorer.exe там стоит что-то другое или путь к фальшивому explorer.exe — смело можете жать двойным щелчком мыши по этому параметру и вместо того, что там написано, писать простое «explorer.exe», без кавычек. Не забывайте, что этот параметр есть как в HKEY_CURRENT_USER, так и в HKEY_LOCAL_MACHINE, причём второй вариант наиболее распространён в силу своей эффективности. Что до LiveCD, то загрузившись из него, вы можете скачать антивирус и просканировать свои файлы. Упомянутый мной Hiren's BCD содержит некоторые антивирусы в своём составе, однако базы там могут быть не самые свежие.
Иногда для диагностики и поиска заразы может потребоваться так называемый «Диагностический запуск». Активировать его можно при помощи того же msconfig 'а:


за неимением русской версии Windows этот скрин пришлось гуглить, чтобы было понятно, о чём речь.

Если и в таком режиме ОС не загружается должным образом, то поражены системные файлы, необходимые для базовой загрузки Windows.
Раньше я часто слышал от коллег, что в некоторых случаях может помочь восстановление системы, однако сам я не пробовал данный метод. Если кому помогало, прошу расписать в комментариях, в каком случае и как вас спасла данная функция Windows.

В данной статье описано, как разделы реестра Run, RunOnce, RunServices, RunServicesOnce и RunOnce\Setup связаны друг с другом и с папкой «Автозагрузка». Также в статье описывается порядок загрузки данных разделов.

Сведения, содержащиеся в этой статье, являются дополнением к следующей статье базы знаний Майкрософт:

137367 Назначение разделов «Run» системного реестра WindowsСм. в данной статье подробные сведения о каждом из этих разделов.

Дополнительная информация

В операционных системах Microsoft Windows 95, Windows 98 и Windows Millennium Edition (Me), в которых поддерживаются все разделы, данные разделы загружаются в следующем порядке:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnceЗа исключением раздела HKEY_LOCAL_MACHINE\. \RunOnce, все разделы и записи в них загружаются асинхронно. Таким образом, все записи в разделах RunServices и RunServicesOnce могут выполняться одновременно.

Записи раздела HKEY_LOCAL_MACHINE\. \RunOnce загружаются синхронно, в неопределенном порядке.

Поскольку раздел HKEY_LOCAL_MACHINE\. \RunOnce загружается синхронно, все его записи должны быть загружены до того, как загрузятся записи разделов HKEY_LOCAL_MACHINE\. \Run, HKEY_CURRENT_USER\. \Run, HKEY_CURRENT_USER\. \RunOnce и папки «Автозагрузка».

Разделы RunServicesOnce и RunServices загружаются до входа пользователя в систему Windows 95, Windows 98 или Windows Me. Поскольку эти два раздела запускаются неодновременно с диалоговым окном входа в систему, их запуск может продолжаться и после входа пользователя. Однако, поскольку раздел HKEY_LOCAL_MACHINE\. \RunOnce должен загружаться синхронно, его записи не начнут загружаться, пока не закончится загрузка разделов RunServicesOnce и RunServices.

Так как конфигурация системы может быть различной (например, компьютер может быть сконфигурирован на автоматический вход в систему), следует иметь в виду, что загрузка приложения, которое зависит от других приложений, выполняющихся по завершении загрузки данных разделов, начнется только после полной загрузки этих приложений. В остальном же приведенное выше описание относится также к Microsoft Windows NT 4.0, Windows 2000 и Windows XP.

Система Windows NT 3.51 не поддерживает разделы RunOnce.

При запуске Windows 2000 и Windows XP в безопасном режиме разделы RunOnce игнорируются.

Ссылки

Дополнительные сведения о разделе реестра RunOnceEx см. в следующей статье базы знаний Майкрософт:

232487 Описание раздела реестра RunOnceEx (эта ссылка может указывать на содержимое полностью или частично на английском языке)Дополнительные сведения см. также в следующей статье базы знаний Майкрософт:

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

Дело в том, что от большинства вредоносного ПО просто невозможно избавиться другим путём, ведь после удаления оно начнёт снова устанавливается при следующей загрузке. Однако, удаление определённых файлов из реестра позволит раз и навсегда решить проблему.

Где найти разделы реестра, отвечающие за автозагрузку?

« Выполнить » ( R+Win ) – regedit – клавиша Enter. Таким образом вы попадаете в редактор реестра.

Нас интересует папка Run , расположенная в левой части окна. У новичков может уйти достаточно много времени на её поиск, ведь они не знают, что она расположена по одному из следующих путей:

HKEY_LOCAL_MACHINE – Software – Microsoft – Windows – CurrentVersion - Run

HKEY_CURRENT_USER - Software – Microsoft –Windows – CurrentVersion – Run

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

Попав в нужную папку, вы увидите список файлов. Их имена, как правило, совпадают с названиями программ, загрузка которых и будет происходить при запуске системы. Если ваш компьютер был заражён вредоносным ПО, то здесь вы обнаружите массу названий, состоящих из букв и цифр, расположенных в случайном порядке. Убирайте их все без раздумий, даже если они представляются системными файлами.

Какие программы лучше не трогать?

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

Есть «хитрые» программы, которые мониторят наличие себя в реестре и добавляются снова в случае удаления. Советую перейти в настройки этого ПО и отключить подобную возможность. Стоит отметить, что аналогичную тактику, чаще всего, используют всякие назойливые бесполезные программы, появившиеся на вашем ПК лишь потому, что вы забыли убрать несколько «галочек» при установке.

Идея написания сводного руководства по самостоятельному обнаружению вирусов на станциях под управлением Windows зрела на протяжении достаточно длительного времени и обуславливалась, прежде всего необходимостью составить и время от времени дополнять справочник возможных расположений запуска вирусного кода. Лейтмотивом этой идеи является необходимость непосредственного, то есть самостоятельного (ручного) анализа системы в случаях, когда имеется подозрение, что автоматические методы (утилиты/антивирусы), не в состоянии обнаружить работающий в системе вредоносный код. Обнаружение вируса собственными силами - вот тот уровень, который не будет лишним для любого технического специалиста по операционным системам Windows. Хотелось бы сделать небольшое отступление и пару слов сказать на счет самих антивирусных продуктов. Надо заметить, что эти, самые надежные по мнению большинства, помощники в борьбе с вредоносным кодом, вообще-то не являются панацеей от заражения операционной системы. Повидавшая виды практика помнит случаи, когда грамотно написанный вредоносный код, учитывающий эвристические особенности определенных "региональных" антивирусов, долгое время оставался незамеченным на критически важных корпоративных системах. В этом то и заключается парадокс зараженной системы, в которой установлен авторитетный антивирус с актуальными антивирусными базами. Подобный курьез говорит о том, что если вирус использует хотя бы мало-мальски оригинальный код, методы маскировки, различные виды упаковок, алгоритмы противодействия, то антивирусу бывает сложно обнаружить его, либо он не может деактивировать и удалить уже находящийся и функционирующий в системе вредоносный код, и это не смотря на продвинутые методы контроля системы с перехватом различных системных вызовов и прочие виды глубокой системной интеграции. Подобных доводов можно привести множество, но все они сводятся к одному единственному выводу.

Невозможно обеспечить 100% антивирусную защиту автоматизированными средствами.

И именно в свете сего немаловажного обстоятельства, в критические моменты встает необходимость уметь собственноручно обнаруживать и удалять вредоносный код, и именно поэтому данная статья будет посвящена изложению методов обнаружения без использования каких-либо антивирусных средств, исключением у нас будут, разве что, небольшие сопутствующие утилиты.
"Все течет, все меняется" (© Гераклит), и операционные системы из этого постулата, конечно же, не исключение. На протяжении всей истории развития операционных систем Windows, идет их постоянное видоизменение, одни системные механизмы перестают эксплуатироваться, долгое время присутствуя в системе в виде рудиментов совместимости и в последствии исчезая, другие же появляются. Происходит бесконечное движение, вирусописатели подстраиваются под эволюционирующую среду, переписывая код, использующий устаревающие механизмы, начинают искать и эксплуатировать другие, обретающие актуальность. Учитывая меняющиеся от версии к версии особенности операционных систем и достаточно большое количество потенциальных точек активации вредоносного кода, статья эта никогда не будет завершена полностью и конечно же не будет претендовать на полное руководство по выбранной тематике. Однако, по мере получения новых знаний, будет время от времени мною дорабатываться в бесконечной попытке соответствовать современным реалиям.
Перед тем как мы начнем работать с довольно сложной темой под названием обнаружение вируса, хотелось бы отдельно сказать вот еще о чем.

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

Дело в том, что с момента зарождения эры компьютерных вирусов, специалистами по безопасности было введено в оборот такое великое многообразие терминов и определений, что классификация в рамках небольшой статьи выглядела бы, откровенно говоря, излишней, учитывая и тот факт, что в свете характера статьи для нас фактически не так уж и важно, как зовется та или иная разновидность вредоносного кода. В разнообразных материалах, посвященных теме компьютерных вирусов, встречаются оригинальные определения, специалисты по безопасности называют программное обеспечение, которое выполняет деструктивные действия различными именами. На заре операционной системы MS-DOS вирусами называли программы, которые реплицировали собственный код в обнаруживаемые исполняемые модули и загрузочный сектор. С появлением линейки операционных систем Windows, вредоносный код обрел истинное многообразие, на свет появилось большое количество всевозможных алгоритмических отклонений, таких как руткиты (rootkit), трояны (troyan), шпионы (spyware), рекламные программы (adware), вымогатели (ransomware), сетевые черви (worms) и прочее, прочее, прочее. И все эти вариации на вирусную тему имеют различное предназначение. Часто термины ассоциируются неправильно, и вещи называются не своими именами, в дополнение, ко всему этому многообразию применяются второстепенные термины, такие как вредоносный код, зловред, вредонос. Поэтому, дабы не вводить читателя в заблуждение, я буду использовать определение "вирус" применительно к любому вредоносному коду, поэтому встречая в тексте термин вирус, подразумеваем любой вид вредоносного кода.
По каким косвенным признакам пользователь может обнаружить вирус в операционной системе? Дело в том, что какого-то единого, вполне определенного и однозначного симптома заражения системы вирусом не существует, однако общими следствиями вирусной активности могут быть:

  • Низкая производительность операционной системы;
  • Низкая производительность отдельных приложений;
  • Часто возникающие ошибки в приложениях;
  • Отображение посторонних информационных окон;
  • Блокировка рабочего стола пользователя различными информационными окнами;
  • Блокировка страницы (вкладки) браузера различными информационными окнами;
  • Блокировка доступа к определенным ресурсам в сети Интернет (например, к сайтам антивирусных лабораторий);
  • Автоматический запуск разнообразных программ;
  • Отказ в изменении некоторых настроек операционной системы (даже под учетной записью локального администратора);
  • Загруженная сеть, наличие интенсивного трафика на интерфейсах в моменты бездействия;
  • Иная подозрительная (отклоненная от штатной) активность операционной системы;

Внимательно изучив описанные выше первичные признаки, можно сделать однозначный вывод что зачастую довольно сложно отличить вирусную активность от типовых сбоев, вызванных аппаратными и программными проблемами. Обычно в случае подозрения на аномальную активность, пользователь прибегает к помощи антивирусов, но что же делать ему в ситуации, когда работающий антивирус при сканировании не может детектировать в системе никакой вирусной активности, а "глюки" сохраняются и подозрение на вирус остается?! В этом случае можно попробовать переустановить операционную систему, выбор безусловно за вами, но в этом случае вы теряете уникальную возможность саморазвития, не получаете дополнительных знаний по компьютерным вирусам, исключаете возможность обнаружить новые виды вирусной активности. Может все же стоит попробовать "пройтись по системе" самостоятельно с целью обнаружения вируса, изучив возможные местоположения запуска и модификации? Хорошо, для начала требуется усвоить одно простое правильно:

Компьютерный вирус - код, способный (несанкционированно, без ведома пользователя) копировать самого себя в любом доступном виде, модифицируя требуемым образом различные системные области: регионы виртуальной памяти, системный реестр, загрузочный сектор диска/раздела, файловую систему. Может содержать деструктивную нагрузку.
  • Запуститься в обычном режиме загрузки под учетной записью с правами локального администратора.
  • Загрузиться в защищенный режим; Большинство вирусов в защищенном режиме не запускаются.
  • Загрузиться с внешнего диска LiveCD, содержащего среду Windows PE (Portable Executable), в состав которой входят средства работы с физическими секторами диска, файловой системой и системным реестром.

Сокращения, используемые далее в данной статье:

Сокращение Полное наименование
HKCR HKEY_CLASSES_ROOT
HKCU HKEY_CURRENT_USER
HKLM HKEY_LOCAL_MACHINE
HCU HKEY_USERS

В статье я постарался свести максимальное количество известных мне методов загрузки вирусов в операционной системе Windows.

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

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

Автозагрузка в реестре

Индивидуальные пути Windows 98/98SE/ME:

  • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices
  • HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices
  • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesOnce
  • HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesOnce
  • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx

Индивидуальные пути Windows XP:

  • HKCU\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\Run

Автозагрузка групповой политики (в реестре)

В системе присутствуют ключи реестра, которые используются для загрузки программ как части групповой политики компьютера/пользователя. Если политики не заданы, что обычно имеет место быть в случае типовой домашней станции, то подраздел пуст. Записи в нем создаются только по определенным условиям, например при использовании локальной или доменной групповой политики для загрузки программ. Программы из списка автозагрузки с использованием групповой политики не отображаются во вкладке Автозагрузка в утилите msconfig.exe , могу предположить что и другие менеджеры автозагрузки могут не отображать эти записи, по этой то причине с целью обнаружения вируса, стоит заглянуть непосредственно в следующие ключи реестра:

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

Автозагрузка в файловой системе

Однако, автозагрузка вовсе не ограничивается ключами реестра. Как мы все прекрасно знаем, в Windows существует еще один (пожалуй основной) способ автоматически загрузить программу при старте операционной системы. В интерфейсе пользователя присутствует раздел Автозагрузка, который аккумулирует списки программ из специализированных расположений в файловой системе: каталогов с именем Startup в профиле конкретного пользователя и профиле пользователя по-умолчанию. Помещая в это расположение ярлык программы либо непосредственно саму программу, можно легко добиться автозагрузки программы на стадии запуска. Меня всегда вот удивляло, почему нельзя универсализировать механизмы реестровой автозагрузки и пользовательской и объединить их? Почему в Windows присутствует именно несколько различных методов загрузки, мало того, что представлены специальные ветви реестра, так еще и предоставили каталоги? Немного поразмыслив, понял, что механизм с реестром позиционируется как "системный", а механизм с автозагрузкой в качестве "пользовательского", чтобы пользователю можно было тривиально, в два клика обеспечить своему приложению автозапуск. Представляете ситуацию объединения этих механизмов.. неподготовленный (рядовой) пользователь получал бы возможность видеть все специализированные утилиты, которые загружаются через реестр и мог бы (не)преднамеренно просто их поудалять. К тому же, не каждая программа способна загрузиться посредством записи в ключах реестра.
Конечно же, и этот механизм не смог обойтись без внимания вирусописателей, и некоторые вирусы используют механизм автозагрузки из каталога для добавления исполняемых модулей при первичном получении управления собственным кодом. Поэтому специалисту не лишним будет проверить следующие местоположения:

Версия Размещение
Windows Vista/7 Для текущего пользователя: %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup
Для всех пользователей системы: %ProgramData%\Microsoft\Windows\Start Menu\Programs\Startup
Windows 2000/XP Для текущего пользователя: %UserProfile%\Start Menu\Programs\Startup
Для всех пользователей системы: %AllUsersProfile%\Start Menu\Programs\Startup

Однако описанные местоположения могут быть изменены через ключи реестра.
Для всех пользователей системы:

  • ключ HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders ,
    параметр Common Startup = %ProgramData%\Microsoft\Windows\Start Menu\Programs\Startup

Для текущего пользователя системы:

  • ключ HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders ,
    параметр Startup = %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

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

Загрузка на ранних стадиях

По задумке разработчиков некоторые сервисные утилиты, к примеру дефрагментаторы, программы проверки дисков, антивирусные сканеры, должны запускаться на раннем этапе процесса загрузки Windows, когда стартовали драйвера этапа загрузки (тип BOOT_START ) и этапа системы (тип SYSTEM_START ), но еще не инициализирован файл подкачки, переменные среды и не запущены некоторые подсистемы. В данной точке Диспетчер сеансов (Session Manager, smss.exe ) только начинает разбирать переменные окружения пользовательского режима, поэтому никаких других процессов, понятное дело, еще не запущено. Однако, на данном этапе возможен запуск специально написанных образов, поддерживающих нативный (native) режим (использующих функции Native API).
Загрузка через Диспетчер сеансов настраивается в ключе реестра:

  • ключ HKLM\System\CurrentControlSet\Control\Session Manager ,
    параметр BootExecute = autocheck autochk *

Если в данном параметре Вы обнаружили дополнительные образы загрузки, присмотритесь к ним внимательнее, а что если это вирус? Только не удаляйте значение по умолчанию (autocheck autochk *), оно указывает на запуск утилиты проверки диска autochk с модификатором autocheck , которая проверяет значение грязного бита (dirty bit), сообщающего о необходимости проверки раздела диска на наличие ошибок.

Читайте также: