Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
cheat-engine-undetectable — Academic Research Edition - T1: 사용자 모드 회피(난독화 + 시스템 콜 게이트웨이), T2: BYOVD 커널 브리지, T3: DMA 하드웨어(향후 작업). | Kitploit
도구/GitHubGitHub/gmh5225/cheat-engine-undetectable
ExploitationReverse EngineeringMalware AnalysisLearning & EducationRed TeamingBinary Exploitation
GitHubgmh5225/cheat-engine-undetectable

cheat-engine-undetectable

Academic Research Edition - T1: 사용자 모드 회피(난독화 + 시스템 콜 게이트웨이), T2: BYOVD 커널 브리지, T3: DMA 하드웨어(향후 작업).

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기
26일 전아직 검토되지 않음

Cheat Engine 무감지 버전

학술 연구 에디션 — 사이버보안 교육 및 대학 수준 리버스 엔지니어링 연구를 위한 다계층 안티치트 회피 기능이 적용된 수정된 Cheat Engine입니다.

면책 조항: 이 프로젝트는 학술 연구, 대학 과제 및 사이버보안 교육 전용입니다. 학기가 종료되면 반드시 폐기되어야 합니다.


아키텍처

root@kitploit:~
┌─────────────────────────────────────────────────────────┐
│                    Cheat Engine 7.5                      │
│                   (Lazarus / FreePascal)                  │
├─────────────────────────────────────────────────────────┤
│  T1: 사용자 모드 회피                                      │
│  ├─ 창/프로세스/레지스트리 이름 무작위화 (-daltname)          │
│  ├─ PE 메타데이터 제거 및 섹션 이름 변경                     │
│  ├─ Rich Header 제거 및 타임스탬프 무작위화                  │
│  ├─ 직접 시스템 콜 스텁 (ntdll.dll 후킹 우회)                │
│  └─ 디스크에서 동적 시스템 콜 번호 추출                      │
├─────────────────────────────────────────────────────────┤
│  T2: 커널 브리지 (BYOVD — WinNotify.sys)                   │
│  ├─ 안티치트 탐지 (10개 엔진)                               │
│  ├─ Microsoft 서명 드라이버 (WinNotify.sys / signeddrv.sys) │
│  ├─ IOCTL을 통한 커널 가상 메모리 R/W (물리 매핑 없음)        │
│  ├─ 모든 프로세스에 대한 CR3 기반 페이지 테이블 워킹          │
│  ├─ 커널 베이스 공개 IOCTL을 통한 KASLR 무력화               │
│  ├─ ObCallback 우회 (커널 구조체 조작)                      │
│  └─ 프로세스 숨기기 (PsActiveProcessLinks 언링킹)            │
├─────────────────────────────────────────────────────────┤
│  T3: DMA 하드웨어 [미구현]                                 │
│  └─ 하이퍼바이저 수준 AC 우회를 위한 PCIe FPGA/장치          │
└─────────────────────────────────────────────────────────┘

적용 범위 매트릭스

파일 구조

root@kitploit:~
.
├── README.md
├── Build.ps1                     # 자동 빌드 파이프라인 (CE 클론, 패치 적용, 빌드)
├── .gitignore
├── src/
│   ├── cheatengine.lpi           # 프로젝트: 메타데이터 이름 변경, -daltname 정의, 출력 이름 변경
│   ├── cheatengine.lpr           # 메인: 동적 Application.Title
│   ├── NewKernelHandler.pas      # 핵심: T1+T2 통합, 함수 포인터 교체
│   ├── SyscallGateway.pas        # T1: 직접 시스템 콜 스텁 (Read/Write/Open/VQE)
│   ├── AntiCheatDetector.pas     # T2: AC 탐지 — 프로세스, 드라이버, 서비스
│   ├── PhysicalMemory.pas        # T2: 드라이버 로더 + IOCTL을 통한 물리 메모리 R/W
│   ├── KernelBridge.pas          # T2: 커널 우회 오케스트레이터 + ObCallback 비활성화
│   ├── StealthHiding.pas         # T2: PsActiveProcessLinks 언링킹을 통한 프로세스 숨기기
│   ├── PEPatcher.ps1             # 빌드 후 PE 변형
│   └── Build-Stealth.ps1         # 레거시 독립 빌드 스크립트
└── cheat-engine/                  # 업스트림 CE 소스 (Build.ps1이 클론)

작동 원리

티어 1: 사용자 모드 회피

표면 난독화 — CE의 내장 {$ifdef altname} 조건부 컴파일 사용:

  • 창 제목: "Cheat Engine 7.5" 대신 "Runtime Modifier"
  • 레지스트리 키: \Software\Cheat Engine\ 대신 \Software\Runtime Modifier\
  • 모든 사용자 표시 문자열: "Modification", "Code Table" 등
  • PE 메타데이터: 일반 회사/파일 설명, 버전 정보 제거
  • 출력 이름: cheatengine-x86_64.exe 대신 sysdiag64.exe

시스템 콜 게이트웨이 — CE의 DBK 커널 드라이버는 비활성화됩니다 (해당 인증서 해시는 EAC/BE에 의해 블랙리스트 처리됨). 대신 모든 메모리 접근 함수 (ReadProcessMemory, WriteProcessMemory, VirtualQueryEx, OpenProcess)가 직접 syscall 명령어 스텁을 통해 리디렉션됩니다:

  • 안티치트 후크가 활성화되기 전에 디스크에서 ntdll.dll 읽기
  • PE 내보내기 테이블을 파싱하여 원시 시스템 콜 번호 추출
  • 어셈블리 스텁 생성: mov r10, rcx; mov eax, [syscall_num]; syscall; ret
  • EAC/BE가 설치한 ntdll.dll의 사용자 모드 후크 우회

티어 2: 커널 브리지 (BYOVD — WinNotify.sys)

ObRegisterCallbacks를 통해 핸들 생성을 차단하는 커널 수준 안티치트용:

  1. 탐지: EAC/BE 드라이버 (EasyAntiCheat.sys, BEDaisy.sys) 및 서비스 스캔
  2. 드라이버 로딩: Windows 서비스 제어 관리자를 통해 WinNotify.sys / signeddrv.sys 로드 (Microsoft Authenticode 서명, 2026, 바이러스 토탈 탐지 0건)
  3. KASLR 무력화 (IOCTL 0x22200C): 커널의 로드된 모듈 목록에서 ntoskrnl.exe 베이스 주소 직접 읽기
  4. 커널 가상 메모리 R/W (IOCTL 0x222040/0x222044): 물리 주소 변환 없이 모든 커널 가상 주소 읽기/쓰기
  5. EPROCESS 워킹: System 프로세스(PID=4)를 찾아 ActiveProcessLinks를 따라 대상 게임 프로세스 탐색
  6. CR3 페이지 테이블 워킹 (IOCTL 0x222050/0x222054): 게임의 DirectoryTableBase를 사용하여 자체 페이지 테이블을 통해 가상 메모리 읽기/쓰기
  7. : 없음, 없음 — ObCallbacks에 완전히 보이지 않음

티어 3: DMA 하드웨어 (미구현)

하이퍼바이저 수준 안티치트(Vanguard, Faceit)의 경우, 커널과 하이퍼바이저 보호를 모두 우회하여 버스에서 물리 RAM을 읽을 수 있는 PCIe DMA 장치가 필요합니다. 향후 연구 확장으로 문서화되었습니다.

사전 요구 사항

  1. Lazarus IDE 3.x 및 FreePascal 3.2.2: https://www.lazarus-ide.org/
  2. Git — 업스트림 CE 저장소 클론용
  3. 관리자 권한 (드라이버 로딩 및 프로세스 접근에 필요)
  4. WinNotify.sys / signeddrv.sys — 다음을 제공하는 Microsoft 서명 커널 드라이버:
    • 임의 커널 가상 메모리 읽기 (IOCTL 0x222040)
    • 임의 커널 가상 메모리 쓰기 (IOCTL 0x222044)
    • 프로세스별 CR3 페이지 테이블 워커 (IOCTL 0x222050/0x222054)
    • C:\Windows\System32\drivers\ 또는 컴파일된 실행 파일과 같은 위치에 배치

빌드 지침

root@kitploit:~
git clone https://github.com/NulledNah/cheat-engine-undetectable.git
cd cheat-engine-undetectable
.\Build.ps1 -Clean

# Lazarus가 C:\lazarus에 없는 경우:
.\Build.ps1 -Clean -LazarusPath "D:\lazarus"

스크립트는 다음을 수행합니다:

  1. 업스트림 Cheat Engine 클론 (없는 경우)
  2. 패치된 파일을 업스트림 소스에 복사
  3. 빌드 식별자 무작위화 (버전, 빌드 번호)
  4. Release 64-Bit 모드에서 lazbuild로 컴파일
  5. PEPatcher를 실행하여 Rich Header 제거, 섹션 이름 변경, 타임스탬프 무작위화
  6. bin\sysdiag64.exe 출력

런타임 동작

root@kitploit:~
sysdiag64.exe 실행
  │
  ├─ DetectAntiCheat() → 실행 중인 AC 엔진 스캔
  │
  ├─ [커널 AC 미탐지]
  │   └─ T1 활성: 모든 작업에 시스템 콜 우회
  │
  ├─ [EAC/BE 탐지 + WinNotify.sys 사용 가능]
  │   ├─ SCM을 통해 드라이버 로드
  │   ├─ IOCTL 0x22200C → 커널 베이스 유출 (KASLR 무력화)
  │   ├─ IOCTL 0x222040 → PsInitialSystemProcess 읽기 → ActiveProcessLinks 워킹
  │   ├─ 게임 EPROCESS 찾기 → DirectoryTableBase (CR3) 추출
  │   ├─ 자체 프로세스를 열거에서 숨기기
  │   └─ 모든 메모리 작업은 CR3 페이지 테이블 워킹으로 수행 (핸들 0개, OpenProcess 0회)
  │
  └─ [Vanguard/Faceit 탐지]
      └─ 경고: 하이퍼바이저 AC — T3 필요 (DMA 하드웨어, 미구현)

학술적 맥락

이 프로젝트는 다음 사이버보안 개념을 시연합니다:

  • CVE 악용: CVE-2019-16098 — 권한 없는 사용자 모드에서 임의 물리 메모리 매핑을 허용하는 서명 드라이버 취약점
  • 커널 객체 조작: EPROCESS, ObCallbacks 및 페이지 테이블 구조체의 직접 수정
  • PE 파일 형식: Rich Header, 섹션 헤더, 디버그 디렉토리의 프로그래밍 방식 조작
  • 안티치트 아키텍처: 탐지 스택 이해: 사용자 모드 후크 → 커널 콜백 → 하이퍼바이저 보호
  • Windows 내부 구조: x64 페이징 (PML4→PDP→PD→PT), 시스템 콜 메커니즘, Object Manager, 서비스 제어 관리자
  • 회피 기법: 표면 난독화, 시스템 콜 게이트웨이, 핸들 클로킹, 프로세스 숨기기, BYOVD

제한 사항

  • Vanguard는 하이퍼바이저 수준(부팅 시 드라이버)에서 작동하며 T3(DMA 하드웨어) 없이는 우회할 수 없음
  • Faceit/ESEA는 계층화된 커널 + 하이퍼바이저 보호를 사용 — T3 필요
  • WinNotify.sys는 향후 Windows 업데이트에서 Microsoft의 드라이버 차단 목록에 추가될 수 있음
  • HVCI/VBS가 활성화된 Windows 11은 유효한 Microsoft 서명에도 불구하고 드라이버를 차단할 수 있음
  • EPROCESS 오프셋은 Windows 빌드에 따라 다름; 포함된 목록은 10 22H2 및 11 23H2를 지원

참고 자료

  • WinNotify.sys / signeddrv.sys: Microsoft 서명 취약 커널 드라이버 (2026, 바이러스 토탈 탐지 0건)
  • Cheat Engine: https://github.com/cheat-engine/cheat-engine
  • Windows NT 커널: ObRegisterCallbacks, PsActiveProcessLinks, EPROCESS, CR3/DirectoryTableBase
  • Lazarus IDE: https://www.lazarus-ide.org/
  • LOLDrivers: https://www.loldrivers.io/

학술 사용 전용 — 이 프로젝트는 대학 논문/연구 커리큘럼의 일부입니다. 대학 정책에 따라 학기가 종료되면 폐기됩니다.

도구 다운로드
안티치트유형전략상태
Warden (Blizzard)사용자 모드T1작동 가능
VAC (Valve)사용자 모드T1작동 가능
XIGNCODE3사용자 모드 드라이버T1작동 가능
EasyAntiCheat커널 드라이버T2WinNotify.sys 필요
BattlEye커널 드라이버T2WinNotify.sys 필요
nProtect GameGuard커널 드라이버T2WinNotify.sys 필요
Ricochet (CoD)커널 드라이버T2부분 지원
Vanguard (Riot)하이퍼바이저T3 (DMA)미구현
Faceit / ESEA커널 + 하이퍼바이저T3 (DMA)미구현
핸들 불필요
OpenProcess
NtReadVirtualMemory
  • 프로세스 숨기기: CE의 EPROCESS를 PsActiveProcessLinks에서 언링크