Cursor do Windows (.cur)
Especificação PadrãoWindows Cursor Resource (CUR) é o formato nativo do ponteiro do mouse no Microsoft Windows. Sua arquitetura de contêiner é idêntica à do ICO, mas especifica as coordenadas exatas do ponto de acesso (hotspot).
Inspeção e metadados
Sistemas operacionais e analisadores de arquivos identificam arquivos CUR pela sequência inicial de bytes:
Assinatura do arquivo em bytes (magic bytes)
Sistemas operacionais e analisadores de arquivos identificam arquivos CUR pela sequência inicial de bytes:
ASSINATURA HEXADECIMAL (DESLOCAMENTO 0):
00 00 02 00REPRESENTAÇÃO ASCII: ....
Padronização: Especificação de recursos do Microsoft Windows
Especificações técnicas
| Estrutura do contêiner | Cabeçalho ICONDIR com tipo de recurso 2 (cursor), seguido por uma matriz ICONDIRENTRY e dados DIB |
| Compressão | Fluxos DIB sem compactação ou compactados em PNG (Windows Vista ou posterior) |
| Ordem dos bytes (endianness) | Little-Endian (Intel x86) |
| Espaços de cor | RGB do dispositivo |
| Canais e Estrutura | Máscara monocromática de 1 bit, 4 ou 8 bits, ou BGRA de 32 bits com alfa |
| Dimensões Máximas | Normalmente 32 × 32, 48 × 48 ou 64 × 64 (oferece suporte a até 256 × 256 no Windows moderno) |
| Transparência | Máscara binária XOR/AND ou canal alfa suave de 8 bits |
| Streaming e Progressivo | Diretório de ícone/cursor da área de trabalho que não permite streaming |
Matriz de comparação técnica: CUR e formatos concorrentes
| Atributo técnico | CUR (Atual) | ICO | PNG | SVG |
|---|---|---|---|---|
| Definição do ponto de acesso | Coordenadas X/Y em pixels incorporadas | Nenhum (predefinição: centro/canto superior esquerdo) | Definido em CSS | Definido no viewbox SVG |
| ID do tipo de recurso | 0x0002 (Cursor) | 0x0001 (ícone) | Imagem padrão | XML vetorial |
| Sistema operacional | Subsistema nativo de mouse do Windows | Shell do Windows / ícone de favorito do navegador | Compatível com muitos navegadores e aplicações | Compatível com muitos navegadores e aplicações |
| Escalabilidade | Mapas de mipmap fixos em várias resoluções | Mapas de mipmap fixos em várias resoluções | Tamanho raster fixo em pixels | Escalabilidade vetorial infinita |
Modos comuns de corrupção e guia de recuperação com editor hexadecimal
O clique do mouse é registrado a vários pixels da ponta da seta do cursor.
Causa principal: Coordenadas X/Y do ponto de acesso corrompidas ou ausentes na tabela ICONDIRENTRY.
Recuperação: Recrie o cursor no File2File.app Cursor Converter para recalibrar visualmente as coordenadas do ponto de acesso.
Análise de segurança e vetores de ataque a analisadores
Falhas históricas na análise de arquivos CUR pela Interface de Dispositivo Gráfico (GDI) do Windows permitiram execução arbitrária de código por meio de dimensões manipuladas no cabeçalho.
Vetores de ataque conhecidos
- Estouro de inteiro durante a alocação de máscaras de cor DIB em decodificadores antigos de cursor.
- Deslocamentos corrompidos do ponto de acesso que causam leituras de ponteiro fora dos limites durante a renderização do cursor.
- Corrupção de heap durante a análise de fluxos PNG incorporados em arquivos CUR modernos.
Melhores práticas defensivas: Valide se as coordenadas do ponto de acesso estão estritamente dentro dos limites do quadro (0 <= X < largura, 0 <= Y < altura).
Origens históricas e marcos
Principais vantagens
- Define as coordenadas exatas em pixels do ponto de acesso (X, Y), onde os cliques do mouse são registrados na tela.
- Permite definir cursores em várias resoluções para exibição nítida em monitores 4K padrão e de alta densidade de pixels.
- Oferece suporte nativo direto no sistema operacional Windows, sem drivers de ponteiro de terceiros.
Limitações técnicas e desvantagens
- Formato centrado no Windows, com pouco suporte nativo em dispositivos móveis e navegadores que não sejam do Windows.
- Ponteiro estático; cursores animados exigem o contêiner de vários quadros .ANI.
- Máscaras XOR legadas de 1 bit produzem artefatos de inversão acentuados em interfaces modernas coloridas.
Curiosidades técnicas
- A única diferença estrutural entre arquivos ICO e CUR está no byte 3 do cabeçalho: 1 para ícone e 2 para cursor.
- Em um arquivo ICO, os bytes 4 e 6 de cada entrada representam os planos de cor e os bits por pixel. Em um arquivo CUR, esses mesmos bytes representam as coordenadas X e Y do hotspot.
- CSS oferece suporte direto a cursores personalizados na web por meio de URLs que apontam para arquivos .cur.
Perguntas técnicas frequentes
O que é um ponto de acesso (hotspot) de cursor?
O ponto de acesso é a coordenada exata em pixels na imagem do cursor (como a ponta de uma seta ou o centro de uma mira) onde ocorrem os cliques.
Posso converter uma imagem (PNG/JPG) em um arquivo CUR?
Sim. O File2File.app converte arquivos PNG ou JPG comuns em arquivos de cursor .CUR do Windows com posições personalizadas do ponto de acesso.
Como posso usar um arquivo .cur no meu site?
Você pode aplicar cursores personalizados em CSS usando: cursor: url('meu-cursor.cur'), auto;