VALORANT가 맥에 안 오는 이유와 그 상황을 바꿀 수 있는 이유
Source: Dev.to
VALORANT는 macOS에 없습니다. 라이엇이 원하지 않아서가 아니라,
그렇다고 해서 실제로 필요하지도 않기 때문입니다.
그래서 저는 지난 몇 달 동안 개념 증명을 만들며 답을 찾으려 했습니다.
과연 커널 수준 안티치트가 정말 필요한가?
Kernel‑level 안티치트(vgc.sys, EAC, BattlEye)는 Windows가
다른 환경이기 때문에 존재합니다. Apple Silicon은 전혀 다른 환경이며,
대부분의 공격 표면은 여기서 적용되지 않습니다.
Windows 위협
왜 링 0이 필요한가
macOS — 링 0이 필요 없음
메모리 읽기/쓰기 치트
OpenProcess는 핸들 스트립이 필요합니다.
Task‑port 모델 + ES 이벤트가 접근을 차단합니다.
DLL 인젝션
AppInit_DLLs, 원격 스레드
DYLD_INSERT_LIBRARIES는 ES에 의해 exec 시 잡힙니다.
서명되지 않은 커널 코드
BYOVD는 실시간 위협입니다.
Apple notarization + 재부팅 없이는 kext를 로드할 수 없습니다.
DMA 하드웨어 카드
VT‑d/AMD‑Vi 검증이 필요합니다.
DART IOMMU + 대부분의 Mac에서는 사용자 PCIe가 없습니다.
부팅 시 무결성
TPM(추가 장치)에 의존합니다.
Secure Boot은 SEP(네이티브)와 연계됩니다.
Apple은 단순히 이러한 경로를 차단한 것이 아니라,
대체 메커니즘을 직접 구현했습니다.
Vanguard‑for‑macOS는 안티치트를 제공하는 두 구성 요소 PoC입니다.
Phase 1 — Endpoint Security Monitor (C)
Apple의 ES 커널 이벤트 스트림에 구독하는 권한이 부여된 사용자 공간 에이전트입니다.
치트가 보호된 프로세스에 메모리 접근을 시도했을 때 기대되는 출력 예시:
[2026] ALERT GET_TASK requester=loader target=MyGame
[2026] ALERT EXEC+INJECT path=MyGame via=DYLD_INSERT_LIBRARIES=/path/to/hook.dylib
Phase 2 — Hardware Attestation (Swift + Node.js)
Secure Enclave가 내보낼 수 없는 P‑256 키를 생성합니다. Apple의 App Attest와 연동됩니다.
실제 Apple Silicon 하드웨어에서 실행 중인 예시:
[attest-client] SEP P-256 key generated.
[attest-client] private key export refused by SEP (expected) ✓
[attest-client] enclave-signed message verifies: ✓
verifyAssertion — 정상 경로:
✓ valid assertion accepted
✓ replayed counter rejected
✓ tampered clientData rejected
✓ wrong rpIdHash rejected
✓ foreign-key signature rejected
5 passed, 0 failed
핵심 아이디어는 신뢰 역전입니다: 클라이언트가 위조 불가능할 필요는 없습니다.
에이전트와 그 코드를 조작해도 됩니다.
먼저 알려두고 싶습니다: ES 권한(com.apple.developer.endpoint-security.client)은
Apple의 승인을 받아야 기본 macOS에서 실행될 수 있습니다. 현재 승인을 대기 중이며,
이 권한이 없으면 Phase 1을 시연하려면 SIP를 비활성화해야 합니다 — 이는 중요한 차이점입니다.
Phase 4(시스템 확장 패키징)는 아직 완료되지 않았습니다. 이 단계가 연구용 빌드를
실제 스튜디오가 배포 가능한 형태로 전환합니다.
서버‑사이드 히어리스틱, 지속적인 런타임 인증, 하드웨어 입력 에뮬레이터는 범위 밖이며,
클라이언트 에이전트만으로는 완전히 해결되지 않는 백엔드 문제입니다.
VALORANT에서 제외된 모든 Mac 플레이어는 구현 세부 사항 때문에 제외된 것이며,
이 경우 Windows 커널 드라이버보다 더 나은, 네이티브 방식입니다.
이것은 완성된 제품이 아니라, 그 경로가 존재한다는 증명일 뿐입니다.
GitHub: https://github.com/JusticeRox98577/Vanguard-for-Macos
macOS 보안이나 안티치트 분야에 종사하시고 이 프로젝트에 구멍을 찾고 싶다면,
독립적인 연구이며 Riot과는 어떠한 연관·승인·보증도 없습니다.