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

Подсистема клиент/сервер времени выполнения (англ. 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 года.