Материал из РУВИКИ — свободной энциклопедии

Процесс исполнения клиент-сервер

Подсистема клиент/сервер времени выполнения (англ. Client/Server Runtime Subsystem, CSRSS) или csrss.exe, входит в состав операционной системы Microsoft Windows NT, и представляет собой часть пользовательского режима подсистемы Win32. Включена в состав Windows 2000, Windows XP, Windows 2003, Windows Vista, Windows Server 2008, Windows 7, Windows 8 (8.1) и Windows 10. Поскольку большинство операций подсистемы Win32 были перенесены в режим ядра, а конкретнее в драйверы режима ядра, в Windows NT 4 и выше CSRSS в основном отвечает за обработку консоли в Win32 и графический интерфейс выключения ОС. Подсистема имеет решающее значение для функционирования ОС; поэтому завершение этого процесса приведёт к отказу системы. При нормальных условиях CSRSS не может быть завершена применением команды Taskkill или с помощью диспетчера задач Windows, хотя это возможно с Windows Vista, если диспетчер задач запускается в режиме администратора. Начиная с Windows 7, диспетчер задач сообщит пользователю, что завершение процесса приведёт к отказу системы, и покажет запрос, хочет ли пользователь продолжить.

Завершение csrss.exe ведёт к BSOD (синему экрану смерти) и аварийной перезагрузке Windows. Исполняемый файл csrss.exe хранится в папке %SYSTEMROOT%\system32.

Обзор[править | править код]

Процесс участвует в работе:

Работа подсистемы[править | править код]

CSRSS выполняется как системный сервис пользовательского режима. Когда процесс пользовательского режима вызывает функцию с участием консольных окон, создания процесса/потока, или поддержки Side-by-Side, библиотеки Win32 (kernel32.dll, user32.dll, gdi32.dll) вместо запроса системного вызова обращаются к процессу CSRSS путём меж-процессного вызова (LPC вида Local Procedure Call), и CSRSS делает большую часть реальной работы, без того, чтобы подвергать опасности (компрометировать) ядро[1]. Однако вызовы к оконному менеджеру и сервисам GDI обрабатываются драйверами режима ядра (win32k.sys)[2].

История[править | править код]

Серия выпусков Windows NT 3.x вмещала компонент GDI (интерфейс графических устройств) внутри CSRSS, но GDI был перенесен в режим ядра в версии Windows NT 4.0 для улучшения производительности графического отображения[3]. Процесс запуска Windows был значительно изменен начиная с версии Vista. В версиях Windows Vista и 7 работает 2 экземпляра csrss.exe[4].

Угрозы[править | править код]

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

Множество вирусов использует для маскировки имя приложения, чтобы не вызвать подозрения у пользователя, особенно учитывая, что для каждой терминальной сессии создаётся отдельный экземпляр процесса, поэтому на серверных машинах их количество может доходить до нескольких десятков. Оригинальный файл хранится только в папке %SYSTEMROOT%\system32, а его подмена практически невозможна на компьютере с одной операционной системой.

Проблемы[править | править код]

Данная программа является критическим системным компонентом, отвечающим за вызовы функций подсистемы Win32. При её завершении система завершит работу с отображением синего экрана смерти с кодом CRITICAL_PROCESS_DIED. До Windows 8 синий экран отобразил код 0x000000F4 и сообщение:

A process or thread crucial to system operation has unexpectedly exited or been terminated.

Примечания[править | править код]

  1. Prasad Dabak, Sandeep Phadke and Milind Borate. Undocumented Windows NT (англ.). Gemeinsamen Bibliotheksverbundes. Дата обращения: 6 июня 2021. Архивировано 6 июня 2021 года.
  2. Russinovich, Mark. Windows Internals, 5th Edition (англ.). — Microsoft Press, 2009. — P. 54.
  3. The Windows NT 4.0 Kernel mode change (англ.). TechNet - Microsoft. Дата обращения: 19 января 2009. Архивировано 15 марта 2012 года.
  4. Inside the Windows Vista Kernel - Startup Processes (англ.). TechNet - Microsoft. Дата обращения: 1 октября 2010. Архивировано 15 марта 2012 года.