Windows 커서 (.cur)
Microsoft 표준Windows 커서 리소스(CUR)는 마이크로소프트 윈도우의 기본 마우스 포인터 형식으로, 컨테이너 아키텍처는 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 |
| 운영 체제 | 기본 윈도우 마우스 서브시스템 | 윈도우 셸 / 브라우저 파비콘 | 범용 웹 및 앱 | 범용 벡터 |
| 확장성 | 고정된 다중 해상도 밉맵 | 고정된 다중 해상도 밉맵 | 래스터 고정 크기 | 무한 벡터 스케일링 |
일반적인 손상 모드 및 헥스 복구 가이드
마우스 클릭이 커서 화살표 끝에서 몇 픽셀 떨어진 곳에 등록됩니다.
근본 원인: ICONDIRENTRY 테이블의 손상되었거나 누락된 핫스팟 X/Y 좌표.
복구: File2File 커서 변환기에서 커서를 다시 제작하여 핫스팟 좌표를 시각적으로 재보정합니다.
보안 분석 및 파서 공격 벡터
윈도우 그래픽 장치 인터페이스(GDI)의 CUR 파싱 버그로 인해 과거에 조작된 헤더 치수를 통한 임의 코드 실행이 허용되었습니다.
알려진 공격 벡터
- 레거시 커서 디코더에서 DIB 색상 마스크 할당 중 정수 오버플로.
- 커서 블리팅 중 범위를 벗어난 포인터 읽기를 유발하는 손상된 핫스팟 오프셋.
- 최신 CUR 파일 내에 임베디드된 PNG 스트림을 파싱할 때 힙 손상.
방어적 모범 사례:
역사적 배경 및 주요 이력
주요 장점
- 마우스 클릭이 화면에서 물리적으로 등록되는 정확한 픽셀 핫스팟 좌표(X, Y) 정의
- 표준 및 고DPI 4K 모니터에서 선명한 표시를 위한 다중 해상도 커서 정의 지원
- 서드파티 포인터 드라이버 없이 윈도우에서 직접 기본 운영 체제 지원
기술적 제한 사항 및 단점
- 모바일 기기 및 비윈도우 브라우저에서 기본 표시 지원이 미흡한 윈도우 중심 형식
- 정적 포인터 전용; 애니메이션 커서에는 다중 프레임 .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;