Windows 游標資源 (.cur)
微軟 標準Windows 游標資源(CUR)是微軟 Windows 原生滑鼠指標格式,其容器架構與 ICO 相同,但指定了確切的熱點座標偏移量。
檢查與中繼資料
作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 CUR 檔案:
位元組層級標頭簽章(檔案簽章)
作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 CUR 檔案:
十六進位簽章(偏移量 0):
00 00 02 00ASCII 表示法: ....
標準化: 微軟 Windows 資源規格
技術規格
| 容器架構 | ICONDIR 標頭,資源類型為 2(游標),後接 ICONDIRENTRY 陣列與 DIB 資料 |
| 壓縮 | 未壓縮 DIB 或 PNG 壓縮串流(Windows Vista 以上) |
| 位元組序 | 小端序(Intel x86) |
| 色彩空間 | 裝置 RGB |
| 色版與結構 | 1 位元單色遮罩、4 位元、8 位元或帶 alpha 的 32 位元 BGRA |
| 最大尺寸 | 通常為 32 x 32、48 x 48 或 64 x 64(現代 Windows 中最高支援 256 x 256) |
| 透明度 | XOR / AND 二進位遮罩或 8 位元平滑 Alpha 通道 |
| 串流與漸進式 | 不可串流的桌面圖示 / 游標目錄 |
技術比較矩陣:CUR 對比競爭格式
| 技術屬性 | CUR (目前) | ICO | PNG | SVG |
|---|---|---|---|---|
| 熱點定義 | 內嵌的 X/Y 像素座標 | 無(預設在中心/左上角) | 於 CSS 中定義 | 於 SVG viewbox 中定義 |
| 資源類型 ID | 0x0002 (Cursor) | 0x0001 (Icon) | 標準圖片 | 向量 XML |
| 作業系統 | Windows 原生滑鼠子系統 | Windows Shell / 瀏覽器網站圖示(favicon) | 在瀏覽器與許多應用程式中廣泛支援 | 在瀏覽器與許多應用程式中廣泛支援 |
| 可縮放性 | 固定的多解析度 mipmap | 固定的多解析度 mipmap | 點陣圖固定大小 | 無限向量縮放 |
常見損壞模式與十六進位修復指南
滑鼠點擊的位置與游標箭頭尖端偏離數個像素。
根本原因: ICONDIRENTRY 表格中的熱點 X/Y 座標損壞或遺失。
修復: 在 File2File.app 游標轉換器中重新製作游標,以視覺化方式重新校正熱點座標。
安全性分析與解析器攻擊向量
Windows 圖形裝置介面(GDI) 中的 CUR 解析錯誤,歷史上允許透過精心製作的標頭尺寸進行任意程式碼執行。
已知攻擊向量
- 在舊版游標解碼器中配置 DIB 色彩遮罩時發生整數溢位。
- 損壞的熱點位移會在游標區塊複製(blitting)期間觸發超出邊界的指標讀取。
- 在現代 CUR 檔案中解析內嵌 PNG 資料流時發生堆積損壞。
防禦最佳實務: 驗證熱點座標是否嚴格在影格尺寸內(0 <= X < 寬度,0 <= Y < 高度)。
歷史起源與里程碑
2006Windows Vista 引入了 CUR 內含 PNG 壓縮酬載的 256x256 高解析度游標。
2001Windows XP 新增了對游標檔案中 32 位元平滑 alpha 混色陰影的支援。
1990Windows 3.0 將 CUR 標準化為原生硬體與軟體游標格式。
主要優勢與優點
- 定義滑鼠點擊在螢幕上實際生效的確切像素熱點座標(X, Y)。
- 可定義多解析度游標,在標準與高解析度 4K 螢幕上都能清晰顯示。
- 在 Windows 中直接獲得作業系統原生支援,無需第三方指標驅動程式。
技術限制與缺點
- 以 Windows 為中心的格式,在行動裝置與非 Windows 瀏覽器上的原生顯示支援較差。
- 僅限靜態指標;動畫游標需要多影格 .ANI 容器。
- 舊版 1 位元 XOR 遮罩會在現代色彩介面上產生嚴重的反相偽影。
有趣的技術冷知識
- ICO 檔案與 CUR 檔案唯一的結構差異在於標頭的第 3 個位元組:圖示為 1,游標為 2。
- 在 ICO 檔案中,每個項目的第 4 與第 6 個位元組代表色彩平面與每個像素的位元數;在 CUR 檔案中,這兩個確切的位元組代表熱點 X 與 Y 座標。
- CSS 支援直接使用指向 .cur 檔案的 URL 作為自訂網頁游標。
常見技術問題
什麼是游標熱點?
熱點是游標圖片內的精確像素座標(例如箭頭的最尖端或十字準線的中心),點擊事件即發生於此處。
我可以將圖片(PNG/JPG)轉換為 CUR 檔案嗎?
可以。File2File.app 允許您將標準 PNG 或 JPG 檔案轉換為具有自訂熱點位置的 Windows .CUR 游標檔案。
如何在我的網站上使用 .cur 檔案?
您可以在 CSS 中使用以下方式套用自訂游標:cursor: url('my-cursor.cur'), auto;