Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
cheat-engine-undetectable — 学术研究版 - T1:用户态规避(混淆 + 系统调用网关),T2:BYOVD 内核桥接,T3:DMA 硬件(未来工作)。 | Kitploit
工具/GitHubGitHub/gmh5225/cheat-engine-undetectable
漏洞利用逆向工程恶意软件分析学习与教育红队二进制利用
GitHubgmh5225/cheat-engine-undetectable

cheat-engine-undetectable

学术研究版 - 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 种引擎)                                 │
│  ├─ 微软签名驱动 (WinNotify.sys / signeddrv.sys)            │
│  ├─ 通过 IOCTL 进行内核虚拟内存读写(无需物理映射)           │
│  ├─ 基于 CR3 的页表遍历,适用于任意进程                      │
│  ├─ 通过内核基址泄露 IOCTL 绕过 KASLR                       │
│  ├─ ObCallback 绕过(内核结构操作)                         │
│  └─ 进程隐藏(PsActiveProcessLinks 链表摘除)                │
├─────────────────────────────────────────────────────────┤
│  T3: DMA 硬件 [未实现]                                     │
│  └─ 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:反作弊检测 — 进程、驱动、服务
│   ├── PhysicalMemory.pas        # T2:驱动加载器 + 通过 IOCTL 进行物理内存读写
│   ├── KernelBridge.pas          # T2:内核绕过编排器 + ObCallback 禁用
│   ├── StealthHiding.pas         # T2:通过 PsActiveProcessLinks 链表摘除隐藏进程
│   ├── PEPatcher.ps1             # 构建后 PE 变异
│   └── Build-Stealth.ps1         # 旧版独立构建脚本
└── cheat-engine/                  # 上游 CE 源码(由 Build.ps1 克隆)

工作原理

第 1 层:用户态规避

表面混淆 — 使用 CE 内置的 {$ifdef altname} 条件编译:

  • 窗口标题:"Runtime Modifier" 而非 "Cheat Engine 7.5"
  • 注册表键:\Software\Runtime Modifier\ 而非 \Software\Cheat Engine\
  • 所有面向用户的字符串:"Modification"、"Code Table" 等
  • PE 元数据:通用公司/文件描述、剥离版本信息
  • 输出名称:sysdiag64.exe 而非 cheatengine-x86_64.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(微软 Authenticode 签名,2026 年,0 个 VT 检测)
  3. KASLR 绕过(IOCTL 0x22200C):直接从内核已加载模块列表中读取 ntoskrnl.exe 基址
  4. 内核虚拟内存读写(IOCTL 0x222040/0x222044):读写任意内核虚拟地址 — 无需物理地址转换
  5. EPROCESS 遍历:查找 System 进程(PID=4),遍历 ActiveProcessLinks 以定位目标游戏进程
  6. CR3 页表遍历(IOCTL 0x222050/0x222054):使用游戏的 DirectoryTableBase 通过其自身的页表读写其虚拟内存
  7. 零句柄需求:无需 OpenProcess、无需 — 对 ObCallbacks 完全不可见

第 3 层:DMA 硬件(未实现)

针对虚拟机监控器级别的反作弊(Vanguard、Faceit),需要 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 — 微软签名内核驱动,提供:
    • 任意内核虚拟内存读取(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. 使用 lazbuild 以 Release 64 位模式编译
  5. 运行 PEPatcher 以剥离 Rich Header、重命名节区、随机化时间戳
  6. 输出 bin\sysdiag64.exe

运行时行为

root@kitploit:~
启动 sysdiag64.exe
  │
  ├─ DetectAntiCheat() → 扫描正在运行的反作弊引擎
  │
  ├─ [未检测到内核级反作弊]
  │   └─ T1 激活:所有操作均使用系统调用绕过
  │
  ├─ [检测到 EAC/BE 且 WinNotify.sys 可用]
  │   ├─ 通过 SCM 加载驱动
  │   ├─ IOCTL 0x22200C → 泄露内核基址(KASLR 已绕过)
  │   ├─ IOCTL 0x222040 → 读取 PsInitialSystemProcess → 遍历 ActiveProcessLinks
  │   ├─ 查找游戏 EPROCESS → 提取 DirectoryTableBase (CR3)
  │   ├─ 从枚举中隐藏自身进程
  │   └─ 所有内存操作均通过 CR3 页表遍历(零句柄、零 OpenProcess)
  │
  └─ [检测到 Vanguard/Faceit]
      └─ 警告:虚拟机监控器级反作弊 — 需要 T3(DMA 硬件,未实现)

学术背景

本项目演示了以下网络安全概念:

  • CVE 漏洞利用:CVE-2019-16098 — 签名驱动漏洞,允许非特权用户态进行任意物理内存映射
  • 内核对象操作:直接修改 EPROCESS、ObCallbacks 和页表结构
  • PE 文件格式:以编程方式操作 Rich Header、节区头、调试目录
  • 反作弊架构:理解检测栈:用户态钩子 → 内核回调 → 虚拟机监控器保护
  • Windows 内部机制:x64 分页(PML4→PDP→PD→PT)、系统调用机制、对象管理器、服务控制管理器
  • 规避技术:表面混淆、系统调用网关、句柄伪装、进程隐藏、BYOVD

局限性

  • Vanguard 运行在虚拟机监控器级别(启动时驱动),没有 T3(DMA 硬件)则无法绕过
  • Faceit/ESEA 使用分层内核 + 虚拟机监控器保护 — 需要 T3
  • WinNotify.sys 可能在未来 Windows 更新中被加入微软驱动阻止列表
  • 启用 HVCI/VBS 的 Windows 11 可能阻止该驱动,即使具有有效的微软签名
  • EPROCESS 偏移量因 Windows 构建版本而异;附带的列表覆盖 10 22H2 和 11 23H2

参考

  • WinNotify.sys / signeddrv.sys:微软签名的易受攻击内核驱动(2026 年,0 个 VT 检测)
  • 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 (暴雪)用户态T1可用
VAC (Valve)用户态T1可用
XIGNCODE3用户态驱动T1可用
EasyAntiCheat内核驱动T2需要 WinNotify.sys
BattlEye内核驱动T2需要 WinNotify.sys
nProtect GameGuard内核驱动T2需要 WinNotify.sys
Ricochet (CoD)内核驱动T2部分可用
Vanguard (Riot)虚拟机监控器T3 (DMA)未实现
Faceit / ESEA内核 + 虚拟机监控器T3 (DMA)未实现
NtReadVirtualMemory
  • 进程隐藏:将 CE 的 EPROCESS 从 PsActiveProcessLinks 中摘除