Реестр windows currentversion run

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

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

Когда-то централизованные контейнеры для хранения данных об автоматически загружающихся сервисах и приложениях, в Windows 7 децентрализовались и разбрелись по углам, усложнив управление автозагрузкой. А в реестре 64-битной версии Windows они и вовсе поразбежались по разделам, связанным с битностью системы. Впрочем, пройдемся по порядку.

1. В 32-битных Windows раздел, в котором хранились данные о программах, запускаемых при регистрации в системе для всех пользователей компьютера, хранился в HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run. В Windows 7 x86-64 этот путь углубился на один уровень, и теперь инстанс располагается в HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run. При этом ПО, разработанное под платформу x86, запускается из него же. Не спрашивайте, почему. Мы все равно не знаем.

2. Привычный раздел, служащий для однократного (с последующим автоматическим удалением) запуска программ при регистрации пользователей в системе тоже переехал из HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce в HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\RunOnce. Логично.

3. Помните раздел HKLU\Software\Microsoft\Windows\CurrentVersion\Run, который служил для запуска программ при регистрации текущего пользователя в системе? Из предыдущих двух пунктов сделали вывод, что он тоже перебрался в инстанс Wow6432Node? Как бы не так, изменения не были реализованы настолько системно и однообразно. Инстанс остался на своем месте, с той же функциональностью. Вспоминается детская шутка-загадка, в которой предлагалось сперва угадать домашнее животное на букву «К» из 4 букв (отгадка — Клоп), потом — домашнее животное на букву «Д» (отгадка — Два клопа), а потом животное на букву «Т» (обычно угадывающий сразу же восклицал «Три клопа!», на что ему степенно возражали «Нет, Таракан!»). У Microsoft тоже есть чувство юмора, не правда ли?

4. Тоже самое касается для раздела под однократный запуск для текущего пользователя с последующим удалением: он остался в HKLU\Software\Microsoft\Windows\CurrentVersion\RunOnce.

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

«Автозагрузка в реестре». Во-первых, надо узнать, как Windows распознает программы, которые необходимо включать при запуске. Есть три места, где данные хранятся: меню «Пуск» папка «Автозагрузка», реестр и «win.ini» файл. Ну, с запуском ясно — это самый простой и самый доступный вариант, но на реестре и на самом «win.ini» стоит остановиться более подробно.

AutoRuns

Автозагрузка через win.ini

Давайте начнем с файла. Хотя Microsoft и настоятельно рекомендует разработчикам хранить все свои настройки в реестре, тем самым отказываясь от файлов INI, заверяя пользователя, что они сохраняются только для совместимости со старыми утилитами, однако, продолжают использовать их сами. Сам файл находится в директории, где установлена ОС. Откройте его простым блокнотом. В самом начале файла раздел под названием [Windows]. Там есть два параметра, которые отвечают за автоматическую загрузку программного обеспечения – «загрузить и запустить». Обычно они пустые, но если есть какие-то записи, не забудьте проверить, что софт работает.

С «win.ini» все намного проще – там имеется только одно интересное для нас место. С реестром куда более сложнее. Там существует уже гораздо больше места, где могут скрываться софты — злоумышленники. Таким образом, открываем наш реестр и начинаем кропотливые поиски.

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

Во-первых, раздел, который надо просмотреть в первую очередь, это: «HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion». Найти, там вот такие подразделы Run, RunOnceEx, RunOnce, «RunServicesOnce», «RunServices». В этих разделах имеются ключи (некоторые разделы вообще пустые), которые отвечают за запуск при загрузке. Название ключа может быть совершенно разным, по умолчанию в значении у них указывается программа, которая будет запущена при включении ОС. Обратить нужно взор на разделы, у которых в названии есть английское слово «Once». В этом разделе, располагаются программы, включение которых должно быть выполнено только однажды. Например, после установки каких-либо программ, большинство из них из них записывают туда свои ключи, которые указывают на любую конфигурацию модулей, и запускаются сразу после системной перезагрузки. Такие ключи после запуска автоматически удаляются.
Но это не самый единственный раздел, где происходит запуск. Обратимся теперь к другой разделу: «HKEY_CURRENT_USER», там нужно будет открыть раздел «SOFTWARE Microsoft Windows CurrentVersion». Вот здесь имеются только два подраздела, которые отвечают за него: RunOnce и RUN. Изначально они будут пусты, так как все записи сделаны другими утилитами.

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

Имейте в виду, что из самого реестра, запуск программ идет в первую очередь, потом уже из «win.ini» и последняя очередь за «Автозагрузкой». Так что если у Вас запущен на компьютере антивирус, то это не факт, что он найдет и удалит троян, потому что вирусы значительно меньше, чем размер файла и грузятся они намного быстрее.

Читайте также:  Linux postgresql create user

Заключение

Вот, пожалуй, и все про запуски программ в Windows. Если Вы хотите ускорить загрузку компьютера, удалите все лишнее и ненужное из вышеупомянутых разделов. А при установке какой-то подозрительной программы или при загрузке неизвестного файла, проверьте, добавилось ли что-то лишнее. Слишком много в последнее время расплодилось «всякого рода» троянов и слишком широкая масса пользователей может их случайным образом «подцепить». Так что дополнительная осторожность никогда не помешает.

Обнаружение вируса

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

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

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

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

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

Большинство вирусов рассчитаны на многократное исполнение, поэтому обычно оставляют свою копию в файловой системе в виде отдельного файла (группы файлов), с целью в дальнейшем иметь возможность запускаться многократно в автоматическом режиме. Применительно к операционной системе Windows, вирус представляется обычно в виде отдельного файла с расширением, идентифицирующим исполняемый различными подсистемами операционной системы код, вот некоторые из этих расширений: .exe , .dll , .sys , .ocx , .js , .ps1 , .wht , .com , .bat , .vbs и прч. Некоторые вирусы, активизирующиеся в системе, не оставляют свои запускаемые копии, а просто проводят модификации определенных ключей реестра или ключевых конфигурационных файлов с целью решения собственных задач. Следуя этой логике, в целях обнаружения вируса, мы будем искать наличие подозрительных данных в физических секторах диска, файловой системе, реестре и оперативной памяти. Но ведь не придется же нам парсить полностью все эти компоненты в поисках вирусного кода? Хотя идея и неплоха 🙂 но конечно же нет, мы будем пытаться обнаружить вирус в строго предопределенных местах: в тех расположениях в операционной системе, откуда, по задумке разработчиков, средствами самой системы могут запускаться различные исполняемые модули и где могут находиться важные для системы данные в виде файлов конфигурации различного назначения. Не лишним будет и умение отличать вирусный код от легального, знание о том, какие именно данные являются вполне безобидными, а какие из них подозрительны, то есть с большой вероятностью могут представлять вредоносный код.
Еще одним немаловажным аспектом является наличие сторонней среды, то есть операционной системы, заведомо чистой от различного рода вирусов. Делается это с тем расчетом, что некоторые особо продвинутые вирусы могут маскировать свою активность в системе, перехватывая вызовы различных функций Windows API. Поэтому, с целью получения чистой тестовой среды, мы можем:

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

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

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

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

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

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

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

  • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
    Определяет общесистемную ветку реестра, содержащую записи о программам, запускаемых при входе в систему любого пользователя.
  • HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
    Определяет пользовательскую ветку реестра, содержащую записи о программах, запускаемых при входе в систему конкретного пользователя.
  • HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run
    Определяет общесистемную ветку реестра, содержащую записи о 32-битных программах, загружаемых при входе в 64-битную систему любого пользователя.
  • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
    Определяет общесистемную ветку реестра, содержащие записи о программам, запускаемых при входе в систему разово, то есть единожды. После единственного запуска ключи программ автоматически удаляются операционной системой из данного раздела.
  • HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
    Определяет ветку реестра конкретного пользователя, содержащую записи о программах, запускаемых при входе в систему конкретного пользователя разово, то есть единожды. После единственного запуска ключи программ автоматически удаляются операционной системой из данного раздела.
  • HKEY_USERS\ SID_пользователя \Software\Microsoft\Windows\CurrentVersion\Run
    Содержит копию основной ветви автозагрузки для пользователя системы, определяемого конкретным SID-идентификатором. Например HKEY_USERS\ S-1-5-21-792320725-696519568-570327587-7793 \Software\Microsoft\Windows\CurrentVersion\Run . Если Вы проверяете систему из защищенного режима, либо с LiveCD, то не поленитесь проверить данный раздел для SID пользователя, который, предположительно, подхватил заразу.
Читайте также:  Агрегирование каналов без bgp linux

Индивидуальные пути 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:

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

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

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

Однако, автозагрузка вовсе не ограничивается ключами реестра. Как мы все прекрасно знаем, в 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), сообщающего о необходимости проверки раздела диска на наличие ошибок.

Оцените статью