Kursor Windows (.cur)

Microsoft Standardowy

Windows Cursor Resource (CUR) to natywny format wskaźnika myszy dla systemu Microsoft Windows, identyczny pod względem architektury kontenera z formatem ICO, lecz określający dokładne współrzędne punktu aktywnego (hotspotu).

Inspekcja i metadane

Systemy operacyjne i analizatory plików identyfikują pliki CUR, sprawdzając początkową sekwencję bajtów binarnych:

Wybierz lub upuść pliki tutaj

Konwersja w 100% prywatna w przeglądarce - pliki nigdy nie opuszczają Twojego urządzenia

lub wklej Ctrl+V
Gwarancja prywatności bez przesyłania danych do sieci: 0 bajtów przesłanych na zewnętrzne serwery. Całe przetwarzanie odbyło się lokalnie w piaskownicy przeglądarki.

Podpis nagłówka na poziomie bajtów (Magic Bytes)

Systemy operacyjne i analizatory plików identyfikują pliki CUR, sprawdzając początkową sekwencję bajtów binarnych:

PODPIS HEX (OFFSET 0):

00 00 02 00

REPREZENTACJA ASCII: ....

Normalizacja: Microsoft Windows Resource Specification

Specyfikacja techniczna

Architektura konteneraNagłówek ICONDIR z typem zasobu 2 (kursor), po którym następuje tablica ICONDIRENTRY i dane DIB
KompresjaNeskompresowany strumień DIB lub strumienie kompresowane w formacie PNG (Windows Vista+)
Kolejność bajtów (Endianness)Little-Endian (Intel x86)
Przestrzenie kolorówDevice RGB
Kanały i struktura1-bitowa maska monochromatyczna, 4-bitowa, 8-bitowa lub 32-bitowa BGRA z kanałem alfa
Maks. wymiaryZazwyczaj 32 x 32, 48 x 48 lub 64 x 64 (obsługuje do 256 x 256 w nowoczesnych systemach Windows)
PrzezroczystośćBinarna maska XOR/AND lub 8-bitowy gładki kanał alfa
Streaming i progresywne ładowanieKatalog ikon i kursorów pulpitu bez obsługi strumieniowania

Techniczna macierz porównawcza: CUR a konkurencja

Atrybut technicznyCUR (Bieżący)ICOPNGSVG
Definicja punktu aktywnegoOsadzone współrzędne piksela X/YBrak (domyślnie środek/lewy górny róg)Zdefiniowane w CSSZdefiniowane w przestrzeni widoku SVG
Identyfikator typu zasobu0x0002 (Kursor)0x0001 (Ikona)Standardowy obrazWektorowy XML
System operacyjnyNatywny podsystem myszy systemu WindowsPowłoka Windows / Ikona ulubionych przeglądarkiUniwersalna sieć i aplikacjeUniwersalny wektor
SkalowalnośćStałe mipmapy o wielu rozdzielczościachStałe mipmapy o wielu rozdzielczościachStały rozmiar rastrowyNieskończona skalowalność wektorowa

Typowe tryby uszkodzeń i przewodnik odzyskiwania szesnastkowego

Kliknięcie myszą rejestrowane jest kilka pikseli obok czubka strzałki kursora.

Główna przyczyna: Uszkodzone lub brakujące współrzędne X/Y punktu aktywnego w tabeli ICONDIRENTRY.

Odzyskiwanie: Ponownie utwórz kursor w konwerterze kursorów File2File, aby wizualnie przeskalować współrzędne punktu aktywnego.

Analiza bezpieczeństwa i wektory ataku na parser

Błędy parsowania formatu CUR w interfejsie GDI (Graphics Device Interface) systemu Windows historycznie umożliwiały wykonanie dowolnego kodu za pomocą specjalnie spreparowanych wymiarów nagłówka.

Znane wektory ataku

  • Przepełnienie liczbowe podczas alokacji masek kolorów DIB w starszych dekoderach kursorów.
  • Uszkodzone przesunięcia punktu aktywnego wywołujące odczyty wskaźnika poza wyznaczonym zakresem podczas rysowania kursora.
  • Uszkodzenie pamięci stosu (heap corruption) podczas analizowania osadzonych strumieni PNG wewnątrz nowoczesnych plików CUR.

Najlepsze praktyki obronne: Sprawdzaj, czy współrzędne punktu aktywnego mieszczą się ściśle w granicach wymiarów klatki (0 <= X < Szerokość, 0 <= Y < Wysokość).

Pochodzenie historyczne i kamienie milowe

2006Windows Vista wprowadza kursory o wysokiej rozdzielczości DPI 256x256 z ładunkiem kompresowanym algorytmem PNG wewnątrz pliku CUR.
2001System Windows XP dodaje obsługę 32-bitowych, gładkich cieni z płynnym kanałem alfa w plikach kursorów.
1990Windows 3.0 standaryzuje format CUR jako natywny format kursorów sprzętowych i programowych.

Główne zalety

  • Określa dokładnie współrzędne piksela aktywnego (X, Y), w którym kliknięcia myszą są fizycznie rejestrowane na ekranie.
  • Umożliwia definiowanie kursorów o wielu rozdzielczościach dla zapewnienia ostrości obrazu na standardowych monitorach oraz monitorach o wysokiej rozdzielczości 4K DPI.
  • Bezpośrednia, natywna obsługa w systemie operacyjnym Windows bez konieczności instalowania zewnętrznych sterowników wskaźnika.

Ograniczenia techniczne i wady

  • Format skoncentrowany na systemie Windows, ze słabą natywną obsługą wyświetlania na urządzeniach mobilnych i w przeglądarkach spoza ekosystemu Windows.
  • Tylko wskaźniki statyczne; kursory animowane wymagają wieloklatkowego kontenera .ANI.
  • Starsze, 1-bitowe maski XOR powodują powstawanie ostrych artefaktów inwersji na nowoczesnych interfejsach kolorowych.

Ciekawe informacje techniczne

  • Jedyną różnicą strukturalną między plikiem ICO a plikiem CUR jest bajt 3 nagłówka: 1 oznacza ikonę, a 2 oznacza kursor.
  • W pliku ICO bajty 4 i 6 każdego wpisu reprezentują palety kolorów oraz bity na piksel; w pliku CUR dokładnie te same bajty reprezentują współrzędne X i Y punktu aktywnego (hotspotu).
  • Język CSS obsługuje niestandardowe kursory internetowe bezpośrednio za pomocą adresów URL wskazujących pliki .cur.

Często zadawane pytania techniczne

Czym jest punkt aktywny (hotspot) kursora?

Punkt aktywny to dokładna współrzędna piksela wewnątrz obrazu kursora (taka jak sam czubek strzałki lub środek celownika), w której występują zdarzenia kliknięcia.

Czy mogę przekonwertować obraz (PNG/JPG) na plik CUR?

Tak. Narzędzie File2File.app umożliwia konwersję standardowych plików PNG lub JPG na pliki kursorów .CUR systemu Windows z niestandardowym umiejscowieniem punktu aktywnego.

Jak mogę użyć pliku .cur na swojej stronie internetowej?

Możesz zastosować niestandardowe kursory w języku CSS, używając reguły: cursor: url('moj-kursor.cur'), auto;