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