Курсор Windows (.cur)
Специфікація СтандартРесурс курсора Windows (CUR) - це рідний формат покажчика миші Microsoft Windows, який за архітектурою контейнера ідентичний ICO, але визначає точні зсуви координат активної точки.
Аналіз та метадані
Операційні системи та аналізатори файлів ідентифікують файли CUR, перевіряючи початкову послідовність бінарних байтів:
Сигнатура заголовка на байтовому рівні (Magic Bytes)
Операційні системи та аналізатори файлів ідентифікують файли CUR, перевіряючи початкову послідовність бінарних байтів:
ШІСТНАДЦЯТКОВА СИГНАТУРА (ЗСУВ 0):
00 00 02 00ASCII-УЯВЛЕННЯ: ....
Стандартизація: Специфікація ресурсів Microsoft Windows
Технічні характеристики
| Архітектура контейнера | Заголовок ICONDIR з типом ресурсу 2 (Курсор), за яким слідує масив ICONDIRENTRY та дані DIB |
| Стиснення | Нестиснені потоки DIB або зі стисненням PNG (Windows Vista+) |
| Порядок байтів (Endianness) | Зі старшим байтом у кінці (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 для візуального калібрування координат активної точки.
Аналіз безпеки та векторів атак на парсери
Помилки синтаксичного аналізу CUR в інтерфейсі графічних пристроїв Windows (GDI) історично дозволяли виконувати довільний код за допомогою спеціально створених розмірів заголовка.
Відомі вектори атак
- Переповнення цілих чисел під час виділення пам'яті для колірних масок DIB у застарілих декодерах курсорів.
- Пошкоджені зміщення активної точок, що викликають читання пам'яті за межами допустимого діапазону під час виведення курсора.
- Пошкодження купи при синтаксичному аналізі вбудованих потоків PNG усередині сучасних файлів CUR.
Захисні найкращі практики: Перевіряйте, чи координати активної точки суворо лежать у межах розмірів кадрiв (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;