Курсор Windows (.cur)
Microsoft СтандартWindows Cursor Resource (CUR) - это родной формат указателя мыши Microsoft Windows, идентичный по архитектуре контейнера ICO, но определяющий точные смещения координат активной точки (хотспота).
Анализ и метаданные
Операционные системы и анализаторы файлов идентифицируют файлы CUR по начальной двоичной последовательности байтов:
Сигнатура заголовка на уровне байтов (Magic Bytes)
Операционные системы и анализаторы файлов идентифицируют файлы CUR по начальной двоичной последовательности байтов:
HEX-СИГНАТУРА (СМЕЩЕНИЕ 0):
00 00 02 00ПРЕДСТАВЛЕНИЕ ASCII: ....
Стандартизация: Microsoft Windows Resource Specification
Технические спецификации
| Архитектура контейнера | Заголовок ICONDIR с типом ресурса 2 (Курсор), за которым следует массив ICONDIRENTRY и данные DIB |
| Сжатие | Несжатые потоки DIB или сжатые с помощью PNG (Windows Vista+) |
| Порядок байтов (Endianness) | Обратный порядок байтов (Intel x86) |
| Цветовые пространства | Device RGB |
| Каналы и структура | 1-битная монохромная маска, 4-битная, 8-битная или 32-битная BGRA с альфа-каналом |
| Макс. габариты | Обычно 32 x 32, 48 x 48 или 64 x 64 (поддерживается до 256 x 256 в современных ОС Windows) |
| Прозрачность | Двоичная маска XOR/AND или 8-битный плавный альфа-канал |
| Потоковая передача и прогрессивная загрузка | Непотоковый каталог значков и курсоров рабочего стола |
Техническая матрица сравнения: CUR против конкурентов
| Технический атрибут | CUR (Текущий) | ICO | PNG | SVG |
|---|---|---|---|---|
| Определение активной точки | Встроенные координаты пикселей X/Y | Отсутствует (по умолчанию центр/верхний левый угол) | Определяется в CSS | Определяется в области просмотра SVG |
| Идентификатор типа ресурса | 0x0002 (Курсор) | 0x0001 (Значок) | Стандартное изображение | Векторный XML |
| Операционная система | Родная подсистема мыши Windows | Оболочка Windows / Фавикон браузера | Универсальный веб и приложения | Универсальный вектор |
| Масштабируемость | Фиксированные мипмапы с разрешением для разных масштабов | Фиксированные мипмапы с разрешением для разных масштабов | Растровый фиксированный размер | Бесконечное векторное масштабирование |
Типичные режимы повреждения и руководство по восстановлению в HEX
Щелчок мыши регистрируется на расстоянии нескольких пикселей от кончика стрелки курсора.
Первопричина: Поврежденные или отсутствующие координаты X/Y активной точки в таблице ICONDIRENTRY.
Восстановление: Пересоздайте курсор в конвертере курсоров File2File для визуальной калибровки координат активной точки.
Анализ безопасности и векторы атак на парсер
Ошибки синтаксического анализа CUR в интерфейсе графических устройств Windows (GDI) исторически позволяли выполнять произвольный код с помощью специально созданных размеров заголовка.
Известные векторы атак
- Переполнение целых чисел при выделении цветовых масок DIB в старых декодерах курсоров.
- Поврежденные смещения активной точки, вызывающие чтение указателей за пределами допустимого диапазона при отрисовке курсора.
- Повреждение динамической памяти (кучи) при синтаксическом анализе внедренных потоков PNG в современных файлах CUR.
Защитные лучшие практики: Убедитесь, что координаты активной точки строго находятся в пределах размеров кадра (0 <= X < Ширина, 0 <= Y < Высота).
Исторические истоки и вехи
Ключевые преимущества и плюсы
- Определяет точные координаты пикселей активной точки (X, Y), где физически регистрируются щелчки мыши на экране.
- Обеспечивает определение многоразрешенных курсоров для четкого отображения на стандартных мониторах и мониторах высокой плотности пикселей (4K).
- Прямая встроенная поддержка операционной системой Windows без сторонних драйверов указателя.
Технические ограничения и минусы
- Формат с ориентацией на Windows со слабой встроенной поддержкой отображения на мобильных устройствах и в браузерах без поддержки Windows.
- Только статический указатель; анимированные курсоры требуют многокадровый контейнер .ANI.
- Устаревшие 1-битные маски XOR вызывают резкие артефакты инверсии на современных цветных интерфейсах.
Интересные технические факты
- Единственное структурное различие между файлом ICO и файлом CUR заключается в байте 3 заголовка: 1 для значка, 2 для курсора.
- В файле ICO байты 4 и 6 каждой записи представляют цветовую плоскость и биты на пиксель; в файле CUR эти же байты представляют координаты X и Y активной точки.
- CSS поддерживает пользовательские веб-курсоры напрямую с помощью URL-адресов, указывающих на файлы .cur.
Часто задаваемые технические вопросы
Что такое активная точка курсора?
Активная точка - это точная координата пикселя внутри изображения курсора (например, самый кончик стрелки или центр перекрестия), где происходят события щелчка.
Можно ли конвертировать изображение (PNG/JPG) в файл CUR?
Да. File2File.app позволяет конвертировать стандартные файлы PNG или JPG в файлы курсоров Windows .CUR с возможностью настройки положения активной точки.
Как использовать файл .cur на своем веб-сайте?
Вы можете применять пользовательские курсоры в CSS, используя: cursor: url('my-cursor.cur'), auto;