Cursore Windows (.cur)
Microsoft StandardWindows Cursor Resource (CUR) è il formato nativo di Microsoft Windows per i puntatori del mouse. La struttura del contenitore è identica a quella di ICO, ma include le coordinate esatte del punto attivo (hotspot).
Ispezione e metadati
I sistemi operativi e gli analizzatori di file identificano i file CUR ispezionando la sequenza di byte binari iniziale:
Firma dell'intestazione a livello di byte (Magic Bytes)
I sistemi operativi e gli analizzatori di file identificano i file CUR ispezionando la sequenza di byte binari iniziale:
FIRMA ESADECIMALE (OFFSET 0):
00 00 02 00RAPPRESENTAZIONE ASCII: ....
Standardizzazione: Microsoft Windows Resource Specification
Specifiche tecniche
| Architettura del contenitore | Intestazione ICONDIR con tipo di risorsa 2 (Cursore) seguita da un array ICONDIRENTRY e dati DIB |
| Compressione | Flussi DIB non compressi o compressi in PNG (Windows Vista+) |
| Endianness dei byte | Little-Endian (Intel x86) |
| Spazi colore | Device RGB |
| Canali e struttura | Maschera monocromatica a 1 bit, formato a 4 o 8 bit oppure BGRA a 32 bit con canale alfa |
| Dimensioni massime | Tipicamente 32 x 32, 48 x 48 o 64 x 64 (supporta fino a 256 x 256 nei sistemi Windows moderni) |
| Trasparenza | Maschera binaria XOR/AND o canale alfa sfumato a 8 bit |
| Streaming e progressivo | Directory di icone/cursori desktop che non supporta lo streaming |
Matrice di confronto tecnico: CUR vs Concorrenti
| Attributo tecnico | CUR (Attuale) | ICO | PNG | SVG |
|---|---|---|---|---|
| Definizione del punto attivo | Coordinate X/Y dei pixel incorporate | Nessuna (predefinito al centro/in alto a sinistra) | Definito in CSS | Definito nel riquadro di visualizzazione SVG |
| ID del tipo di risorsa | 0x0002 (Cursore) | 0x0001 (Icona) | Immagine standard | Vettore XML |
| Sistema Operativo | Sottosistema nativo del mouse di Windows | Shell di Windows / favicon del browser | Supportato da molti browser e app | Supportato da molti browser e app |
| Scalabilità | Mipmap fisse a risoluzioni multiple | Mipmap fisse a risoluzioni multiple | Raster a dimensione fissa | Scalabilità vettoriale infinita |
Modalità di corruzione comuni e guida al recupero esadecimale
Il clic del mouse si registra a diversi pixel di distanza dalla punta della freccia del cursore.
Causa principale: Coordinate Hotspot X/Y corrotte o mancanti nella tabella ICONDIRENTRY.
Ripristino: Ricrea il cursore in File2File.app Cursor Converter per ricalibrare visivamente la coordinata dell'hotspot.
Analisi di sicurezza e vettori di attacco del parser
I bug di analisi dei file CUR nell'interfaccia GDI (Graphics Device Interface) di Windows storicamente permettevano l'esecuzione di codice arbitrario tramite dimensioni di intestazione manipolate.
Vettori di attacco noti
- Overflow di interi durante l'allocazione delle maschere di colore DIB nei decoder di cursori obsoleti.
- Offset di hotspot corrotti che attivano letture di puntatore fuori dai limiti durante il blitting del cursore.
- Corruzione dell'heap durante l'analisi di flussi PNG incorporati all'interno di file CUR moderni.
Migliori pratiche difensive: Validare che le coordinate dell'hotspot siano rigorosamente all'interno delle dimensioni del fotogramma (0 <= X < Larghezza, 0 <= Y < Altezza).
Origini storiche e tappe fondamentali
Vantaggi principali
- Definisce le coordinate esatte dei pixel dell'hotspot (X, Y) in cui i clic del mouse si registrano fisicamente sullo schermo.
- Consente di definire cursori a più risoluzioni per una visualizzazione nitida su monitor standard e monitor 4K ad alta densità di pixel.
- Supporto diretto nativo del sistema operativo in Windows senza driver di puntamento di terze parti.
Limiti tecnici e svantaggi
- Formato incentrato su Windows con scarso supporto di visualizzazione nativa su dispositivi mobili e browser non Windows.
- Solo puntatore statico; i cursori animati richiedono il contenitore multi-frame .ANI.
- Le maschere XOR a 1 bit ereditate dal passato producono forti artefatti di inversione sulle interfacce a colori moderne.
Curiosità tecniche
- L'unica differenza strutturale tra un file ICO e un file CUR è il byte 3 dell'intestazione: 1 per Icona, 2 per Cursore.
- In un file ICO, i byte 4 e 6 di ciascuna voce rappresentano i piani colore e i bit per pixel; in un file CUR, quegli stessi byte rappresentano le coordinate Hotspot X e Y.
- I CSS supportano cursori web personalizzati direttamente utilizzando URL che puntano a file .cur.
Domande tecniche frequenti
Cos'è un hotspot del cursore?
Un hotspot è la coordinata esatta del pixel all'interno dell'immagine del cursore (come la punta estrema di una freccia o il centro di un mirino) in cui si verificano gli eventi di clic.
Posso convertire un'immagine (PNG/JPG) in un file CUR?
Sì. File2File.app consente di convertire file PNG o JPG standard in file cursore .CUR di Windows con posizionamento personalizzato dell'hotspot.
Come posso usare un file .cur sul mio sito web?
Puoi applicare cursori personalizzati nei CSS usando: cursor: url('my-cursor.cur'), auto;