автоматично стартиране
Автозапуск(англ. autorun) иавтоматично възпроизвежданеавтоматично възпроизвеждане), илиуправление на силата на звука(англ. Volume Management) е функция в някои операционни системи и среди, която автоматично изпълнява определени операции, когато бъде открит новосвързан носител за съхранение или прясно монтирана файлова система.
Ако се използва небрежно, тази функция може да бъде опасна, тъй като атакуващ може да предизвика стартиране на зловреден софтуер [1] [2] .
Съдържание
Функцията AutoPlay беше въведена в Windows 95, за да улесни неквалифицираните потребители да инсталират програми и да намали обажданията до бюрото за помощ. Когато в устройството беше поставен специално записан диск, Windows определи наличието на специален файл с инструкции. Софтуерът, записан на диска, възприема инструкциите като начало за инсталиране на твърдия диск. За да увеличите максимално вероятността за инсталиране на програма на компютър, същите действия се извършват, ако щракнете двукратно с десния бутон на мишката в Windows Explorer на диска.
Автоматичното стартиране се извършва от Explorer. В Windows 7 (и по-стари) това може да се постигне чрез добавяне на пряк път към приложението в папката Startup в менюто Start. В Windows 8 тази функция е премахната, приложена по по-сложен, но по-функционален начин - чрез помощната програмаTask Scheduler(достъп до нея: начален екран > препраткаНастройки>Плочки>Показване на административни инструменти> намерете помощната програма в списъка с приложения).
От страна на файловата система, тя се конфигурира с помощта на autorun.inf.
Автоматичното стартиране започва, когато се инсталира нов носител за съхранение. Следващата стъпка, уведомяване на потребителя за възможни действия,което може да се направи с носача. След като заредите настройките от системния регистър, ще видите прозорец, в който можете да извършите определени действия. Ако носителят има файл autorun.inf, тогава от него се четат допълнителни настройки и се изпълняват допълнителни инструкции. Уведомлението се генерира според вида на оборудването.
Принцип на действие
Когато устройството получи нов носител със запис за зареждане, „Известие за промяна на носителя“ генерира събитие. Операционната система ви информира за приложенията, които могат да се използват с носителя. Ако дадено устройство е променило дял (в случай на CD) или порт (USB), системата генерира съобщение за излъчване WM_DEVICECHANGE към всички прозорци от най-високо ниво. ОС ще задейства „основно“ известие. Прозорците от най-високо ниво са онези прозорци, които са деца на работния плот.
Устройства без дял са онези устройства, които нямат буква в етикета "Моят компютър". Те не се обработват от автоматично пускане.
Когато Explorer получи съобщение за промяна на дял, той прави следното:
- Проверява дали автоматичното зареждане е активирано в системния регистър. Ако автоматичното зареждане е деактивирано за устройства или за даден тип устройство, File Explorer не прави нищо повече. На това място имаше грешки.
- Проверете наличието на файла autorun.inf в главната директория на поставеното медийно устройство, ако съществува, след това го обработете.
- Изпращане на съобщение QueryCancelAutoPlay до всички фонови прозорци. Приложение, което получава това съобщение, може да блокира автоматично стартиране чрез RegisterWindowMessage. Други приложения, фонови или активни, могат да бъдат уведомени чрез COM интерфейса IQueryCancelAutoPlay на Windows XP и по-нови версии.
- Менюто за избор се променя. Двоен потребителщракнете, за да изберете иконата на устройството в Explorer или щракнете с десния бутон върху нея, като извикате контекстното меню, което се определя от файла avtorun.inf.
- Добавя икона от стартиране и описателен текст върху иконата на устройството.
- Проверява дали е натиснат клавишът ⇧ Shift. Ако се натисне в Windows XP, тогава процесът на автоматично зареждане ще спре, ако в Windows Vista и по-нова версия, натиснатият клавиш няма да повлияе на процеса по никакъв начин.
- Завършване, има три възможни събития:
- не са необходими допълнителни действия
- ще се появи прозорецът „Autorun actions“ или ще изпълни приложението, описано от клавишите open или shellexecute във файла autorun.inf в секцията [autorun].
- автоматично зареждане от носител ще започне
Промяна на поведението при автоматично стартиране
Състоянието на нещата в миналото
Във всички версии на Windows до Windows XP всеки файл autorun.inf на произволен носител се зарежда и инструкциите от него се изпълняват. Автоматичното стартиране не изисква допълнителни действия от потребителя. [3] Включително типове медии DRIVE_REMOVABLE, DRIVE_FIXED и DRIVE_REMOTE.
Autorun ще работи от мрежов носител, ако му е присвоена буква. Автоматичното стартиране също ще работи на устройството, ако е поставена дискета, която поддържа автоматично стартиране. [4]
По подразбиране във версии на Windows, по-стари от Windows XP, автоматичното зареждане от мрежата и преносимите носители е деактивирано; то остава непроменено на CD устройства и твърди дискове.
Състоянието на нещата сега
Autorun проверява стойностите в системния регистър и в зависимост от тях извършва действия за всяко конкретно устройство. Тези настройки могат да се променят по няколко начина, един от тях е промяна на груповата политика.
Приоритетните ключове саNoDriveTypeAutoRun и NoDriveAutoRun. Тези ключове се обработват преди стартиране на системата и преди влизане на потребителя и са описани по-подробно по-долу.
Видове медии
Носителите в регистъра са разделени на следните типове:
DRIVE_UNKNOWN | 0x00000000 | Медия, която не може да бъде определена (основна медия) |
DRIVE_NO_ROOT_DIR | 0x00000001 | Повреден носител (немонтиран носител) |
DRIVE_REMOVABLE | 0x00000002 | Преносим носител (дискета, 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 | Дискът е изваден |
[ЗАПАЗЕН] | 0x00000009 | Запазено за бъдещи технологии |
Как да проверите ключовете за автоматично зареждане
Ключовете на системния регистър NoDriveAutoRun и NoDriveTypeAutoRun могат да съществуват на две различни места, в потребителските настройки (HKEY_CURRENT_USER) и в настройките на машината (HKEY_LOCAL_MACHINE). Ако ключът присъства в HKEY_LOCAL_MACHINE, тогава стойността в HKEY_CURRENT_USER се игнорира. Стойностите им не се комбинират.
Когато се реши въпросът за стартиране на автоматичното зареждане, стойността на двата ключа NoDriveAutoRun иNoDriveTypeAutoRun се взема предвид. Ако всеки от клавишите казва, че трябва да изключите автоматичното зареждане, тогава той се изключва.
0x08 | (Не е инсталирано) | 0x03FFFFFF | 0x95 |
тук виждаме стойностите за 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] - Програмите от тук се зареждат само веднъж при зареждане на системата.
Примери за използване на записи в системния регистър за автоматично стартиране
Например, за да стартирате автоматично Notepad, когато текущият потребител влезе, отворете редактора на системния регистър (regedit.exe), отидете на секцията [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run] и добавете следния ключ:
Само груповите правила засягат настройките на системния регистър NoDriveTypeAutoRun. Настройките на правилата са достъпни за всеки потребител или за всяка машина поотделно в специални клонове на регистъра HKLM и HKCU [5] [6] Описаната политика за машината има по-висок приоритет от политиката на потребителя.
Когато правилото е активирано, груповите правила добавят записа в системния регистър NoDriveTypeAutoRun. Ако правилото е деактивирано или флагът не е конфигуриран, тогава груповите правила премахват записа от регистъра на машината и задават политиката на потребителя по подразбиране. След това системата по подразбиране ще действа както в секцията с параметри NoDriveTypeAutoRun.
Името на правилата, тяхното местоположение,настройките може да варират в зависимост от системата.
Управлението на обема е реализирано във файловия мениджър Thunar, който може да бъде конфигуриран да прави: