Головкин, Гавриил Иванович
- 1 year ago
- 0
- 0
Автозапуск ( англ. autorun ) и автоматическое воспроизведение autoplay ), или управление томами ( англ. Volume Management ) — функция в некоторых операционных системах и средах, заключающаяся в автоматическом выполнении определённых операций при обнаружении вновь подключённого носителя данных или свежепримонтированной файловой системы.
При неосторожном использовании данная функция может быть опасна, так как злоумышленник может добиться запуска вредоносного ПО .
Функция автозапуска была введена в Windows 95, для упрощения установки программ не квалифицированными пользователями и для уменьшения количества звонков в службу поддержки. Когда записанный особым образом диск вставляли в привод, Windows определял наличие специального файла с инструкциями. Программное обеспечение записанное на диске, воспринимало инструкции как запуск к установке, на жесткий диск . Чтобы максимально увеличить вероятность установки программы на компьютер, те же самые действия происходили, если дважды нажать правой клавишей мыши в проводнике Windows по диску.
Автозапуск выполняется Проводником . В Windows 7 (и более ранних версиях) может быть выполнен добавлением ярлыка приложения в папку «автозагрузка» в меню «Пуск» . В Windows 8 такая возможность убрана, реализовано более сложным, но более функциональным способом — через утилиту Планировщик заданий (доступ к ней: экран «Пуск» > чудо-кнопка Параметры > Плитки > Показать средства администрирования > найти утилиту в списке приложений).
Со стороны файловой системы настраивается с помощью autorun.inf .
Автозапуск начинается, когда установлено новый носитель данных. Следующий шаг, уведомение пользователя об возможных действиях, которые можно сделать с носителем. После загрузки настроек с реестра, вы увидите окно в котором можно выполнить определенные действия. Если в носителе имеется файл autorun.inf , то дополнительные настройки считываются с него и выполняются дополнительные инструкции. Уведомление генерируется в соответствии с типом оборудования.
Когда устройство получает новый носитель с загрузочной записью, "Media Change Notification" генерирует событие. Операционная система сообщает о приложениях, которые можно использовать вместе с данным носителем. Если устройство изменило раздел (применительно для CD) или порт (USB) система генерирует широковещательное сообщение WM_DEVICECHANGE для всех окон верхнего уровня. ОС вызвает "базовое" уведомление. Окна верхнего уровня, это те окна, которые являются потомками рабочего стола .
Устройства без раздела, это те устройства, которые не имеют буквы в ярлыке "Мой компьютер". Они не обрабатываются автозапуском .
Когда проводник получает сообщение об изменении раздела, он производит следующие действия:
Во всех версиях Windows, до версии Windows XP , любой файл autorun.inf , на любом носителе загружался и инструкции из него выполнялись. Автозапуск не требовал никаких дополнительных действий от пользователя. Включительно DRIVE_REMOVABLE, DRIVE_FIXED и DRIVE_REMOTE типов носителей.
Автозапуск будет работать с сетевых носителей, если ему будет присвоена буква. Автозапуск будет работать и на дисководе, если в него будет вставлена дискета поддерживающая автозапуск.
По умолчанию в версиях Windows старше Windows XP отключена автозагрузка с сетевых и съемных носителей, на CD приводах и жестких дисках остается без изменений.
Автозапуск сверяется со значениями находящимися в реестре и в зависимости от них выполняет действия для каждого конкретного устройства. Эти настройки могут быть изменены несколькими методами, одна из них изменение групповой политики .
Приоритетными ключами считаются
NoDriveTypeAutoRun
и
NoDriveAutoRun
. Эти ключи обрабатываются перед запуском системы и перед входом пользователя в систему и описаны более подробно ниже.
Носители в реестре делятся на следующие типы:
Название типа | Значение | Описание |
---|---|---|
DRIVE_UNKNOWN | 0x00000000 | Носитель который не может быть определен (основной носитель) |
DRIVE_NO_ROOT_DIR | 0x00000001 | Поврежденный носитель (не смонтированный носитель) |
DRIVE_REMOVABLE | 0x00000002 | Съемный носитель (floppy диск, USB флешка) |
DRIVE_FIXED | 0x00000003 | Диск не может быть удален из устройства(жесткий диск/SSD) |
DRIVE_REMOTE | 0x00000004 | Сетевой диск |
DRIVE_CDROM | 0x00000005 | Носитель в CD-ROM, DVD-ROM или BD-ROM приводе |
DRIVE_RAMDISK | 0x00000006 | Носитель является RAM диском |
DRIVE_NOT_DETERMINED | 0x00000007 | Неопределенное устройство |
DRIVE_NOT_FOUND | 0x00000008 | Диск извлечен |
[RESERVED] | 0x00000009 | Зарезервирован для будущих технологий |
Ключи
NoDriveAutoRun
и
NoDriveTypeAutoRun
реестра могут существовать в двух разных местах, в настройках пользователя (HKEY_CURRENT_USER) и в настройках машины (HKEY_LOCAL_MACHINE). Если ключ имеется в HKEY_LOCAL_MACHINE тогда значение в HKEY_CURRENT_USER игнорируется. Их значнения не объединяются.
Когда решается вопрос об запуске автозагрузке значение обоих ключей
NoDriveAutoRun
и
NoDriveTypeAutoRun
принимается во внимание. Если в каждом из ключей говорится что нужно выключить автозагрузку, то она выключается.
Пример
HKEY_LOCAL_MACHINE | HKEY_CURRENT_USER | ||
---|---|---|---|
NoDriveAutoRun | NoDriveTypeAutoRun | NoDriveAutoRun | NoDriveTypeAutoRun |
|
|
|
|
здесь мы видим значения
NoDriveAutoRun
с 0x08, отключение носителя D и значение для
NoDriveTypeAutoRun
с 0x95, отключение съемных и сетевых дисков. Для каждого пользователя
NoDriveAutoRun
никогда не используется.
Автозагрузка в реестре представлена в нескольких местах:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
— программы, которые запускаются при входе в систему. Данный раздел отвечает за запуск программ для всех пользователей системы.
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce]
— программы, которые запускаются только один раз при входе пользователя в систему. После этого ключи программ автоматически удаляются из данного раздела реестра. Данный раздел отвечает за запуск программ для всех пользователей системы.
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx]
— программы, которые запускаются только один раз, когда загружается система. Этот раздел используется при инсталляции программ, например для запуска настроечных модулей. После этого ключи программ автоматически удаляются из данного раздела реестра. Данный раздел отвечает за запуск программ для всех пользователей системы.
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices]
— программы, которые загружаются при старте системы до входа пользователя в Windows.
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesOnce]
— программы отсюда загружаются только один раз, когда загружается система.
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
— программы, которые запускаются при входе текущего пользователя в систему
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce]
— программы, которые запускаются только один раз при входе текущего пользователя в систему. После этого ключи программ автоматически удаляются из данного раздела реестра.
Например, чтобы автоматически запускать Блокнот при входе текущего пользователя, открываем Редактор реестра (regedit.exe), переходим в раздел [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run] и добавляем следующий ключ:
"NOTEPAD.EXE"="C:\WINDOWS\System32\notepad.exe"
Только групповые политики оказывают воздействие на NoDriveTypeAutoRun настройки реестра. Настройки политики доступны для каждого пользователя или для каждой машины отдельно в специальных ветках реестра HKLM и HKCU Политика описана для машины имеет приоритет выше, чем политика пользователя.
Когда политика включена, групповые политики добавляют
NoDriveTypeAutoRun
запись в регистре. Если политика выключена или стоит флаг не сконфигурирован, тогда групповые политики удаляют запись из реестра машины и устанавливают по умолчанию политику пользователя. Тогда система по умолчанию будет действовать как в разделе параметра NoDriveTypeAutoRun.
Имя политик, их место расположения, настройки могут варьироваться в зависимости от системы.
Управление томами реализовано в файловом менеджере Thunar , который можно настроить, чтобы он выполнял: