Windows カーソル (.cur)
Microsoft 標準Windows Cursor Resource (CUR) は、Microsoft Windows のネイティブなマウス ポインタ形式であり、コンテナ アーキテクチャの点では ICO と同一ですが、正確なホットスポットの座標オフセットを指定する点が異なります。
調査とメタデータ
オペレーティングシステムやファイル解析ツールは、先頭のバイナリバイトシーケンスを検査することで CUR ファイルを識別します:
バイトレベルのヘッダーシグネチャ (マジックバイト)
オペレーティングシステムやファイル解析ツールは、先頭のバイナリバイトシーケンスを検査することで CUR ファイルを識別します:
16進数シグネチャ (オフセット 0):
00 00 02 00ASCII表現: ....
標準化: 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 (現在) | ICO | PNG | SVG |
|---|---|---|---|---|
| ホットスポットの定義 | 埋め込みの X/Y ピクセル座標 | なし(中央/左上がデフォルト) | CSS で定義 | SVG ビューボックスで定義 |
| リソース タイプ ID | 0x0002 (カーソル) | 0x0001 (アイコン) | 標準画像 | ベクター XML |
| オペレーティング システム | ネイティブ Windows マウス サブシステム | Windows シェル / ブラウザ ファビコン | ユニバーサル Web およびアプリ | ユニバーサル ベクター |
| スケーラビリティ | 固定されたマルチ解像度ミップマップ | 固定されたマルチ解像度ミップマップ | ラスター固定サイズ | 無限ベクター スケーリング |
一般的な破損モードと16進数リカバリガイド
カーソル矢印の先端から数ピクセル離れた場所でマウスクリックが認識される。
根本原因: ICONDIRENTRY テーブル内のホットスポット X/Y 座標が破損しているか欠落している。
復旧: File2File Cursor Converter でカーソルを再作成し、ホットスポット座標を視覚的に再調整する。
セキュリティ分析とパーサー攻撃ベクトル
Windows グラフィックス デバイス インターフェイス (GDI) における CUR の解析バグにより、細工されたヘッダー寸法を介した任意のコード実行が歴史的に可能になっていました。
既知の攻撃ベクター
- レガシーなカーソル デコーダーでの DIB カラー マスクの割り当て中の整数オーバーフロー。
- カーソルの転送(ブリッティング)中に、破損したホットスポット オフセットが境界外ポインタ読み取りを引き起こす。
- 近代的な CUR ファイル内の埋め込み PNG ストリームを解析する際のヒープ破損。
防御的ベストプラクティス:
歴史的背景とマイルストーン
主な利点とメリット
- 画面上でマウスクリックが物理的に認識される正確なピクセル ホットスポット座標 (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;