<aside> <img src="/icons/flag_gray.svg" alt="/icons/flag_gray.svg" width="40px" />

Palworld 내부 DLL 주입 흐름을 분석하고, Detours 기반 사용자 모드 안티치트의 DLL 화이트리스트 정책을 구현했습니다.

1차 실패 후 실제 Injector를 다시 분석해 LoadLibraryA·W·ExA·ExW 경로로 감시 범위를 넓혔고, 2차 테스트에서 핵 DLL 미주입·핵 UI 미표시와 게임 정상 동작을 확인했습니다.

</aside>

<aside> <img src="/icons/plus_gray.svg" alt="/icons/plus_gray.svg" width="40px" />

왜 이 프로젝트를 시작했는가

WhiteGang 기본 프로젝트에서는 Palworld의 Unreal Engine 객체 구조와 팀에서 제작한 내부 핵의 동작을 분석했습니다. 기능을 나열하기보다 실제 주입 흐름이 통과하는 지점을 찾아 적은 오버헤드로 제한할 수 있는지 확인하고, 사용자 모드 안티치트가 어디까지 방어할 수 있는지를 검증하고자 했습니다.

</aside>

모든 분석과 검증은 교육 목적의 로컬 테스트 환경에서 수행했습니다. 이 페이지는 사용자 모드 기본 프로젝트만 다루며, 커널 핸들 접근 제어는 별도의 후속 프로젝트로 분리했습니다.

PROJECT OVERVIEW

항목 내용
기간 2024.05.05–2024.07.08 · 기본 프로젝트 기록 기준
수행 형태 WhiteHat School 2기 · WhiteGang 팀 프로젝트
문제 Palworld 내부 핵의 객체 접근·DLL 주입 흐름을 분석하고, 사용자 모드에서 DLL 로딩과 디버거 실행 흔적을 관찰·제한할 수 있는 지점을 찾는 문제
데이터·대상·환경 Windows x64 · Steam Palworld · Unreal Engine · 팀 내부 테스트 핵
분석·구현 범위 Unreal Engine 객체·SDK 구조 분석, CreateRemoteThread 기반 주입 흐름 정리, Detours 인라인 후킹과 DLL 허용 정책, LoadLibraryA·W·ExA·ExW 경로 확장, 3차례의 Anti-Debugger 구현
결과 2차 테스트에서 핵 DLL 미주입과 게임 정상 동작을 확인하고, 반복 실험과 GUI 실행 흔적 분석을 통해 WinDbg·Cheat Engine 탐지에 성공
후속 프로젝트 PalAnticheatEx — 커널 핸들 접근 제어

https://github.com/foxirain/PalAnticheat

핵심 질문 — Palworld 내부 핵의 객체 접근·DLL 로딩과 디버거 실행 과정에서 사용자 모드 안티치트가 실제로 관찰하고 제한할 수 있는 지점은 어디인가?

Project Flow

flowchart LR
    A["Unreal Engine 객체·내부 핵 분석"] --> B["DLL 주입 흐름·방어 지점 정의"]
    B --> C["Detours·DLL 화이트리스트 1차 구현"]
    C --> D["실패 재현·Injector 재분석<br>4종 LoadLibrary 경로 확장"]
    D --> E["2차 DLL 차단 검증"]
    E --> F["Anti-Debugger 1·2차 실패<br>GUI 실행 흔적으로 기준 전환"]
    F --> G["WinDbg·Cheat Engine 탐지"]
단계 판단 기준 산출물
1. 대상 분석 게임 상태와 내부 객체에 어떤 구조로 접근하는가? Unreal Engine 객체·SDK와 내부 핵의 객체 접근 경로 분석
2. 주입 흐름 정리 팀 내부 핵의 DLL 주입이 어떤 Windows API와 프로세스 경계를 통과하는가? OpenProcess → VirtualAllocEx → WriteProcessMemory → CreateRemoteThread → LoadLibraryA 흐름 정리
3. 방어 지점 선택·구현 게임 내부에서 적은 오버헤드로 로딩 요청을 제한할 수 있는 지점은 어디인가? Detours 인라인 후킹과 DLL 화이트리스트 1차 구현
4. 공격·방어 재검증 경고가 아니라 핵 DLL 미주입과 게임 정상 동작을 함께 확인했는가? 1차 실패 기록, Injector 재분석, 4종 LoadLibrary 경로 확장과 2차 차단 검증
5. Anti-Debugger 정형화된 API가 실패할 때 실제 실행 중인 도구를 어떤 흔적으로 구분할 수 있는가? 5초 주기 검사와 세 가지 추가 신호 구현, Spy++ 기반 기준 전환, WinDbg·Cheat Engine 탐지

ROLE

Game Security Researcher · User-Mode Anti-Cheat Developer

TECH STACK