Курсор Windows (.cur)
Microsoft СтандартWindows Cursor Resource (CUR) е вграденият формат за показалци на мишката в Microsoft Windows. Структурата на контейнера му е идентична с тази на ICO, но съдържа точни координати за активната точка.
Проверка и метаданни
Операционните системи и файловите анализатори идентифицират CUR файлове чрез проверка на началната двоична байтова последователност:
Байтов подпис на заглавката (сигнатурни байтове)
Операционните системи и файловите анализатори идентифицират CUR файлове чрез проверка на началната двоична байтова последователност:
HEX ПОДПИС (ОФСЕТ 0):
00 00 02 00ASCII ПРЕДСТАВЯНЕ: ....
Стандартизация: Microsoft Windows Resource Specification
Технически спецификации
| Контейнерна архитектура | Заглавка ICONDIR с тип ресурс 2 (Cursor), последвана от масив ICONDIRENTRY и DIB данни |
| Компресия | Некомпресирани DIB данни или потоци, компресирани с PNG (Windows Vista и по-нови версии) |
| Поредност на байтовете (Endianness) | Младши байт първи (Little-Endian, Intel x86) |
| Цветови пространства | RGB, зависещо от устройството |
| Канали и структура | 1-битова монохромна маска, 4/8-битов цвят или 32-битов BGRA с алфа канал |
| Максимални размери | Обикновено 32 x 32, 48 x 48 или 64 x 64 (в съвременния Windows се поддържат размери до 256 x 256) |
| Прозрачност | Двоична XOR/AND маска или 8-битов плавен алфа канал |
| Поточно предаване и прогресивно зареждане | Каталог на икони/курсори за настолен компютър, който не поддържа поточно обработване |
Техническа сравнителна матрица: CUR спрямо конкуренти
| Технически атрибут | CUR (Текущ) | ICO | PNG | SVG |
|---|---|---|---|---|
| Дефиниция на активната точка | Вградени координати на пиксели X/Y | Няма (по подразбиране: център или горе вляво) | Дефинирано в CSS | Зададено във viewBox на SVG |
| Идентификатор на типа ресурс | 0x0002 (Cursor) | 0x0001 (Icon) | Стандартно изображение | Векторен XML |
| Операционна система | Вградена подсистема за работа с мишка в Windows | Обвивка на Windows / икона на браузъра | Поддържа се от много браузъри и приложения | Поддържа се от много браузъри и приложения |
| Мащабируемост | Фиксирани изображения с няколко резолюции | Фиксирани изображения с няколко резолюции | Растерно изображение с фиксиран размер | Неограничено векторно мащабиране |
Често срещани видове повреди и ръководство за възстановяване на шестнадесетични данни
Щракването с мишката се регистрира на няколко пиксела от върха на стрелката на курсора.
Първопричина: Повредени или липсващи координати X/Y на активната точка в таблицата ICONDIRENTRY.
Възстановяване: Създайте отново курсора в Cursor Converter на File2File.app, за да калибрирате визуално координатите на активната точка.
Анализ на сигурността и вектори на атака към парсера
В миналото уязвимости при парсване на CUR в Windows Graphics Device Interface (GDI) са позволявали изпълнение на произволен код чрез подправени размери в заглавката.
Известни вектори на атака
- Целочислено препълване при заделяне на DIB цветни маски в остарели декодери на курсори.
- Повредени отмествания на активната точка, които причиняват четене чрез указател извън допустимите граници при изчертаване на курсора.
- Повреждане на heap паметта при парсване на вградени PNG потоци в съвременни CUR файлове.
Най-добри практики за защита: Проверявайте дали координатите на активната точка са строго в рамките на размера на кадъра (0 <= X < Width, 0 <= Y < Height).
Исторически произход и етапи
Основни предимства
- Задава точните координати на активната точка (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 файлове във файлове с курсори .CUR за Windows и позволява задаване на персонализирана позиция на активната точка.
Как мога да използвам .cur файл на моя уебсайт?
Задайте персонализиран курсор в CSS така: cursor: url('my-cursor.cur'), auto;