<aside> <img src="/icons/flag-checkered_gray.svg" alt="/icons/flag-checkered_gray.svg" width="40px" />
외부 핵의 프로세스 핸들 획득 지점을 Windows 커널에서 제어하는 PalAnticheatEx 프로토타입을 구현했습니다.
ObRegisterCallbacks 사전 콜백으로 비인가 요청의 위험한 접근권한을 제한하고, 게임 실행 상태에 따른 드라이버 활성화와 PalGuard–드라이버 IOCTL 통신까지 연결했습니다.
</aside>
<aside> <img src="/icons/plus_gray.svg" alt="/icons/plus_gray.svg" width="40px" />
선행 사용자 모드 프로젝트는 일반적인 LoadLibraryA 기반 DLL 로딩 경로를 관찰할 수 있었지만, 외부 프로세스가 핸들을 얻어 WriteProcessMemory로 게임 메모리를 바꾸는 경로와 사용자 모드 우회를 포괄하지 못했습니다. 고도화 프로젝트에서는 외부 핵이 반드시 거쳐야 하는 프로세스 핸들 생성과 권한 부여를 새로운 방어 경계로 정하고, Windows 커널에서 이를 통제할 수 있는지 검증했습니다.
</aside>
모든 분석과 검증은 교육 목적의 로컬 테스트 환경에서 수행했습니다. 이 페이지는 커널 모드 고도화 프로젝트만 다루며, Detours 기반 사용자 모드 안티치트는 선행 프로젝트로 분리했습니다.
| 항목 | 내용 |
|---|---|
| 기간 | 2024.08.06–2024.09.25 · 고도화 프로젝트 |
| 수행 형태 | WhiteHat School 2기 · WhiteGang 팀 프로젝트 |
| 문제 | 외부 프로세스가 Palworld 핸들을 열어 메모리 쓰기·변경 권한을 확보하는 경로를 커널에서 제한하는 문제 |
| 데이터·대상·환경 | Windows · Steam Palworld · 외부 메모리 변조 테스트 프로그램 · 테스트 서명 드라이버 환경 |
| 분석·구현 범위 | 프로세스 핸들 위협 모델, ObRegisterCallbacks 사전 콜백, 요청자·권한 정책, 게임 시작 감시 드라이버, PalGuard–드라이버 IOCTL 통신 |
| 결과 | 통제된 테스트 경로에서 비인가 프로세스의 위험한 핸들 접근권한 요청을 제거하는 커널 드라이버 구조 구현 |
| 선행 프로젝트 | PalAnticheat — 사용자 모드 안티치트 |
https://github.com/foxirain/PalAnticheatEx
핵심 질문 — 외부 핵이 Palworld 메모리를 변경하기 전에 필요한 프로세스 핸들 권한을 커널 객체 관리 경계에서 선별적으로 제한할 수 있는가?
flowchart LR
A["외부 핵의 WPM/RPM 경로 분석"] --> B["프로세스 핸들을 필수 의존점으로 식별"]
B --> C["ObRegisterCallbacks 사전 콜백 구현"]
C --> D["전체 접근 차단 실험"]
D --> E["정상 프로세스 영향 확인"]
E --> F["요청자·위험 권한 기반 정책으로 개선"]
F --> G["시작 감시·PalGuard·IOCTL 통합"]
G --> H["통제된 테스트로 검증"]
| 단계 | 판단 기준 | 산출물 |
|---|---|---|
| 1. 외부 핵 분석 | 게임 메모리 읽기·쓰기에 반드시 필요한 커널 자원은 무엇인가? | OpenProcess → WPM/RPM과 프로세스 핸들 권한의 관계 정리 |
| 2. 커널 콜백 구현 | 핸들이 부여되기 전에 요청을 검사할 수 있는가? | ObRegisterCallbacks 사전 콜백과 DesiredAccess 제어 |
| 3. 정책 개선 | 게임·시스템 프로세스의 정상 동작을 유지하면서 위험 요청만 제한할 수 있는가? | 요청자·대상·권한을 구분한 접근 정책 |
| 4. 활성화·통신 | 게임 실행 구간에 맞춰 방어 모듈을 제어하고 상태를 전달할 수 있는가? | 시작 감시 드라이버, PalGuard, IOCTL 통신 |
| 5. 검증 | 테스트 프로그램의 위험 권한 요청이 실제로 제거되는가? | 드라이버 적용 전후 비교와 시연 영상 |
Windows Kernel Security Researcher · Kernel Anti-Cheat Developer
ObRegisterCallbacks 사전 콜백 설계·구현C · C++ · Windows Driver Kit (WDK) · Windows Kernel Driver · WinDbg · ObRegisterCallbacks · IOCTL · Windows Object Manager