С этого вопроса я и решил начать «копать». Да, Dmb89 совершенно прав в разделении автозапуска на автозапуск и авто воспроизведение. Однако, после
изучения возможных команд файла
Autorun.inf видно, что автозапуск и авто воспроизведение используются в файле Autorun.inf (зачастую вместе) и самой системой при определении необходимого действия автозапуска. Команды файла
Autorun.inf open и shell – относятся к автозапуску, а вот
label, icon, shellexecute, блок [content] – к авто воспроизведению.
Поэтому перед MS стоял вопрос не просто отключить одну или две технологии, либо файл Autorun.inf . Необходимо было отключить части этих технологий, переплетающихся между собой, без ущерба для функционала и удобства использования. Сам файл Autorun.inf отключить можно без проблем. Но как тогда быть с автозапуском DVD с играми? Как быть с авто воспроизведением контента с носителей в нужное приложение?
Я решил проверить все сам. Опыты проводились на чистой Windows XP SP2 VLK. Для тестов на всех носителях были созданы файлы autorun.inf (
http://forum.oszone.net/post-757735-32.html ), файл иконки, исполняемый файл.
Код:
Hdd – раздел жесткого диска;
Usb - флэш диск;
CD – компакт диск;
Net – для каждого опыта заново подключался сетевой диск;*
* Сетевые диски:
Настройки контекстного меню кэшируются в неизвестном для меня месте (но не в реестре). Поэтому пункты автозапуска останутся даже после удаления файла Autorun.inf с этого диска до отсоединения (возможно просто кэшируются файлы). Значка из Autorun.inf я так и не дождался.
Все остальное на картинке:
Далее комментарии по номерам опытов.
1. Как видим отключение службы
ShellHWDetection (
Определение оборудования оболочки) вовсе не панацея, но что странно, автозапуск флэш дисков перестаёт обрабатыватся полностью. Остальные источники «отделываются» исчезновением иконок (по видимому служба отвечает и за иконки).
2.
NoDriveTypeAutorun наиболее известный параметр. На чистом SP2 этот параметр выставленный в 255 (0xff) отключил все виды автозапуска на всех источниках, кроме сетевого диска. Хотя на wikipedia
пишут:
Цитата:
|
Следует отметить, что запрет автозапуска при помощи вышеприведённого ключа реестра не устраняет опасности заражения компьютера. Это связано с тем, что значение ключа влияет только на исполнение autorun.inf при определении системой подключенного носителя, но не запрещает исполнение при двойном клике на значке носителя. Таким образом, даже если функция автозапуска отключена, заражение происходит при попытке пользователя открыть подключённый диск для просмотра. Компания Microsoft выпустила исправление, описанное в KB967715, полностью решающее данную проблему.
|
MS же
утверждает:
Цитата:
|
Обновления, о которых говорится в данной статье, устраняют проблему с отключением функций автозапуска. Без этих обновлений отключить функции автозапуска для сетевого диска невозможно. Кроме того, контекстное меню и функция двойного щелчка автозапуска не были бы отключены даже при выполнении указанных ранее инструкций.
|
ИМХО, в подчеркнутой фразе речь идет также о сетевых дисках.
Если я неправ поправьте !
3.
CancelAutoplay\Files *.* - данный параметр скорее всего служит для отключения
shellexecute и прочих проявлений авто воспроизведения.
4. Трюк с параметром
@SYS:DoesNotExist был описан
здесь
Автор метода подробно расписывает структуру ключа. Я уже
высказывал соображения по безопасности этого ключа. Хотя я не смог добиться запуска файлов из созданного мной раздела реестра
HKLM\Software\DoesNotExist это не означает, что такое не возможно. Лучше использовать придуманное самостоятельно название- так безопаснее. А работает также. Пример:
Код:
@SYS:ThisRegKey_NotExistToo
Результат опыта впечатляет – отключено все что можно отключить. Однако это не всегда применимо – ибо опять же, а как быть с автозапуском CD\DVD ?
5. Ответ MS – только автозапуск CD\DVD и останется ! Выпущенное обновление
KB971029 как утверждает производитель и как я убедился в очередном опыте – отключает автозапуск везде кроме привода CD\DVD.
Кажись вирусы использующие Autorun.inf приплыли.
6. Установка обновления
KB950582 (оно же
KB967715 оно же
KB953252) само по себе в автозапуске ничего не меняет, кроме добавления пары записей в реестре. Исправляется ситуация с невозможностью отключить автозапуск с сетевых дисков. Для включения / выключения этого режима создается параметр:
Код:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer
HonorAutorunSetting=[1/0]
Использовать это обновление предполагается в связке с параметром
NoDriveAutoRun=255, однако для использования в связке с
KB971029 (которая напомню не отключает CD) лучше параметр
NoDriveAutoRun выставить равным
223 – для возможности автозапуска только с CD.