Что такое формат файла SYS?
Расширение .sys обозначает системные файлы, используемые в операционных системах Windows и MS-DOS. Такие файлы содержат данные о загружаемых драйверах, настройках устройств и других низкоуровневых функциях. Без файлов .sys работа системы была бы невозможна, так как они обеспечивают связь между ядром Windows, аппаратными устройствами и внешними периферийными устройствами.
Это расширение охватывает два разных поколения. В эпоху MS-DOS файлы .sys были текстовыми или простыми бинарными дескрипторами конфигурации и драйверов. В современных Windows NT (Windows 2000 и более поздних версиях) файл .sys представляет собой бинарный файл драйвера режима ядра в формате Portable Executable - тот же формат MZ/PE, что и файлы .exe и .dll, но загружаемый и исполняемый непосредственно ядром Windows, а не пользовательским кодом.
Типичные файлы .sys
Самым известным устаревшим файлом .sys является CONFIG.SYS, так как он содержит все объявления драйверов и настройки конфигурации, необходимые для работы MS-DOS. Другие файлы .sys той эпохи включают:
MSDOS.SYS- содержит базовый код системы DOS, называемый ядром DOS.IO.SYS- содержит стандартные драйверы DOS и программу, отвечающую за запуск DOS; использовался в DOS и Windows 9x.KEYBOARD.SYS- содержит информацию о раскладке клавиатуры.
Современная Windows поставляется с многочисленными файлами драйверов .sys, такими как ntfs.sys (драйвер файловой системы NTFS) и tcpip.sys (сетевой стек TCP/IP).
Расположение файлов .sys
Большая часть файлов .sys в системе скрыта. Обычно их можно найти в основной папке Windows; в Vista и более новых версиях файлы .sys чаще всего находятся в C:\Windows\System32\drivers\ и C:\Windows\WinSxS\. Драйверы оборудования также размещаются в C:\Windows\System32\DriverStore\FileRepository\.
Дополнительные примечания
- Современные драйверы режима ядра Windows
.sysработают на уровне Ring 0 и имеют полный, неограниченный доступ к системной памяти и оборудованию. - В 64-битных версиях Windows все драйверы режима ядра должны иметь действительную цифровую подпись; неподписанные драйверы блокируются при загрузке.
- Файлы
.sysчувствительны к вирусным инфекциям и вредоносному ПО - поврежденный драйвер является основной причиной сбоев типа «синий экран смерти» (BSOD). - Файлы
.sysявляются бинарными файлами PE, а не простым текстом, и их можно просмотреть с помощью таких инструментов, как PE-bear или Resource Hacker. Сопутствующий файл.infобычно отвечает за установку драйвера.
Безопасность и защита
РИСК: MEDIUMБольшинство файлов драйверов .sys являются легитимными, подписанными компонентами Windows и безопасны. Реальных опасностей две: (1) удаление или редактирование не того файла. Удаление драйвера .sys может привести к сбою загрузки или синему экрану; позволяйте Windows Update и Диспетчеру устройств управлять драйверами, не трогая файлы вручную. (2) Вредоносные драйверы: поскольку драйверы .sys работают в ядре, руткиты и атаки типа «BYOVD» (использование собственного уязвимого драйвера) злоупотребляют подписанными или поддельными файлами .sys для получения глубочайшего уровня доступа к системе. Относитесь к любому неподписанному или неизвестному .sys в странном месте с подозрением - проверяйте его цифровую подпись (Свойства > Цифровые подписи или Sigcheck) и сканируйте его. Подлинный драйвер Windows должен быть подписан Microsoft или известным производителем оборудования.
Детали формата
в двух словах- Зарезервированные системные блоки данных (pagefile.sys, hiberfil.sys, swapfile.sys) - Большие зарезервированные области диска, которыми Windows управляет для виртуальной памяти и гибернации - это не программы, и их нельзя открыть.
- Устаревшие конфигурационные/текстовые файлы DOS (CONFIG.SYS, HIMEM.SYS) - Текстовые сценарии запуска MS-DOS и старые драйверы реального режима, которые открываются в любом текстовом редакторе.
Программы, открывающие файлы SYS
Технические подробности
глубокая спецификация| Бинарный формат | Драйвер режима ядра Portable Executable (PE); формат контейнера идентичен файлам .exe и .dll |
| Магические байты | 4D 5A («MZ») по смещению 0; сигнатура PE 50 45 00 00 по смещению, хранящемуся в заголовке MZ |
| Подсистема PE | 1 - IMAGE_SUBSYSTEM_NATIVE; помечает бинарный файл как нативный драйвер/драйвер ядра, а не как приложение пользовательского режима |
| Уровень привилегий выполнения | Ring 0 (режим ядра); полный неограниченный доступ к регистрам оборудования, физической памяти и системным структурам данных |
| MIME-тип | application/octet-stream |
| Подпись кода режима ядра | Обязательна в 64-битных Windows Vista и более поздних версиях; драйверы должны иметь подпись WHQL или EV; Secure Boot принудительно применяет политику подписи при загрузке |
| Типичное место установки | C:\Windows\System32\drivers\; промежуточная копия хранится в C:\Windows\System32\DriverStore\FileRepository\ |
| Видимость файла | По умолчанию установлен атрибут «Скрытый системный»; не отображается в Проводнике без включения параметров «Показывать скрытые файлы» и «Скрывать защищенные системные файлы» |
| Механизм загрузки | Диспетчер управления службами Windows (SCM) при загрузке или по требованию; драйверы, запускаемые при загрузке, перечислены в реестре в разделе HKLM\SYSTEM\CurrentControlSet\Services |
| Роль в устаревших MS-DOS | Текстовый или простой бинарный дескриптор конфигурации (CONFIG.SYS, IO.SYS, MSDOS.SYS); предшествует формату драйверов PE более чем на десятилетие |
| Варианты архитектуры | Требуются отдельные сборки для x86 (32-бит), x86-64 (AMD64) и ARM64; один файл .sys предназначен только для одной архитектуры |
| Фреймворк разработки драйверов | WDM (Windows Driver Model) или WDF/KMDF (Windows Driver Frameworks - Kernel-Mode Driver Framework); компилируется с помощью Windows Driver Kit (WDK) |
| Чувствительность к безопасности | Критическая - неисправный или вредоносный драйвер ядра может вызвать синий экран смерти (BSOD), повреждение данных или полную компрометацию системы |
| Разработчик | Microsoft для встроенных драйверов Windows; производители оборудования поставляют дополнительные подписанные файлы .sys через пакеты драйверов на основе INF |
| Связанные форматы | .exe и .dll используют тот же контейнер PE; .drv - устаревшая DLL драйвера пользовательского режима; .inf предоставляет метаданные установки; .vxd был форматом драйвера виртуального устройства в Win9x |
| Выпущен | 1981 (MS-DOS used .SYS for drivers); modern Windows NT drivers are PE binaries |
| Спецификация | learn.microsoft.com |