เคอร์เซอร์ Windows (.cur)

Microsoft มาตรฐาน

Windows Cursor Resource (CUR) คือรูปแบบตัวชี้เมาส์ดั้งเดิมของ Microsoft Windows ซึ่งมีโครงสร้างคอนเทนเนอร์ที่เหมือนกับไฟล์ ICO ทุกประการ แต่ระบุพิกัดออฟเซ็ตของฮอตสปอต (Hotspot) อย่างแม่นยำ

ตรวจสอบไฟล์และข้อมูลเมตา

ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ CUR โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:

เลือกหรือวางไฟล์ที่นี่

เป็นส่วนตัว - ไฟล์จะไม่ออกจากอุปกรณ์ของคุณ

หรือวาง Ctrl+V
รับประกันความเป็นส่วนตัวโดยไม่มีการส่งข้อมูลผ่านเครือข่าย: อัปโหลด 0 ไบต์ไปยังเซิร์ฟเวอร์ภายนอก การประมวลผลทั้งหมดเกิดขึ้นภายในแซนด์บ็อกซ์ของเบราว์เซอร์ของคุณ

ลายเซ็นส่วนหัวระดับไบต์

ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ CUR โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:

ลายเซ็น HEX (OFFSET 0):

00 00 02 00

การแสดงผลรูปแบบ ASCII: ....

มาตรฐาน: Microsoft Windows Resource Specification

ข้อมูลจำเพาะทางเทคนิค

สถาปัตยกรรมคอนเทนเนอร์ส่วนหัว ICONDIR ที่มีชนิดทรัพยากร 2 (Cursor) ตามด้วยอาร์เรย์ ICONDIRENTRY และข้อมูล DIB
การบีบอัดDIB แบบไม่บีบอัดหรือสตรีมที่บีบอัดด้วย PNG (Windows Vista ขึ้นไป)
การจัดลำดับไบต์ลำดับไบต์แบบ Little-Endian (Intel x86)
พื้นที่สีRGB ของอุปกรณ์
ช่องสัญญาณและโครงสร้างมาสก์ขาวดำ 1 บิต, 4 บิต, 8 บิต หรือ BGRA 32 บิตพร้อมอัลฟา
ขนาดสูงสุดโดยทั่วไปมีขนาด 32 x 32, 48 x 48 หรือ 64 x 64 (รองรับสูงสุด 256 x 256 ใน Windows รุ่นใหม่)
ความโปร่งใสมาสก์ไบนารี XOR/AND หรือช่องสัญญาณอัลฟาแบบไล่ระดับ 8 บิต
การสตรีมและแบบโปรเกรสซีฟไดเรกทอรีไอคอน/เคอร์เซอร์เดสก์ท็อปที่ไม่รองรับการสตรีม

ตารางเปรียบเทียบทางเทคนิค: CUR กับคู่แข่ง

คุณลักษณะทางเทคนิคCUR (ปัจจุบัน)ICOPNGSVG
การกำหนดฮอตสปอตพิกัดพิกเซล X/Y ฝังตัวไม่มี (ค่าเริ่มต้นตรงกลาง/มุมซ้ายบน)กำหนดใน CSSกำหนดในวิวบ็อกซ์ของ SVG
ID ประเภททรัพยากร0x0002 (Cursor)0x0001 (Icon)ภาพมาตรฐานเวกเตอร์ XML
ระบบปฏิบัติการระบบย่อยเมาส์ดั้งเดิมของ WindowsWindows Shell / Favicon ของเบราว์เซอร์รองรับในเบราว์เซอร์และแอปจำนวนมากรองรับในเบราว์เซอร์และแอปจำนวนมาก
ความสามารถในการปรับขนาดMipmaps หลายความละเอียดแบบคงที่Mipmaps หลายความละเอียดแบบคงที่แรสเตอร์ขนาดคงที่การปรับขนาดเวกเตอร์แบบไม่จำกัด

รูปแบบความเสียหายทั่วไปและคู่มือการกู้คืน Hex

จุดที่คลิกจริงอยู่ห่างจากปลายลูกศรเคอร์เซอร์หลายพิกเซล

สาเหตุหลัก: พิกัดฮอตสปอต X/Y ในตาราง ICONDIRENTRY เสียหายหรือขาดหายไป

การกู้คืน: สร้างเคอร์เซอร์ใหม่ใน File2File.app Cursor Converter เพื่อปรับเทียบพิกัดฮอตสปอตใหม่ด้วยสายตา

การวิเคราะห์ความปลอดภัยและเวกเตอร์การโจมตีตัวแยกวิเคราะห์

ข้อบกพร่องในตัวแยกวิเคราะห์ CUR ของอินเทอร์เฟซอุปกรณ์กราฟิก Windows (GDI) เคยเปิดทางให้รันโค้ดตามอำเภอใจได้ด้วยการกำหนดขนาดส่วนหัวที่สร้างขึ้นเป็นพิเศษ

เวกเตอร์การโจมตีที่ทราบ

  • การเกิดจำนวนเต็มล้น (Integer overflow) ระหว่างการจัดสรรมาสก์สี DIB ในตัวถอดรหัสเคอร์เซอร์รุ่นเก่า
  • ออฟเซ็ตฮอตสปอตที่เสียหายทำให้เกิดการอ่านพอยเตอร์นอกขอบเขตระหว่างการบลิตเคอร์เซอร์
  • ฮีปเสียหายเมื่อแยกวิเคราะห์สตรีม PNG ที่ฝังอยู่ในไฟล์ CUR รุ่นใหม่

แนวทางปฏิบัติที่ดีที่สุดในการป้องกัน: ตรวจสอบความถูกต้องว่าพิกัดฮอตสปอตอยู่ภายในขอบเขตเฟรมอย่างเคร่งครัด (0 <= X < Width, 0 <= Y < Height)

ประวัติความเป็นมาและเหตุการณ์สำคัญ

2006Windows Vista เปิดตัวเคอร์เซอร์ความละเอียดสูง 256x256 แบบ DPI สูง พร้อมเพย์โหลดที่บีบอัดด้วย PNG ภายใน CUR
2001Windows XP เพิ่มการรองรับเงาดรอปชาร์โดว์แบบอัลฟาเบลนด์ที่เนียนเรียบระดับ 32 บิตในไฟล์เคอร์เซอร์
1990Windows 3.0 กำหนดให้ CUR เป็นรูปแบบเคอร์เซอร์ฮาร์ดแวร์และซอฟต์แวร์มาตรฐานดั้งเดิม

ข้อได้เปรียบและจุดเด่นสำคัญ

  • กำหนดพิกัดฮอตสปอตของพิกเซลที่แน่นอน (X, Y) ซึ่งเป็นจุดที่การคลิกเมาส์จะเกิดขึ้นจริงบนหน้าจอ
  • เปิดใช้งานการกำหนดเคอร์เซอร์หลายความละเอียด เพื่อการแสดงผลที่คมชัดบนจอภาพมาตรฐานและจอภาพ 4K ที่มี DPI สูง
  • ระบบปฏิบัติการ Windows รองรับการใช้งานได้โดยตรงทันทีโดยไม่ต้องใช้ไดรเวอร์ตัวชี้ของบุคคลที่สาม

ข้อจำกัดทางเทคนิคและข้อควรพิจารณา

  • เป็นรูปแบบที่เน้น Windows เป็นหลัก โดยมีการรองรับการแสดงผลดั้งเดิมบนอุปกรณ์มือถือและเบราว์เซอร์ที่ไม่ใช่ Windows ค่อนข้างน้อย
  • เป็นตัวชี้แบบนิ่งเท่านั้น เคอร์เซอร์แบบภาพเคลื่อนไหวจะต้องใช้คอนเทนเนอร์ .ANI แบบหลายเฟรม
  • มาสก์ XOR แบบ 1 บิตรุ่นเก่าทำให้เกิดอาร์ทิแฟกต์การกลับสีที่ดูหยาบกระด้างบนอินเทอร์เฟซสีสมัยใหม่

เกร็ดความรู้ทางเทคนิคที่น่าสนใจ

  • ความแตกต่างเชิงโครงสร้างเพียงอย่างเดียวระหว่างไฟล์ ICO และไฟล์ CUR คือไบต์ที่ 3 ของส่วนหัว: 1 สำหรับไอคอน และ 2 สำหรับเคอร์เซอร์
  • ในไฟล์ ICO ไบต์ที่ 4 และ 6 ของแต่ละรายการจะแสดงระนาบสีและบิตต่อพิกเซล แต่ในไฟล์ CUR ไบต์เดียวกันนั้นจะแสดงพิกัดฮอตสปอต X และ Y
  • CSS รองรับเคอร์เซอร์เว็บแบบกำหนดเองได้โดยตรงโดยใช้ URL ที่ชี้ไปยังไฟล์ .cur

คำถามทางเทคนิคที่พบบ่อย

ฮอตสปอตของเคอร์เซอร์คืออะไร

ฮอตสปอตคือพิกัดพิกเซลที่แน่นอนภายในภาพเคอร์เซอร์ (เช่น ปลายสุดของลูกศรหรือจุดศูนย์กลางของเป้าเล็ง) ซึ่งเป็นจุดที่เกิดเหตุการณ์คลิกขึ้น

แปลงรูปภาพ (PNG/JPG) เป็นไฟล์ CUR ได้ไหม

ได้ File2File.app ช่วยให้คุณสามารถแปลงไฟล์ PNG หรือ JPG ทั่วไปให้เป็นไฟล์เคอร์เซอร์ .CUR ของ Windows พร้อมกับการกำหนดตำแหน่งฮอตสปอตเองได้

ใช้ไฟล์ .cur บนเว็บไซต์อย่างไร

คุณสามารถใช้เคอร์เซอร์กำหนดเองใน CSS ได้โดยใช้คำสั่ง: cursor: url('my-cursor.cur'), auto;