Windows 光标 (.cur)

Microsoft 标准

Windows光标资源(CUR)是微软Windows操作系统的原生鼠标指针格式,其容器架构与ICO完全相同,但指定了精确的热点坐标偏移量。

检查与元数据

操作系统和文件分析器通过检查开头的二进制字节序列来识别 CUR 文件:

选择或将文件拖放到此处

100% 浏览器端私密转换 - 文件绝不会离开您的设备

或粘贴 Ctrl+V
零网络传输隐私保证: 上传至外部服务器的数据为 0 字节。所有处理均在您的浏览器沙箱中本地完成。

字节级文件头签名 (Magic Bytes)

操作系统和文件分析器通过检查开头的二进制字节序列来识别 CUR 文件:

十六进制签名 (偏移量 0):

00 00 02 00

ASCII 表示形式: ....

标准化: Microsoft Windows Resource Specification

技术规格

容器架构ICONDIR header with resource type 2 (Cursor) followed by ICONDIRENTRY array and DIB data
压缩方式Uncompressed DIB or PNG compressed streams (Windows Vista+)
字节序Little-Endian (Intel x86)
色彩空间Device RGB
通道与结构1-bit monochrome mask, 4-bit, 8-bit, or 32-bit BGRA with alpha
最大尺寸Typically 32 x 32, 48 x 48, or 64 x 64 (supports up to 256 x 256 in modern Windows)
透明度XOR/AND binary mask or 8-bit smooth alpha channel
流式传输与渐进式加载Non-streamable desktop icon/cursor directory

技术对比矩阵:CUR 对比同类产品

技术属性CUR (当前)ICOPNGSVG
热点定义嵌入的X/Y像素坐标无(默认居中/左上角)在CSS中定义在SVG视口中定义
资源类型ID0x0002 (Cursor)0x0001 (Icon)标准图像矢量XML
操作系统原生Windows鼠标子系统Windows Shell / 浏览器网站图标通用网页与应用通用矢量
可缩放性固定的多分辨率MIP贴图固定的多分辨率MIP贴图固定大小的栅格无限矢量缩放

常见损坏模式与十六进制恢复指南

鼠标点击位置与光标箭头尖端相距数像素。

根本原因: ICONDIRENTRY表中的热点X/Y坐标损坏或丢失。

恢复方法: 在File2File光标转换器中重新制作光标,以直观地重新校准热点坐标。

安全分析与解析器攻击向量

历史上,Windows图形设备接口(GDI)中的CUR解析漏洞允许通过精心构造的头部尺寸执行任意代码。

已知攻击向量

  • 在传统光标解码器中分配DIB颜色掩码时发生整数溢出。
  • 损坏的热点偏移量在光标块传送期间触发越界指针读取。
  • 解析现代CUR文件中的嵌入PNG流时发生堆损坏。

防御性最佳实践:

历史渊源与里程碑

2006Windows Vista引入了256x256高DPI光标,CUR内部支持PNG压缩有效负载。
2001Windows XP为光标文件增加了对32位平滑alpha混合阴影的支持。
1990Windows 3.0将CUR标准化为原生的硬件和软件光标格式。

核心优势与特点

  • 定义了精确的像素热点坐标(X, Y),鼠标点击在屏幕上物理注册于此。
  • 支持多分辨率光标定义,以便在标准和高DPI 4K显示器上获得清晰的显示效果。
  • Windows系统中提供直接的原生操作系统支持,无需第三方指针驱动程序。

技术局限与劣势

  • 以Windows为中心的格式,在移动设备和非Windows浏览器上的原生显示支持较差。
  • 仅支持静态指针;动态光标需要多帧的.ANI容器。
  • 传统的1位XOR掩码在现代彩色界面上会产生刺眼的颠倒伪影。

趣味技术冷知识

  • ICO文件和CUR文件之间唯一的结构区别在于头部的第3个字节:图标为1,光标为2。
  • 在ICO文件中,每个条目的第4字节和第6字节代表颜色平面和每像素位数;而在CUR文件中,这几个字节精确代表热点的X和Y坐标。
  • CSS直接支持使用指向.cur文件的URL作为自定义网页光标。

常见技术问题

什么是光标热点(Hotspot)?

热点是光标图像内部发生点击事件的精确像素坐标(例如箭头的最尖端或十字准线的中心)。

我可以将图像(PNG/JPG)转换为 CUR 文件吗?

可以。File2File.app 允许您将标准的 PNG 或 JPG 文件转换为带有自定义热点位置的 Windows .CUR 光标文件。

如何在我的网站上使用 .cur 文件?

您可以在 CSS 中使用以下代码应用自定义光标:cursor: url('my-cursor.cur'), auto;