Курсор Windows (.cur)
Специфікація СтандартРесурс курсора Windows (CUR): це власний формат покажчика миші Microsoft Windows. За архітектурою контейнера він ідентичний ICO, але містить точні координати активної точки.
Аналіз та метадані
Операційні системи та аналізатори файлів ідентифікують файли CUR, перевіряючи початкову послідовність бінарних байтів:
Сигнатура заголовка на байтовому рівні (Magic Bytes)
Операційні системи та аналізатори файлів ідентифікують файли CUR, перевіряючи початкову послідовність бінарних байтів:
ШІСТНАДЦЯТКОВА СИГНАТУРА (ЗСУВ 0):
00 00 02 00ПОДАННЯ В ASCII: ....
Стандартизація: Специфікація ресурсів Microsoft Windows
Технічні характеристики
| Архітектура контейнера | Заголовок ICONDIR з типом ресурсу 2 (Курсор), за яким слідує масив 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 (підтримує до 256 x 256 у сучасних Windows) |
| Прозорість | Двійкова XOR/AND маска або 8-бітний згладжений альфа-канал |
| Потокове та прогресивне завантаження | Каталог іконок/курсорів робочого столу не підтримує потокове передавання |
Технічна матриця порівняння: CUR проти конкурентів
| Технічний атрибут | CUR (Поточний) | ICO | PNG | SVG |
|---|---|---|---|---|
| Визначення активної точки | Вбудовані піксельні координати X/Y | Немає (за замовчуванням: центр/верхній лівий кут) | Визначено в CSS | Визначено в області перегляду SVG |
| Ідентифікатор типу ресурсу | 0x0002 (Курсор) | 0x0001 (Іконка) | Стандартне зображення | Векторний XML |
| Операційна система | Вбудована підсистема миші Windows | Оболонка Windows / Фавікон браузера | Підтримується багатьма браузерами й застосунками | Підтримується багатьма браузерами й застосунками |
| Масштабованість | Фіксовані міп-рівні з різною роздільною здатністю | Фіксовані міп-рівні з різною роздільною здатністю | Фіксований розмір растру | Нескінченне векторне масштабування |
Типові режими пошкодження та посібник з відновлення в шістнадцятковому форматі
Клік миші реєструється на кілька пікселів осторонь від вістря стрілки курсора.
Першопричина: Пошкоджені або відсутні координати X/Y активної точки в таблиці ICONDIRENTRY.
Відновлення: Створіть курсор заново в конвертері File2File.app Cursor Converter, щоб візуально відкалібрувати координати активної точки.
Аналіз безпеки та векторів атак на парсери
Помилки синтаксичного аналізу CUR в інтерфейсі графічних пристроїв Windows (GDI) історично дозволяли виконувати довільний код за допомогою спеціально створених розмірів заголовка.
Відомі вектори атак
- Переповнення цілих чисел під час виділення пам'яті для колірних масок DIB у застарілих декодерах курсорів.
- Пошкоджені зміщення активної точки, що викликають читання пам'яті за межами допустимого діапазону під час виведення курсора.
- Пошкодження динамічної пам’яті під час розбору вбудованих потоків PNG у сучасних файлах CUR.
Рекомендації щодо захисту: Перевіряйте, чи координати активної точки перебувають у межах кадру (0 <= X < ширина, 0 <= Y < висота).
Історичне походження та віхи
Основні переваги
- Визначає точні піксельні координати активної точки (X, Y), де фізично реєструються кліки миші на екрані.
- Забезпечує визначення курсорів з різною роздільною здатністю для чіткого відображення на стандартних і 4K-моніторах з високою роздільною здатністю (High-DPI).
- Безпосередня підтримка засобами операційної системи Windows без сторонніх драйверів покажчиків.
Технічні обмеження та недоліки
- Формат, орієнтований на Windows, зі слабкою вбудованою підтримкою відображення на мобільних пристроях і в браузерах не для Windows.
- Лише статичний покажчик; анімовані курсори вимагають багатокадрового контейнера .ANI.
- Застарілі 1-бітні XOR-маски створюють різкі артефакти інверсії на сучасних кольорових інтерфейсах.
Цікаві технічні факти
- Єдина структурна відмінність між файлом ICO та файлом CUR полягає в байті 3 заголовка: 1 для іконки, 2 для курсора.
- У файлі ICO байти 4 і 6 кожного запису представляють колірні площини та біти на піксель; у файлі CUR ці самі байти представляють координати X і Y активної точки (Hotspot).
- CSS підтримує кастомні веб-курсори безпосередньо за допомогою URL-адрес, що вказують на файли .cur.
Поширені технічні запитання
Що таке активна точка курсора?
Активна точка: це точна піксельна координата всередині зображення курсора (наприклад, самісіньке вістря стрілки або центр перехрестя), де відбуваються події кліку.
Чи можна конвертувати зображення (PNG/JPG) у файл CUR?
Так. File2File.app дозволяє конвертувати стандартні файли PNG або JPG у файли курсорів Windows .CUR з ручним розміщенням активної точки.
Як я можу використовувати файл .cur на своєму веб-сайті?
Ви можете застосовувати власні курсори в CSS за допомогою: cursor: url('my-cursor.cur'), auto;