Autorun.inf

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Autorun.inf — файл, используемый для автоматического запуска или установки приложений и программ на носителях информации в среде операционной системы Microsoft Windows (начиная с версии Windows 95). Этот файл должен находиться в корневом каталоге файловой системы устройства, для которого осуществляется автозапуск. Файл делится на структурные элементы — блоки. Название блоков пишется в квадратных скобках. Описание блоков содержит пары параметр→значение.

Исходное предназначение[править | править исходный текст]

Автоматический запуск приложения позволил чрезвычайно упростить действия пользователя при установке и запуске программного обеспечения и драйверов устройств.[1]

Защита от копирования[править | править исходный текст]

Кроме того, некоторые фирмы, производящие диски с аудиосодержимым, пытались применить данную технологию для защиты содержимого дисков от копирования, путём автозапуска программы, препятствующей копированию. Однако известен случай поведения данной программы как руткита.[2]

Безопасность[править | править исходный текст]

В настоящее время файл autorun.inf широко используется для распространения компьютерных вирусов через flash-накопители и сетевые диски. Для этого авторы вирусов прописывают имя исполняемого файла с вредоносным кодом в параметр open. При подключении заражённого flash-накопителя Windows запускает записанный в параметре «open» файл на исполнение, в результате чего происходит заражение компьютера.

Находящийся в оперативной памяти заражённого компьютера вирус периодически сканирует систему с целью поиска новых дисков, и при их обнаружении (при подключении другого flash-накопителя или сетевого диска) создаёт на них со ссылкой на копию своего исполняемого файла, обеспечивая таким образом своё дальнейшее распространение.

Вирус также часто делает файлы и папки на съёмном диске (флешке, дискете) невидимыми, используя команду attrib. Вместо них он часто создаёт ярлыки с именами файлов и папок, реже ярлык с наименованием диска (E:, F: и т.д.). Ни в коем случае не нужно щёлкать (кликать) мышью по ярлыкам. Для того, чтобы скрытые файлы оказались видимыми можно изменить свойства проводника (обозревателя explorer.exe), затем выполнить команду в командной строке: cmd /c attrib -s -r -h <путь к вашему файлу или папке> (http://www.programmersforum.ru/showthread.php?t=241651, по этой же ссылке можно прочитать, как в Windows XP скрытые файлы и папки снова можно увидеть). После удаления вируса с компьютера рекомендуется удалить его тело с флешки, удалить файл autorun.inf и создать папку с таким же названием. Большинство вирусов смогут копировать свои тела на съёмный носитель, но не смогут автоматически запускаться без текстового файла autorun.inf. Многие опытные пользователи рекомендуют использовать для просмотра содержимого флешек и дискет командную строку или файловые менеджеры (total commander, far, norton commander и др.).

Отключение автозапуска[править | править исходный текст]

Групповая политика (gpedit.msc)[править | править исходный текст]

Настройка автозапуска в групповой политике находится в ветке «Конфигурация компьютера — Административные шаблоны — Система». Пункт «Отключить автозапуск» имеет три значения: не задан, включён, отключен. Задание значения «включён» позволяет выбрать тип дисков:

  • CD-дисководы (включает: неизвестные, CD, сетевые и съёмные диски),
  • все дисководы.

Реестр (ветвь HKCU), Policies[править | править исходный текст]

За включение и отключение автозапуска для разных типов носителей отвечают ключи реестра:

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoDriveTypeAutoRun"=dword:000000ff
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoDriveTypeAutoRun"=dword:000000ff

Возможные значения данного ключа:

  • 0x01 (DRIVE_UNKNOWN) — отключить автозапуск на приводах неизвестных типов (тип которого не может быть определён)
  • 0x02 (DRIVE_NO_ROOT_DIR) — отключить автозапуск на дисках которым не назначена буква (не примонтированных в корень)
  • 0x04 (DRIVE_REMOVABLE) — отключить автозапуск съёмных устройств (дискеты, флешки)
  • 0x08 (DRIVE_FIXED) — отключить автозапуск НЕсъемных устройств (жёсткий диск)
  • 0x10 (DRIVE_REMOTE) — отключить автозапуск сетевых дисков
  • 0x20 (DRIVE_CDROM) — отключить автозапуск CD-приводов
  • 0x40 (DRIVE_RAMDISK) — отключить автозапуск на виртуальном диске (RAM-диск)
  • 0x80 (DRIVE_FUTURE) — отключить автозапуск на приводах неизвестных типов (будущие типы устройств)
  • 0xFF — отключить автозапуск вообще всех дисков.

Значения могут комбинироваться суммированием их числовых значений. Допустимые значения ключа NoDriveTypeAutoRun описаны в KB967715.

Следует отметить, что запрет автозапуска при помощи вышеприведённого ключа реестра не устраняет опасности заражения компьютера. Это связано с тем, что значение ключа влияет только на исполнение autorun.inf при определении системой подключенного носителя, но не запрещает исполнение при двойном клике на значке носителя. Таким образом, даже если функция автозапуска отключена, заражение происходит при попытке пользователя открыть подключённый диск для просмотра. Microsoft выпустила исправление, описанное в KB967715, полностью решающее данную проблему.

Реестр (ветвь HKLM), подмена autorun.inf файла[править | править исходный текст]

Альтернативный, более радикальный, способ запрета обработки autorun.inf:

Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\Autorun.inf]
@="@SYS:DoesNotExist"

По сути он подменяет содержимое файла autorun.inf значением из реестра, которое нарочно задаётся пустым/неверным. Это приводит к тому, что если на диске и есть файл autorun.inf, то он воспринимается как пустой.

Указанный способ следует считать самым надёжным. Простой способ его использования заключается в создании соответствующего reg-файла, запускаемого на компьютере.[3]

Реестр (ветвь HKLM), запрет автостарта всех типов файлов[править | править исходный текст]

Возможное решение запрета автостарта всех типов файлов (Только автостарт, обработка двойного клика и контекстного меню будет произведена):

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\CancelAutoplay\Files]
"*.*"=""

Обновление Windows[править | править исходный текст]

Большое количество вредоносных программ, распространявшихся с помощью autorun.inf, вынудило корпорацию Microsoft в новой Windows 7 отключить автозапуск программ для носителей информации, подключающихся через порт USB (флешек, картридеров и др.). В феврале 2011 года Microsoft выпустила обновления, отключающие автозапуск программ из autorun.inf для Windows XP и Windows Vista. В результате уже к лету 2011 года число компьютеров, на которых были зарегистрированы вирусы семейств autorun, уменьшилось примерно на 60%.[4]

Структурные блоки файла[править | править исходный текст]

Блок [autorun][править | править исходный текст]

Параметр action[править | править исходный текст]

Параметр action отвечает за отображение текста в меню автозапуска (используется редко).

Пример:

[autorun]
action=Текст Заголовка

Допустимо указания текста из библиотеки dll:

[autorun]
action=[путь\]имя_файла,-IDресурса

Параметр icon[править | править исходный текст]

Параметр icon назначает файл иконки для устройства.

Пример:

[autorun]
icon=имя_ресурса[,номер]

или

[autorun]
icon=файл.ico

Параметр Defaulticon[править | править исходный текст]

Команда Defaulticon отличается лишь тем, что позволяет задавать ещё и путь к файлу значка:defaulticon=iconpath[,index]

В случае использования двух команд — icon и defaulticon система обрабатывает только defaulticon.

Параметр label[править | править исходный текст]

Этот параметр служит для указания «метки тома». Если применить метку label к диску, то реальная метка тома будет скрыта (её можно посмотреть в свойствах).

[autorun]
label=ЛюбойТекст

Параметр open[править | править исходный текст]

Параметр open содержит путь к файлу программы, которая будет запускаться при подключении устройства или попытке доступа к нему (открытие двойным щелчком). Этот параметр не следует использовать вместе с shellexecute, возможно возникновение конфликта!

Синтаксис:

[autorun]
...
open=[путь\]файл [параметр1 [параметр2] ...]
...

Параметр UseAutoPlay[править | править исходный текст]

Этот параметр совместим только с ОС MS Windows XP и работает не только на оптических дисках, но и на других сменных носителях. Допустимое значение одно — 1. Используется для включения обработки файла autoplay. Используется очень редко, в основном для автозапуска с flash-дисков без запросов на выбор действия (открыть в проводнике, ничего не делать и т. д.).

Синтаксис:

[autorun]
...
UseAutoPlay=1
...

Параметр shellexecute[править | править исходный текст]

Файл, указанный в этом параметре, открывается при автозапуске той программой, которая ассоциирована с этим типом файлов в системном реестре Windows.

Этот параметр можно использовать вместо параметра «open», использовать эти два параметра вместе не рекомендуется.

Данный параметр корректно работает на всех версиях ОС семейства Windows. В ОС MS Windows Vista диск с этим параметром сразу определяется как диск с программным обеспечением или играми, и для него вызывается соответствующее меню.

Пример:

[AutoRun]
shellexecute="Readme.txt"

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

Параметр shell[править | править исходный текст]

shell=ключ указывает команду по умолчанию (default) для контекстного меню диска.

shell\ключ задаёт пункт контекстного меню.

shell\ключ\command задаёт исполняемую команду для пункта меню «ключ».

Пример:

[autorun]
shell\ключевое_слово\command=Файл.exe 
shell\ключевое_слово=Заголовок_меню

Блок [Content][править | править исходный текст]

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

Значениями для этих ключей могут быть только логическое true (истина) или false (ложь).

Истина задаётся любым из данных значений: 1, y, yes, t, true.

Ложь задаётся как: 0, n, no, f, false.

Пример:

[Content]
MusicFiles=Y
PictureFiles=0
VideoFiles=false


Windows Registry Edition version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoCDBurning"=dword:00000001
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoCDBurning"=dword:00000001

Блок [IgnoreContentPaths][править | править исходный текст]

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

[IgnoreContentPaths]
\Portable
\Documents
\Install

Данный блок поддерживается только ОС MS Windows Vista.

Блок [DeviceInstall][править | править исходный текст]

Используется один параметр DriverPath, который указывает путь к драйверам. Используется очень редко и только в MS Windows XP.

[DeviceInstall]
DriverPath=drivers\video 
DriverPath=drivers\audio

Пример листинга файла autorun.inf[править | править исходный текст]

[autorun]
; точка с запятой - это комментарий (также комментариями являются любые сторонние символы и неизвестные команды)
shellexecute=readme.txt
action=Studio
icon=usb.ico
description=Inc_drive
label=Inc_drive
shell\about=ReadMe
shell\about\command=Notepad.exe readme.txt
 
[Content]
MusicFiles=false
PictureFiles=false
VideoFiles=false
 
[ExclusiveContentPaths]
\Multimedia\Video
\Multimedia\Music
\Multimedia\Pictures
 
[IgnoreContentPaths]
\Portable
\Documents
\Install

Источники[править | править исходный текст]

Ссылки[править | править исходный текст]