Windows registry software microsoft windows currentversion run

Уровень сложностиСредний

Время на прочтение6 мин

Количество просмотров18K

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

Ветка Run

Начнем с наиболее известного места, где можно прописать автоматический запуск приложения при старте системы — реестра Windows. И прежде всего приложения, желающие стартовать вместе с ОС прописывают себя в ветки

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

Для первого варианта нам необходимы права локального администратора. Для того, чтобы прописать автоматический запуск файла, необходимо добавить новое значение в ветку Run.

Однако, важно понимать, что манипуляции с данными ветками реестра также отслеживают и средства защиты. Так антивирус будет очень внимательно следить за тем, какие приложения собираются прописать свои файлы в эти ветки реестра. И попытка неизвестного ранее приложения прописаться в ветку Run может привести к срабатыванию антивируса.

Также, если вам необходимо один раз выполнить какой-либо файл. Например, вам необходимо прописать в системе сервис, то можно воспользоваться ключом RunOnce.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce

Если мы хотим выполнить файл один раз для конкретного пользователя, то необходимо прописать файл в ветке:

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce

Однако, этими, наиболее известными ветками реестра возможности спрятаться в автозагрузку не ограничиваются. Так, за автозагрузку в профиле текущего пользователя отвечают ветки реестра показанные ниже.

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\Shared Tools\Msinfo

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Shared Tools\Msinfo

Посмотрим, как код, правящий реестр выглядит в отладчике.

Конечно, любой здравомыслящий вредонос постарается максимально скрыть от отладки как разделы памяти в которых указаны ветки реестра и записываемые значения, так и сами вызовы функций для работы с реестром. Но в представленном на скриншоте примере мы видим обращения к реестру: RegOpenKeyEx, RegCreateKey, RegCloseKey. По вызовам этих функций можно понять, что приложение в принципе работает с реестром. В случае, если вносятся правки в представленные выше ветки, то вероятнее всего мы имеем дело с вредоносом.

Сервисы в реестре

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

 Существует несколько режимов для служб:

  • запрещён к запуску;

  • ручной запуск (по запросу);

  • автоматический запуск при загрузке компьютера;

  • автоматический (отложенный) запуск;

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

Соответственно, для того, чтобы осуществить автоматический запуск какого-либо выполнимого файла, нам необходимо прописать его как сервис. И здесь кроются некоторые сложности. Дело в том, что сервис – это, не совсем обычный выполнимый файл. Для его запуска недостаточно просто создать exe файл и запустить его. Вместо этого нам необходимо зарегистрировать сервис в системе и только потом его можно запускать.

На скриншоте ниже представлен фрагмент кода, в котором формируется набор значений в стеке (в том числе имя выполняемого файла и самого сервиса) и затем все это передается функции CreateService для создания сервиса.

После того, как сервис зарегистрирован в системе его можно запустить с помощью вызова функции OpenService.

Помимо использования функций ОС предназначенных непосредственно для работы с сервисами, для регистрации и запуска сервиса можно воспользоваться командой sc. В примере ниже мы создаем процесс, который запускает команду sc start NewServ. CreateProcess не единственная функция для запуска процессов. В одной из предыдущих статей по реверсингу мы использовали функцию WinExec для запуска калькулятора при реализации переполнения буфера.

В общем, не стоит забывать про такой простой способ работы с сервисами, как консольные команды.

И еще с сервисами можно работать через реестр. Для этого предназначена ветка

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\

В ней находятся разделы, описывающие работу каждого из сервисов, зарегистрированных в операционной системе.

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

Скрытый отладчик

Представленные выше способы регистрации в автозагрузке в большей или меньшей степени видны пользователю системы. Так запущенные сервисы можно легко увидеть в соответствующей оснастке, а ветки Run хорошо всем известны, и можно без труда проверить их содержимое.

Однако, в реестре есть менее известные ветки, в которые тоже можно подселить выполнимый файл. В данном случае речь пойдет не совсем об автозагрузке как таковой, но при желании здесь тоже можно организовать автозапуск.

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

 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ Image File Execution Options\

Мы создаем раздел с именем запускаемого приложения, а в этом разделе создаем параметр Debug в котором уже указываем выполнимый файл, запускаемый в реальности.

То есть, в примере на скриншоте при попытке запуска калькулятора у нас запустится некий prog.exe. Таким образом можно под видом одного приложения запустить другое. Можно к примеру подменить экранную клавиатуру (osk.exe) на командную строку (cmd.exe). В результате можно будет на заблокированном компьютере вызывать клавиатуру и получать командную строку, причем с правами System!

Небезопасные обновления

Продолжая тему реестра и размещения приложений в нем, мы можем поправить команды, которые выполняются при обновлении тех или иных компонентов. В ветке

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components\

Указаны GUID установленных компонентов и для многих из них можно найти параметры StubPath и Version. Далее процитируем официальную документацию Майкрософт:

При входе пользователя система сравнивает содержимое разделов HKLM\Software\Microsoft\Active Setup\Installed Components и HKCU\Software\Microsoft\Active Setup\Installed Components. Для каждого раздела в HKLM должна быть копия с тем же GUID в HKCU. Дальше есть три варианта развития событий:

1.  Если копии нет, то выполняется команда, указанная в StubPath, после чего в HKCU создается раздел с тем же GUID и прочими параметрами.

2. Если копия есть, то сравнивается значение параметра Version. Если версия в HKCU младше, чем в HKLM, то задание отрабатывает повторно, после чего номер версии в HKCU обновляется.

3. Если же раздел с одинаковым GUID есть и в HKLM и в HKCU и номер версии у них совпадает, то значит компонент уже отработал для данного пользователя и запускать его не требуется.

Таким образом мы можем поиграться со значением StubPath и версиями для того, чтобы в итоге выполнить то, что нам нужно. По сути, здесь тоже можно реализовать автозагрузку.

Переселяем папки

Также с помощью реестра можно “перепрятать” разделы из меню Пуск. В ветке HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders

Размещаются пути к различным компонентам, включая меню Автозагрузка. Соответственно, здесь мы тоже можем поменять значения параметров для того, чтобы запускать файлы из другого каталога.

Планировщик задач

Помимо реестра мы можем попробовать прописать свое приложение в XML файлы с описанием задач. В каталоге %WINDIR%\System32\Tasks находятся XML файлы в которых прописано выполнение тех или иных действий и расписание, по которому эти действия выполняются.

Помимо прочего, в них можно найти и те команды, которые должны выполняться в рамках этой задачи.

Таким образом мы получаем еще один вектор для закрепления в системе.

Заключение

В этой статье мы рассмотрели основные методы размещения выполнимых файлов в системе для автозагрузки. Знание этих методов может помочь в выявлении подозрительных активностей злоумышленников в системе.

О других инструментах для обеспечения безопасности можно узнать у экспертов в области ИБ, например на онлайн-курсах. Перед стартом обучения проходят открытые уроки от преподавателей курсов, на которых можно узнать об актуальных технологиях и задать интересующие вопросы экспертам.

Ever wondered what makes some applications start automatically when you turn on your computer? One of the key players in this process is the HKCU Software Microsoft Windows CurrentVersion Run registry key. 

HKCU Software Microsoft Windows is a part of the Windows registry. It stores user-specific settings for Microsoft Windows software, such as preferences and configurations for programs and system features.

In this article, we will discuss “HKCU Software Microsoft Windows Currentversion Run”.

Table of Contents

What is HKCU?

HKCU stands for HKEY_CURRENT_USER, a section of the Windows Registry that contains configuration settings for the user currently logged into the system. This part of the registry holds user-specific information and settings, making it crucial for personalizing the Windows experience.

What is HKCU Software Microsoft Windows CurrentVersion Run

Source: tenforums

The Run key located at HKCU Software Microsoft Windows CurrentVersion is a special registry key that allows applications to start automatically when the user logs into Windows. This can include essential programs, utilities, or even unwanted software.

Breaking Down the Components:

1. HKCU (HKEY_CURRENT_USER):

This hive in the registry stores settings specific to the current user. It includes configurations for software, desktop, and network settings.

2. Software:

This subkey contains software-related settings for the current user, including preferences and configurations for installed applications.

3. Microsoft:

Under this subkey, you find settings related to Microsoft applications and components.

4. Windows:

This section holds settings specific to the Windows operating system.

6. CurrentVersion:

Here, you will find settings relevant to the current version of Windows being used.

7. Run:

The Run subkey is where entries for programs that should start automatically are stored.

How Does It Work?

1. The Role of the Run Key:

When Windows starts, it checks the “Run” key for any entries. Each entry here is a command that Windows executes, launching the specified applications automatically.

2. How do Applications Use the Run Key?

Applications often add themselves to the “Run” key to ensure they start with Windows. This can be useful for essential services but can also be exploited by malware.

Read More: Software RAID 10 Windows – Comprehensive Guide -2024!

Editing the Run Key:

1. Tools Needed:

  • Windows Registry Editor
  • Administrator privileges

2. Precautions Before Editing:

  • Back up the registry
  • Understand what each entry does
  • Avoid deleting essential entries

Step-by-Step Guide to Edit the Run Key:

Step-by-Step Guide to Edit the Run Key

Source: wikihow

1. Accessing the Windows Registry Editor:

  • Press Win + R, type regedit, and press Enter.
  • Confirm any prompts to open the Registry Editor.

2. Navigating to the Run Key:

  • In the Registry Editor, navigate to HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run.

3. Adding a New Entry:

  • Right-click on the right pane and select New -> String Value.
  • Name the new string and double-click it to set its value to the path of the executable you want to run.

4. Deleting an Existing Entry:

  • Right-click on the entry you want to delete.
  • Select Delete and confirm.

5. Modifying an Entry:

  • Double-click the entry you want to modify.
  • Change the path or command as needed and click OK.

Read More: Powershell Check If Software Is Installed – Comprehensive Guide – 2024!

1. Recommended Tools for Managing Startup Programs:

  • CCleaner
  • Autoruns by Sysinternals

2. Pros and Cons of Using Third-Party Tools:

Pros:

  • Simplified management
  • Advanced features

Cons:

  • Potential for unwanted bundled software
  • Over-reliance on external tools

Automating Startup Program Management

1. Scripts and Batch Files:

Use scripts to add or remove entries automatically.

2. Using Task Scheduler:

Schedule tasks to run programs at startup without modifying the registry directly.

What Is HKCU In Windows?

HKCU (HKEY_CURRENT_USER) in Windows is a part of the registry that stores settings and preferences for the currently logged-in user. It contains information about software configurations, desktop settings, and more.

HKCU Software Microsoft Windows Currentversion Run Windows 7:

HKCU Software Microsoft Windows Currentversion Run Windows 7

Source: gregorystrike

In Windows 7, HKCU\Software\Microsoft\Windows\CurrentVersion\Run is a registry path where programs are listed to start automatically when the user logs in. It helps manage which applications run on startup.

HKCU Software Microsoft Windows Currentversion Run Windows 10:

In Windows 10, HKCU\Software\Microsoft\Windows\CurrentVersion\Run is a registry path where programs are set to start automatically when the user logs in. It allows users to control which applications run at startup.

HKCU Software Microsoft Windows Currentversion Run Not Working:

If HKCU Software Microsoft Windows Currentversion Run is not working, it might be due to incorrect entries or missing permissions. Check if the path and values are correct, and ensure you have the right permissions to make changes.

What Is The Difference Between Run And Run Once In The Registry?

In the Windows Registry, Run starts programs every time the computer starts, while RunOnce starts a program only once the next time the computer starts. After running, RunOnce removes the program from its list.

HKLM Run Key Doesn’t Seem To Be Triggering On W10 But Works On W7:

If the HKLM Run key isn’t working on Windows 10 but works on Windows 7, it could be due to changes in how Windows 10 handles startup programs. Check for new permissions or group policies affecting startup items.

What Is A Common Reason To Edit This Registry Key Hklm Software Microsoft Windows Currentversion Run?

A common reason to edit the “HKLM Software Microsoft Windows Currentversion Run” key is to manage which programs start automatically when Windows boots. This can help improve startup speed or ensure important programs launch every time.

How Entries At Run Registry Are Overridden By Windows Settings?

Windows settings can override entries in the Run registry by using Group Policy or user preferences. These settings take priority, so even if the Run registry has commands, Windows settings can stop them from running automatically.

Read More: How To Update Physx System Software? – Comprehensive Guide – 2024!

FAQs:

1. What happens if I delete the Run key?

Deleting the Run key will prevent all programs listed in it from starting automatically. It’s generally better to delete individual entries rather than the entire key.

2. Can I disable all startup programs at once?

You can disable startup programs using the Task Manager under the Startup tab or using third-party tools.

3. How do I identify unnecessary startup programs?

Look for programs that you do not need immediately after startup or those that you can start manually when needed.

4. What is the difference between HKCU and HKLM Run keys?

HKCU affects only the current user, while HKLM (HKEY_LOCAL_MACHINE) affects all users on the computer.

5. How do I recover a deleted Run key?

If you have backed up the registry, you can restore the deleted key. Otherwise, you may need to recreate the entries manually.

Conclusion:

In conclusion, the HKCU Software Microsoft Windows CurrentVersion Run registry key is crucial for managing which programs start automatically when you log in to Windows. By understanding and managing this key, you can control startup applications, improve boot times, and prevent unwanted software from running automatically.

  • To configure the “RunOnce” key, open the “HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce” Registry path and create a String Value with the command to run.
  • To configure the “Run” key, open the “HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run” Registry path and create a String Value with the command to run.
  • You can use “!” for the name of the key to ignore deletion or “*” to run the key in Safe Mode.

On Windows 11 (and 10), you can use the “Run” and “RunOnce” Registry keys to run apps and scripts during startup as the user logs in to the account. Of course, you can always use run programs at logon with the “Startup” folder, but the Registry is another approach you have at your disposal.

The “Run” key allows you to execute a program whenever the user logs in to their Windows account. On the other hand, the “RunOnce” key runs a program only once, and then the system removes the key.

Although you can use the “Run” key every time the user logs in, the “RunOnce” key should only be used for those “one-time” cases, such as to complete app setup, map a networked drive once, or change a setting, and you shouldn’t use it continuously.

You can use these Registry keys on a per-user or per-device basis and configure multiple entries inside these keys. The only caveat is that the command cannot have more than 260 characters.

In this guide, I will outline what you need to know to leverage the Registry to run programs at logon on Windows 11 (or even on Windows 10).

  • Configure RunOnce key on Windows
  • Configure Run key on Windows

Warning: It’s crucial to note that modifying the Registry can cause serious problems if not used properly. It’s assumed you know what you’re doing and created a full backup of your system before proceeding.

Configure RunOnce key on Windows

To set up the RunOnce key through the Registry, use these steps:

  1. Open Start on Windows 11.

  2. Search for regedit and click the top result to open the Registry.

  3. Open the following path to configure the “RunOnce” key for the current user:

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
  4. Open the following path to configure the “RunOnce” key for the machine:

    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
  5. Right-click the Run key, choose New, and select the String Value option.

    Registry RunOnce create string

  6. Confirm a name that describes the command and press Enter.

    Quick tip: By default, the system will delete the keys before they even run, but you can append a “!” (exclamation mark), such as “!MyRunKey,” to delete the string after the command runs successfully. You can also append the “*” (asterisk), such as “*MyRunKey,” to run the command in Safe Mode. Otherwise, the keys will be ignored.

  7. Right-click the newly created string and choose the Modify option.

  8. Confirm the command to the script or program to run.

    Registry RunOnce key configuration

    Quick tip: You can also specify additional options as necessary to run the command.

  9. Click the OK button.

After you complete the steps, the system will run the command in the string one time, but only for users who are part of the “Administrators” group, meaning that this won’t work for standard users.

Configure Run key on Windows

To configure the “Run” key on Windows 11 (or 10), use these steps:

  1. Open Start.

  2. Search for regedit and click the top result to open the Registry.

  3. Open the following path to configure the “Run” key for the current user:

    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
  4. Open the following path to configure the “Run” key for the machine:

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
  5. Right-click the Run key, choose New, and select the String Value option.

    Registry create Run string

  6. Confirm a name that describes the command and press Enter.

  7. Right-click the newly created string and choose the Modify option.

  8. Confirm the command to the script or program to run.

    Registry Run key configuration

    Quick tip: You can also specify additional options as necessary to run the command.

  9. Click the OK button.

Once you complete the steps, the system will run the commands in the Registry string every time the user logs in to the account.

Why You Can Trust Pureinfotech

The author combines expert insights with user-centric guidance, rigorously researching and testing to ensure you receive trustworthy, easy-to-follow tech guides. Review the publishing process.

,

In a previous article I showed you how to add any program to Windows 10 startup by placing the program in the Windows Startup folder. In this tutorial I will show you how to run any program when you start Windows using Registry.

Running a program at startup using the Registry is a commonly used method when you want users to be unable to modify their computer settings.

  • Related article: How to Add a Program at Windows 10 Startup folder.

How to Add a Startup Program in Registry on Windows 10/8/7 OS.

Step 1. Find and Copy the Path of the Program that you want to run at Startup.

1. Create a shortcut of the program that you want to run at startup on your desktop (if you haven’t done this already).

2. Right-click on the program shortcut and select Properties.

3. Highlight and Copy (CTRL + C) the Target path.

How to Run a Program at Startup via Registry.

Step 2. Add the Startup Program in Registry. *

* Note: This is the usual method to run any program at Windows startup (by using registry), but applies only to programs that does not need administrative privileges in order to run. If you want to run at startup, a program that needs administrative privileges to run, follow the instructions in this tutorial.

1. Open Registry Editor. To do that:

1. Simultaneously press the Win + R keys to open the run command box.
2. Type regedit and press Enter to open Registry Editor.

2. Now, depending on your wish, go to the corresponding registry location, as listed below:

Case A. If you want to start the program only at the current user, navigate to this registry location:

  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

Case B: If you want to start the program at every user on the PC, navigate to this location:

  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

3. At the right pane, right-click at an empty space and choose New > String Value.

Add Startup Program in Registry

4. Name the new value with the name of the program you want to run. (e.g. If you want to run the Microsoft Word at startup (as in this example), type «Word».)

5. Now double click at the newly created value and at the Value data box, Paste (CRL + V) the copied path from the clipboard. When done, click OK.

Add Startup Program via Registry

6. Close the Registry Editor and restart your PC to apply the change. *

* Note: If after applying the above steps, the desired program not launching at Windows startup, read this tutorial.

That’s it! Let me know if this guide has helped you by leaving your comment about your experience. Please like and share this guide to help others.

If this article was useful for you, please consider supporting us by making a donation. Even $1 can a make a huge difference for us in our effort to continue to help others while keeping this site free:

  • Author
  • Recent Posts

Konstantinos is the founder and administrator of Wintips.org. Since 1995 he works and provides IT support as a computer and network expert to individuals and large companies. He is specialized in solving problems related to Windows or other Microsoft products (Windows Server, Office, Microsoft 365, etc.).

Многие сталкивались с порно баннерами, блокирующими экран, кому то необходимо прописать запуск программ без полной загрузки системы, а кто то просто хочет самостоятельно проверить компьютер на наличие разных лишних программ в автозапуске, которые сразу и не видны. Этому и посвящена статья ниже.

Утилита системной конфигурации MSConfig.exe

Начиная с Windows версии 98, Microsoft поставляет утилиту «MSConfig.exe», предоставляющую удобный интерфейс для управления файлами, запускающимися при загрузке Windows. Она находится в каталоге установки Windows. Ее можно запустить из диалогового окна «Выполнить». В ней нет возможности добавлять новый элемент с именем приложения или документа для автозапуска, но можно отключать, не удаляя, любой пункт из находящихся в списках. Есть еще одна интересная возможность — проверка правильности пути, соответствующего элементу автозапуска, и удаление из списков элементов, пути к которым не верны. Возможности этого приложение достаточно убогие и годятся для пользователей системы, но никак не для администраторов. Далее в статье я, по необходимости, буду ссылаться на эту утилиту.

Автозапуск из файлов инициализации

Изложение мест автозапуска будет вестись в хронологическом порядке, начиная с первых версий Windows и устаревших технологий. Файлы инициализации достались в наследство от 16-битных версий Windows 3.x. Microsoft несколько раз декларировала, что она избавляется от устаревших файлов, но на самом деле они до сих пор обрабатываются при запуске.

В файле «Win.ini» в разделе «[windows]» есть два параметра, которые могут служить местом для автозапуска. Первый параметр это «load», второй — это «run». Содержимое по умолчанию для них — это пустая строка. Имена файлов в них не должны содержать пробелов, указание полного имени файла в двойных кавычках не допускается. В них можно перечислить несколько имен файлов через запятую. Обычно они используются для загрузки драйверов, но могут загружать «троянских коней» или «клавиатурных шпионов».

Еще один файл инициализации, который может быть использован для автоматического запуска программ, — это файл «System.ini». В этом файле в разделе «[boot]» есть параметр «shell», который хранит имя оболочки Windows. Значение по умолчанию этого параметра — «Explorer.exe». Значение «shell» может содержать список приложений для автоматического запуска как параметры командной строки «Explorer.exe». Приложение «Explorer.exe» обрабатывает командную строку и пытается запускать приложения или документы, перечисленные в командной строке. Требования к формату параметра «shell» такие же, как и у вышеупомянутых параметров файла «Win.ini». В последнее время этот параметр начал широко использоваться для запуска сетевых червей. Это делает локализацию трудно обнаруживаемой, т.к. администраторы забывают просматривать этот параметр как место для запуска деструктивных приложений.

Утилита «MSConfig.exe» позволяет просматривать состояние и редактировать содержимое этих трех параметров: «load», «run», «shell», находящихся в файлах инициализации.

Папки автозапуска

Первая папка, которая отрабатывается после завершения загрузки Windows, — это папка «Автозагрузка», которая может хранить список ярлыков (*.lnk) приложений или документов. Ее состояние можно увидеть, выйдя из меню «Пуск» в подменю «Программы». Это — папка, относящаяся к «Текущему пользователю».

Чтобы найти ее размещение, сначала надо найти в системном реестре ключ «HKEY_CURRENT_USER\ SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ Explorer\ User Shell Folders», хранящий размещение всех измененных папок, и отыскать там параметр «Startup» строкового типа. Если искомый параметр отсутствует, то ее размещение по умолчанию на жестком диске прописано в системном реестре в параметре «Startup» ключа «HKEY_CURRENT_USER\ SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ Explorer\ Shell Folders».

Ярлыки к приложениям, находящимся в папке «Автозагрузка», отображаются в программе для настройки системы «MSConfig.exe». Если отключить автоматический запуск какого-нибудь элемента через «MSConfig.exe», то в папке «Программы» (она же и подменю в меню «Пуск») будет создана папка с названием «Отключенные элементы запуска», куда «MSConfig.exe» и переместит отключенный элемент. Для того чтобы временно исключить ярлык из автоматической загрузки, я прибегаю к более простому способу: у необходимого ярлыка я выставлю атрибут «скрытый» и при следующей загрузке он пропускается.

Следующая папка — это «Общая» для всех пользователей папка «Автозагрузки» (Common Startup Folder), которая также отрабатывается после загрузки Windows в поисках ярлыков с документами или приложениями. Увидеть ее в подменю «Пуск» можно в Windows NT или 2000. В Windows 9.x, ME ее содержимое не отображается. Она должна хранить ярлыки общие для профилей всех пользователей. В документации Microsoft (MSDN) сказано, что эта папка создавалась для Windows. Однако ее содержимое отрабатывается, даже если Windows 95, 98, ME работают в однопользовательском режиме.

В системном реестре ее размещение на жестком диске прописано в строковом параметре «Common Startup» ключа «HKEY_LOCAL_MACHINE\ SOFTWARE\ Micro-soft\ Windows\ CurrentVersion\ Explorer\ Shell Folders», который хранит измененные пути папок. При отсутствии этого параметра следует посмотреть размещение этой папки по умолчанию в параметре «Common Startup» ключа «HKEY_LOCAL_MA-CHINE\ SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ Explorer\ Shell Folders».

Список исполнимых файлов, находящихся в «Общей» (для профилей всех пользователей) папке «Автозагрузка» также показываются «MSConfig.exe». Если отключить автоматический запуск какого-нибудь элемента через «MSConfig.exe», то в той же папке, где находится папка «Общего запуска», будет создана папка с названием «Отключенные элементы запуска», куда утилитой «MSConfig.exe» будут перемещены отключенные элементы запуска.

Администраторам следует обращать внимание на содержимое этой папки как место для возможного запуска приложений.

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

В системном реестре Windows есть ветвь «SOFTWARE\ Microsoft\ Windows\ CurrentVersion», содержащая несколько групп для автоматического запуска приложений. Все эти группы могут быть как в разделе HKEY_LOCAL_MACHINE, так и в разделе HKEY_CURRENT_USER. Изложение будет общим, и все может быть экстраполировано на оба этих раздела. Если Windows используется как многопользовательская среда, другими словами, это либо Windows версий NT/2000/XP, либо 95, 98, ME с задействованными профилями пользователей, то группы запуска следует искать также в разделе «HKEY_USERS\ .Default». Это раздел общий для всех пользователей системы. Если Windows 95, 98, ME работают в однопользовательском режиме, то раздел «HKEY_USERS\ .Default» идентичен разделу HKEY_CURRENT_USER.

Итак, я приведу полные пути к ключам: «SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ Run», «SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ RunOnce», «SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ RunOnceEx», «SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ RunOnce\ Setup», «SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ RunServices», «SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ RunServicesOnce», которые могут содержать строковые параметры, с именами приложений или документов запускающиеся при старте системы. Раздел реестра «RunOnce» не поддерживается в Windows NT 3.5. Имена строковых параметров, содержащихся в этих ключах, могут быть произвольными.

Далее я приведу несколько правил, ориентируясь на которые можно лучше понять процесс и очередность запуска приложений, прописанных в тех или иных местах автозапуска:

Ключи, содержащиеся в разделе HKEY_LOCAL_MACHINE, отрабатываются раньше соответствующих ключей, находящихся в разделе HKEY_CURRENT_USER.

Содержимое ключей системного реестра «RunServices», «RunServicesOnce» обрабатывается раньше параметров ключей «Run», «RunOnce».

Запуск «RunServices» и «RunServicesOnce» происходит до выдачи окна регистрации пользователя, далее идет асинхронно с диалогом регистрации и может продолжаться и после успешно проведенной регистрации. Приложения, прописанные в параметры системного реестра, содержащиеся в ключах «RunServices» и «RunServicesOnce», запускаются асинхронно, и поэтому может возникнуть ситуация, когда они будут работать одновременно.

Запуск приложений или документов, как это следует из самого названия, прописанных в ключах «RunOnce» и «RunServicesOnce», происходит один раз, независимо от того, был он успешным или нет. Параметр, находящийся в ключе «RunOnce» или «RunServicesOnce», удаляется до запуска приложения, имя которого он содержит.

Параметры, содержащиеся в ключах «Run», «RunOnce», запускаются синхронно и в неопределенном порядке, но после того, как закончило загрузку содержимое «RunServices» и «RunServicesOnce».

Ключи системного реестра обрабатываются в следующем порядке. Первыми отрабатывается содержимое «RunServices» и «RunServicesOnce» раздела HKEY_LOCAL_MACHINE. Далее выдается окно регистрации пользователя в системе. После этого операционная система переходит к обработке ключей «RunOnce» и «Run» раздела HKEY_LO-CAL_MACHINE, далее «Run» раздела HKEY_CURRENT_USER. Следующими запускаются элементы, содержащиеся в папке «Автозагрузка». После этого наступает очередь параметров ключа «RunOnce» раздела HKEY_CURRENT_USER.

Списками параметров, автоматически запускающих приложения при старте Windows, находящихся в ключах «RunServices» и «Run», можно управлять с помощью приложения для настройки системы «MSConfig.exe». Если отключить какой-либо элемент из списка, то «MSConfig.exe» переместит этот элемента в ключ «RunServices-» или «Run-» соответственно.

Следует обратить внимание на ключ «Setup», который может содержаться в ключе «RunOnce» как в разделе HKEY_LOCAL_MACHINE, так и в разделе HKEY_CURRENT_USER. Этот ключ используется как мастером установки Windows, так и мастером «установки — удаления» программ. При отработке параметров, содержащихся в этом ключе, отображается диалоговое окно с индикатором прогресса. Имя параметра используется как имя пункта в диалоговом окне. Аналогично содержимому ключа «RunOnce», пункты ключа «RunOnce\ Setup» удаляются и запускаются один раз.

Еще один ключ системного реестра, на который следует обратить внимание, — это «RunOnceEx». Приведу отличия запуска параметров, находящихся в «RunOnceEx» от запуска параметров, содержащихся в ключах системного реестра «RunOnce» и «Run».

Параметры, находящиеся в ключе «RunOnceEx», запускаться не будут. Для автоматической отработки необходимо создать в нем ключ реестра, и уже в нем должны быть параметрами с именами приложений. Ключи и параметры, находящиеся в ключе «RunOnceEx», сортируются в алфавитном порядке для того, чтобы принудительно придать им строго определенный порядок запуска. Другими словами, элемент, находящийся выше по алфавиту, будет запущен раньше, независимо от того, когда он был добавлен в ключ «RunOnceEx». Приложения или файлы сценариев должны или сами себя завершать, или не требовать отдельного вмешательства для завершения, пока не завершится один элемент запуска или остановится дальнейшая отработка списка, или загрузка Windows остановится в ожидании принудительного завершения запущенного приложения. Для приложений, запущенных из ключа «RunOnceEx», в отличие от ключей «RunOnce» и «Run», отдельные процессы не создаются.

Содержимое ключей «RunOnce», «RunOnceEx», «RunOnce\ Setup» и «RunServicesOnce» приложением настройки системы «MSConfig.exe» не отображается.

Особенности автозапуска в Windows NT/2000/XP

В добавление к вышеперечисленным ключам, для Windows версий NT, 2000 и XP специфичен еще один ключ системного реестра — «Software\ Microsoft\ Windows NT\ CurrentVersion\ Windows\ Run», который может находиться в разделах LO-CAL_MACHINE или HKEY_CURRENT_USER.

В ключе «Software\ Microsoft\ Windows NT\ CurrentVersion\ Windows» могут находиться два строковых параметра «Load» и «Run», которые могут хранить списки приложений для автоматического запуска.

Эти параметры аналогичны одноименным параметрам из файла инициализации «Win.ini». При установке Windows NT (2000) поверх Windows 95, 98 значения параметров из «Win.ini» раздела «[windows]» переносятся в соответствующие параметры ключа «Software\ Microsoft\ Windows NT\ CurrentVersion\ Windows». Если в параметре указывается несколько файлов, то имена должны быть разделены пробелами. Поэтому в них невозможно прописать путь к файлу, содержащим пробелы, — двойные кавычки не принимаются. «Значение по умолчанию» для этих параметров — пробел. Программы, запущенные из параметра «Load», минимизируются при запуске.

Особенности автозапуска в Windows ME/2000/XP

У Windows версий ME, 2000 и XP появляется еще один список автозагрузки программ или документов, запускающихся после регистрации пользователя в системе, который может размещаться как в разделе HKEY_LOCAL_MACHINE, так и в разделе HKEY_CURRENT_USER. Он размещается в строковых параметрах ключа «Software\ Microsoft\ Windows\ CurrentVersion\ Policies\ Explorer\ Run». Имена параметров для этого ключа имеют особенность: они должны быть представлены в виде порядковых номеров, начиная с «1». Список, находящийся в разделе HKEY_LOCAL_MACHINE, будет отработан раньше списка раздела HKEY_CURRENT_USER.

Автозапуск при отработке Windows Logon

Отдельная группа Windows Logon для управления инициализацией при регистрации пользователя появляется в Windows NT и далее развивается Microsoft для Windows версий 2000 и XP. Параметры Winlogon находятся в системном реестре в ключе «SOFTWARE\ Microsoft\ Windows NT\ CurrentVersion\ Winlogon» раздела HKEY_LOCAL_MACHINE. Все описываемые в статье параметры, относящиеся к Winlogon, имеют строковый тип.

Параметр Shell

Параметр «Shell», отвечающий за программную оболочку, присутствует в ветви реестра «Winlogon» в версиях Windows NT, 2000 и XP.

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

По умолчанию Windows запускает программы, перечисленные в параметре «Userinit», расположенном в ветви «Winlogon», включая и сам «Userinit.exe». Если же по какой-то причине «Winlogon» процесс не смог запустить программы, определенные в параметре «Userinit», тогда «Winlogon» переходит непосредственно к обработке исполнимых файлов, имена которых записаны в параметре «Shell».

Значение по умолчанию параметра «Shell» может варьироваться. Это — «taskman, progman, wowexec» для Windows NT и «Explorer.exe» для Windows 2000, XP.

Параметр System

Этот параметр присутствует в Windows версий NT, 2000 и XP. Он содержит список имен исполнимых файлов, запускаемых Winlogon в системном контексте во время инициализации системы. Этот список можно варьировать, редактируя значение этого параметра.

Значение по умолчанию этого параметра — «lsass.exe, spoolss.exe» для Windows NT, и «lsass.exe» для Windows 2000, XP. Интересно замечание Microsoft, приведенное в MSDN: «Этот параметр появляется, но не используется самой Windows 2000».

Параметр VmApplet

Параметр «VmApplet», запускающий приложение «Панели управления» для настройки конфигурации системы, специфичен для Windows версий 2000 и XP.

Он содержит список или один исполнимый файл, которые Winlogon-процесс запускает для того, чтобы пользователь мог скорректировать настройки виртуальной памяти, если на системном томе отсутствует страничный файл подкачки. В этом параметре не обязательно указывать расширения для имен файлов.

Значение по умолчанию этого параметра — «rundll32 shell32, Control_RunDLL «sysdm.cpl»». Не стоит без нужды и изменять значение этого параметра, потому что это может привести к изменению настроек виртуальной памяти в Windows 2000, XP.

Параметр Userinit

«Userinit» (инициализация пользователя) специфичен для версий Windows NT, 2000 и XP.

Значение этого параметра содержит исполнимые файлы, которые запускаются процессом WinLogon в контексте пользователя, при регистрации пользователя в системе.

По умолчанию Winlogon запускает «Userinit.exe», который ответственен за запуск программной оболочки и исполняет файлы сценариев для регистрации, переустанавливает сетевые соединения и затем запускает «Explorer.exe».

Значение по умолчанию параметра «Userinit»: «userinit, nddeagnt.exe» для Windows NT, «userinit» для Windows 2000, XP. Приложение «nddeagnt.exe» необходимо для запуска NetDDE — сетевого динамического обмена данными.

Расширения в именах файлов, перечисленных в этом параметре, не обязательны.

Значение этого параметра можно изменять, добавляя или убирая программы из списка.
Если необходимо запустить приложение до загрузки интерфейса пользователя вместе с «проводником» Windows, то для этого можно заменить «Userinit.exe» на имя своей программы, не забыв включить в приложение код для запуска «Userinit.exe», или поступить еще проще, создав исполнимый файл для пакетной обработки с именем «userinit.bat», со списком программ для запуска и в одной из строк прописать собственно «Userinit.exe».

P.S. Информация, систематизированная в этой статье, была адресована в первую очередь администраторам Windows-систем, а не хакерам. Все сведения, приведенные в статье, содержатся в том или ином виде в официальной документации Microsoft.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Win windows 10 ltsc
  • Windows security health host что это
  • Windows device recovery tool error
  • Logitech precision gamepad драйвер windows 10
  • Диспетчер realtek hd для windows 10 нет в панели задач