Windows 光标 (.cur)

Microsoft มาตรฐาน

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

ตรวจสอบและดู Metadata

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

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

การแปลงไฟล์แบบส่วนตัว 100% ในเบราว์เซอร์ - ไฟล์จะไม่ rời ออกจากอุปกรณ์ของคุณ

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

ลายเซ็นส่วนหัวในระดับไบต์ (Magic Bytes)

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

ลายเซ็น HEX (OFFSET 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+)
การจัดลำดับไบต์ (Byte Endianness)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
ID ประเภททรัพยากร0x0002 (Cursor)0x0001 (Icon)ภาพมาตรฐานเวกเตอร์ XML
ระบบปฏิบัติการระบบย่อยเมาส์ดั้งเดิมของ WindowsWindows Shell / Favicon ของเบราว์เซอร์เว็บและแอปสากลเวกเตอร์สากล
ความสามารถในการปรับขนาดMipmaps หลายความละเอียดแบบคงที่Mipmaps หลายความละเอียดแบบคงที่แรสเตอร์ขนาดคงที่การปรับขนาดเวกเตอร์แบบไม่จำกัด

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

การคลิกเมาส์ลงทะเบียนห่างจากปลายลูกศรเคอร์เซอร์ไปหลายพิกเซล

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

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

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

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

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

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

แนวทางปฏิบัติที่ดีที่สุดในการป้องกัน:

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

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;