Windows カーソル (.cur)
Microsoft 標準Windows Cursor Resource (CUR) は、Microsoft Windows のネイティブなマウス ポインタ形式であり、コンテナ アーキテクチャの点では ICO と同一ですが、正確なホットスポットの座標オフセットを指定する点が異なります。
調査とメタデータ
オペレーティングシステムやファイル解析ツールは、先頭のバイナリ列を検査してCURファイルを識別します:
バイトレベルのヘッダーシグネチャ (マジックバイト)
オペレーティングシステムやファイル解析ツールは、先頭のバイナリ列を検査してCURファイルを識別します:
16進数シグネチャ(オフセット0):
00 00 02 00ASCII表現: ....
標準化: Microsoft Windowsリソース仕様
技術仕様
| コンテナアーキテクチャ | リソースタイプ2(カーソル)のICONDIRヘッダーに続き、ICONDIRENTRY配列とDIBデータを格納 |
| 圧縮 | 非圧縮DIB、またはPNG圧縮ストリーム(Windows Vista以降) |
| バイトエンディアン | リトルエンディアン(Intel x86) |
| 色空間 | デバイスRGB |
| チャンネルと構造 | 1ビットモノクロマスク、4ビット、8ビット、またはアルファ付き32ビットBGRA |
| 最大寸法 | 一般的なサイズは32 x 32、48 x 48、64 x 64(最新のWindowsでは最大256 x 256に対応) |
| 透過性 | XOR/AND二値マスク、または8ビットの滑らかなアルファチャンネル |
| ストリーミングとプログレッシブ | デスクトップアイコン/カーソル用ディレクトリのため、ストリーミング不可 |
技術比較表:CURと競合製品
| 技術属性 | CUR (現在) | ICO | PNG | SVG |
|---|---|---|---|---|
| ホットスポットの定義 | 埋め込みの X/Y ピクセル座標 | なし(中央/左上がデフォルト) | CSS で定義 | SVG ビューボックスで定義 |
| リソース タイプ ID | 0x0002 (カーソル) | 0x0001 (アイコン) | 標準画像 | ベクター XML |
| オペレーティング システム | ネイティブ Windows マウス サブシステム | Windows シェル / ブラウザ ファビコン | 多くのブラウザーやアプリでサポートされています | 多くのブラウザーやアプリでサポートされています |
| スケーラビリティ | 固定されたマルチ解像度ミップマップ | 固定されたマルチ解像度ミップマップ | ラスター固定サイズ | 無限ベクター スケーリング |
一般的な破損モードと16進数リカバリガイド
カーソル矢印の先端から数ピクセル離れた場所でマウスクリックが認識される。
根本原因: ICONDIRENTRY テーブル内のホットスポット X/Y 座標が破損しているか欠落している。
復旧: File2File.app Cursor Converter でカーソルを再作成し、ホットスポット座標を視覚的に再調整する。
セキュリティ分析とパーサー攻撃ベクトル
Windows グラフィックス デバイス インターフェイス (GDI) における CUR の解析バグにより、細工されたヘッダー寸法を介した任意のコード実行が歴史的に可能になっていました。
既知の攻撃ベクター
- レガシーなカーソル デコーダーでの DIB カラー マスクの割り当て中の整数オーバーフロー。
- カーソルの転送(ブリッティング)中に、破損したホットスポット オフセットが境界外ポインタ読み取りを引き起こす。
- 近代的な CUR ファイル内の埋め込み PNG ストリームを解析する際のヒープ破損。
防御的ベストプラクティス: ホットスポットの座標がフレームの寸法内に厳密に収まっていることを検証します(0 <= X < Width、0 <= Y < Height)。
歴史的背景とマイルストーン
主なメリット
- 画面上でマウスクリックが物理的に認識される正確なピクセル ホットスポット座標 (X, Y) を定義します。
- 標準モニターおよび高DPI の 4K モニターの両方でシャープな表示を実現する、マルチ解像度のカーソル定義を可能にします。
- サードパーティ製のポインタ ドライバなしで、Windows において直接オペレーティング システムのネイティブ サポートを受けられます。
技術的な制限とデメリット
- Windows 中心の形式であり、モバイル デバイスや非 Windows ブラウザではネイティブ表示のサポートが不十分です。
- 静的ポインタ専用であり、アニメーション カーソルにはマルチフレームの .ANI コンテナが必要です。
- レガシーな 1 ビット XOR マスクは、現代のカラー インターフェイス上で強烈な反転アーティファクトを発生させます。
興味深い技術トリビア
- ICO ファイルと CUR ファイルの唯一の構造的違いはヘッダーの 3 バイト目です。アイコンの場合は 1、カーソルの場合は 2 になります。
- ICO ファイルでは各エントリの 4 バイト目と 6 バイト目がカラー プレーンとピクセルあたりのビット数を表しますが、CUR ファイルでは、まさにそのバイトがホットスポットの X および Y 座標を表します。
- CSS は .cur ファイルを指す URL を使用して、カスタム Web カーソルを直接サポートしています。
よくある技術的な質問
カーソルのホットスポットとは何ですか?
ホットスポットとは、クリックイベントが発生するカーソル画像内の正確なピクセル座標(矢印の先端や十字の中心など)のことです。
画像(PNG/JPG)を CUR ファイルに変換できますか?
はい。File2File.app を使用すると、標準的な PNG や JPG ファイルを、カスタムのホットスポット位置を指定した Windows の .CUR カーソルファイルに変換できます。
ウェブサイトで .cur ファイルを使用する方法を教えてください。
CSS で次のように記述することで、カスタムカーソルを適用できます: cursor: url('my-cursor.cur'), auto;