RejiDev/game-hacking-guidelines
GitHub: RejiDev/game-hacking-guidelines
游戏逆向与反作弊研究的系统性技术参考指南,涵盖引擎分析、内核技术到行为规避的完整知识体系。
Stars: 0 | Forks: 0
# 游戏逆向指南
游戏模组制作项目的通用参考。分析你的目标,选择一个工作流,然后跟随链接。
## 快速开始:分析你的目标
| 问题 | 选项 | 指南 |
|----------|---------|-------|
| **反作弊?** | EAC, BattlEye, Vanguard, VAC, RICOCHET, GameGuard, 无 | [anti-cheat/](anti-cheat/) |
| **引擎?** | UE4/UE5, Unity (Mono/IL2CPP), Source 1/2, 自定义 | [engines/](engines/) |
| **游戏类型?** | FPS, MMO, 大逃杀, MOBA | [game-types/](game-types/) |
| **网络模型?** | 服务器认证, 客户端认证, P2P, 回滚 | [game-types/network-models.md](game-types/network-models.md) |
| **访问方式?** | 内核驱动, DMA, 外部 RPM, 内部, 混合 | [techniques/memory-access.md](techniques/memory-access.md) |
| **Overlay?** | 外部 D3D, 内部 Present Hook, 无 | [techniques/overlays.md](techniques/overlays.md) |
## 工作流
| 阶段 | 指南 | 摘要 |
|-------|-------|---------|
| 概述 | [workflow/README.md](workflow/README.md) | 各阶段如何连接 |
| 0 | [phase-0-recon.md](workflow/phase-0-recon.md) | 目标概况与环境设置 |
| 1 | [phase-1-static-analysis.md](workflow/phase-1-static-analysis.md) | 二进制逆向与偏移提取 |
| 2 | [phase-2-dynamic-analysis.md](workflow/phase-2-dynamic-analysis.md) | 实时内存验证(只读) |
| 3 | [phase-3-proof-of-concept.md](workflow/phase-3-proof-of-concept.md) | 最小化渲染与首次写入 |
| 4 | [phase-4-core-build.md](workflow/phase-4-core-build.md) | 完整功能实现 |
| 5 | [phase-5-hardening.md](workflow/phase-5-hardening.md) | 检测规避与发布准备 |
| 6 | [phase-6-testing.md](workflow/phase-6-testing.md) | 多会话验证 |
| 7 | [phase-7-maintenance.md](workflow/phase-7-maintenance.md) | 补丁更新与持续维护 |
| — | [variants.md](workflow/variants.md) | 精简工作流(无 AC,专用) |
| — | [decision-gates.md](workflow/decision-gates.md) | 阶段间的通过/终止标准 |
| — | [timelines.md](workflow/timelines.md) | 基于经验水平的时长预估 |
| — | [failure-modes.md](workflow/failure-modes.md) | 各阶段症状与恢复 |
## 参考指南
### 反作弊
| 文件 | 用途 |
|------|---------|
| [eac.md](anti-cheat/eac.md) | Easy Anti-Cheat — 内核驱动与用户模式架构 |
| [battleye.md](anti-cheat/battleye.md) | BattlEye — 内核驱动,服务进程,加密模块 |
| [vanguard.md](anti-cheat/vanguard.md) | Riot Vanguard — 引导时内核驱动,PPL,TPM 认证 |
| [vac.md](anti-cheat/vac.md) | Valve Anti-Cheat / VAC Live / VACNet ML |
| [ricochet.md](anti-cheat/ricochet.md) | RICOCHET — 内核组件与服务端 ML |
| [others.md](anti-cheat/others.md) | GameGuard, PunkBuster, Hyperion, Arxan, Denuvo AC |
| [detection-timing.md](anti-cheat/detection-timing.md) | 跨 AC 检测风险矩阵与封禁潮机制 |
### 引擎
| 文件 | 用途 |
|------|---------|
| [unreal.md](engines/unreal.md) | UE4/UE5 核心全局变量,GObjects,FNamePool,ProcessEvent |
| [unity.md](engines/unity.md) | Mono 与 IL2CPP 运行时检测和指标 |
| [source.md](engines/source.md) | Source Engine 1 & 2 接口系统 |
| [custom.md](engines/custom.md) | 针对未知/自定义引擎的逆向方法 |
**UE5 深入解析:**
| 文件 | 用途 |
|------|---------|
| [ue5-version-detection.md](engines/ue5-version-detection.md) | 运行时引擎版本识别 |
| [ue5-offset-tables.md](engines/ue5-offset-tables.md) | 跨 UE5 版本和游戏的稳定偏移 |
| [ue5-base-kit.md](engines/ue5-base-kit.md) | 可复用基础套件 — 核心全局特征码 |
| [ue5-sdk-generation.md](engines/ue5-sdk-generation.md) | 无需注入的外部 SDK 生成 |
| [ue5-offset-sharing.md](engines/ue5-offset-sharing.md) | 用于社区偏移共享的 JSON schema |
| [ue5-large-world-coords.md](engines/ue5-large-world-coords.md) | 来自 UE4 的双精度 LWC 变更 |
| [ue5-gas-abilities.md](engines/ue5-gas-abilities.md) | GAS:AbilitySystemComponent 布局与激活 |
| [ue5-gas-effects.md](engines/ue5-gas-effects.md) | GAS:冷却与 GameplayEffect 属性 |
| [ue5-gas-tags-cues.md](engines/ue5-gas-tags-cues.md) | GAS:GameplayTags 与 GameplayCues 复制 |
| [ue5-gas-replication.md](engines/ue5-gas-replication.md) | GAS:复制模式与客户端/服务器模式 |
### 游戏类型
| 文件 | 用途 |
|------|---------|
| [fps.md](game-types/fps.md) | Aimbot, ESP, 后坐力, triggerbot |
| [mmo.md](game-types/mmo.md) | 对象管理器,实体列表,机器人,技能破解 |
| [battle-royale.md](game-types/battle-royale.md) | 战利品/玩家 ESP,雷达,预测 |
| [moba.md](game-types/moba.md) | 迷雾移除,脚本,冷却跟踪 |
| [network-models.md](game-types/network-models.md) | 针对不同网络架构的可行方案 |
### 技术 — 内存与访问
| 文件 | 用途 |
|------|---------|
| [memory-access.md](techniques/memory-access.md) | RPM,内核读取,页表遍历,DMA 比较 |
| [injection.md](techniques/injection.md) | LoadLibrary,手动映射,反射式 DLL,线程劫持 |
| [hooking.md](techniques/hooking.md) | IAT, vtable, inline, HWBP, EPT hooks |
| [pattern-scanning.md](techniques/pattern-scanning.md) | AOB 扫描,特征码,更新适应性 |
| [dma.md](techniques/dma.md) | PCILeech, FPGA, IOMMU 绕过 |
| [hypervisors.md](techniques/hypervisors.md) | VT-x / EPT 技术 |
| [syscalls.md](techniques/syscalls.md) | 直接/间接系统调用,SSN 解析,栈欺骗 |
| [hwid.md](techniques/hwid.md) | 硬件指纹与欺骗 |
| [windows-security.md](techniques/windows-security.md) | VBS, HVCI, CET, ETW, Smart App Control |
### 技术 — 内核与驱动
| 文件 | 用途 |
|------|---------|
| [kernel-drivers.md](techniques/kernel-drivers.md) | IPC 模式,加载方法,内核内存访问 |
| [kernel-callbacks.md](techniques/kernel-callbacks.md) | AC 内核回调机制概述 |
| [kernel-callback-structures.md](techniques/kernel-callback-structures.md) | 回调数组内部结构与枚举 |
| [kernel-callback-unlinking.md](techniques/kernel-callback-unlinking.md) | 进程与映像回调解链 |
| [kernel-ob-callbacks.md](techniques/kernel-ob-callbacks.md) | ObRegisterCallbacks 深入研究 |
| [driver-safety.md](techniques/driver-safety.md) | BSOD 预防与内存分配 |
| [driver-ipc.md](techniques/driver-ipc.md) | 共享内存与用户-内核通信 |
| [driver-lifecycle.md](techniques/driver-lifecycle.md) | 热替换,清理与异常处理 |
| [driver-hvci-compat.md](techniques/driver-hvci-compat.md) | 兼容 HVCI 的驱动开发 |
| [driver-testing.md](techniques/driver-testing.md) | 无需重启的内核驱动测试 |
### 技术 — 偏移
| 文件 | 用途 |
|------|---------|
| [offset-version-detection.md](techniques/offset-version-detection.md) | 游戏版本检测与偏移配置格式 |
| [offset-pattern-design.md](techniques/offset-pattern-design.md) | 实现持久模式的稳定性层级 |
| [offset-binary-diffing.md](techniques/offset-binary-diffing.md) | 用于偏移更新的自动化二进制差异对比 |
| [offset-binary-hashing.md](techniques/offset-binary-hashing.md) | 基于哈希的缓存失效与版本控制 |
| [offset-graceful-degradation.md](techniques/offset-graceful-degradation.md) | 偏移失效时的功能降级标志 |
### 技术 — Overlay 与渲染
| 文件 | 用途 |
|------|---------|
| [overlays.md](techniques/overlays.md) | 快速参考 — overlay 方法与检测 |
| [overlay-architecture.md](techniques/overlay-architecture.md) | 架构权衡与反检测 |
| [overlay-external.md](techniques/overlay-external.md) | 外部 overlay 加固与类欺骗 |
| [overlay-internal.md](techniques/overlay-internal.md) | 内部渲染,Present hook,ImGui |
| [overlay-world-space.md](techniques/overlay-world-space.md) | 各引擎的 W2S,ESP,骨骼渲染 |
| [overlay-input.md](techniques/overlay-input.md) | 合成输入方法与检测风险 |
### 技术 — 网络
| 文件 | 用途 |
|------|---------|
| [packet-mitm-setup.md](techniques/packet-mitm-setup.md) | MitM 代理设置与 TLS 绕过 |
| [packet-reverse-engineering.md](techniques/packet-reverse-engineering.md) | 数据包结构逆向工程 |
| [packet-security.md](techniques/packet-security.md) | 重放攻击与服务端检测 |
### 技术 — 调试
| 文件 | 用途 |
|------|---------|
| [debugging-triage.md](techniques/debugging-triage.md) | 分类流程图与失效模式识别 |
| [debugging-ac-monitoring.md](techniques/debugging-ac-monitoring.md) | 监控 AC 行为与分阶段测试 |
| [debugging-crash-analysis.md](techniques/debugging-crash-analysis.md) | 崩溃转储分析与暴露风险 |
### 工具
| 文件 | 用途 |
|------|---------|
| [ida.md](tools/ida.md) | IDA Pro — 设置,重基址,类型库,插件 |
| [ghidra.md](tools/ghidra.md) | Ghidra — 脚本,版本差异,大型二进制文件 |
| [cheat-engine.md](tools/cheat-engine.md) | Cheat Engine — 数值扫描,指针扫描,Lua |
| [x64dbg.md](tools/x64dbg.md) | x64dbg — 动态分析与断点 |
| [reclass.md](tools/reclass.md) | ReClass.NET — 运行时结构重建 |
### 安全行动
| 文件 | 用途 |
|------|---------|
| [safety.md](opsec/safety.md) | 账号安全,开发安全,HWID 欺骗清单 |
| [performance.md](opsec/performance.md) | IPC 批处理,线程,scatter-gather 模式 |
| [behavioral-ml-detection.md](opsec/behavioral-ml-detection.md) | 服务端 ML 遥测与行为分类 |
| [behavioral-humanization.md](opsec/behavioral-humanization.md) | 人类行为建模与疲劳曲线规避 |
## 决策矩阵
### 内存访问
| 情况 | 最佳方案 |
|-----------|---------------|
| 无反作弊 | ReadProcessMemory — 最简单 |
| 用户模式 AC (VAC legacy) | 内核驱动或手动映射 |
| 轻量级内核 AC (VAC Live / CS2) | 在 AC 之前加载的内核驱动,或 DMA |
| 内核 AC (EAC/BE) | 在 AC 之前加载的内核驱动 |
| 引导级内核 AC (Vanguard) | DMA 硬件或虚拟机监控器 |
| 需要最大隐蔽性 | DMA + 第二台机器(注:DMA 正日益通过 IOMMU/总线扫描被检测 — 参见 [dma.md](techniques/dma.md)) |
### 代码执行
| 情况 | 最佳方案 |
|-----------|---------------|
| 无 AC | DLL 注入 |
| 用户模式 AC | 手动映射 + 线程劫持 |
| 内核 AC | Vtable 交换或通过驱动执行 shellcode |
| 完全无法注入 | 仅外部(驱动读取,overlay 绘制) |
### Hooking
| 情况 | 最佳方案 |
|-----------|---------------|
|完整性检查 | Inline hook / detour |
| 代码完整性检查 | 硬件断点 + VEH |
| 激进的完整性检查 | EPT hook (hypervisor) |
| 只需要一个虚函数调用 | Vtable 交换(最干净) |
### Overlay
| 情况 | 最佳方案 |
|-----------|---------------|
| 外部工具 | D3D11 透明窗口 — 参见 [overlay-external.md](techniques/overlay-external.md) |
| 内部(已注入) | Present hook + ImGui — 参见 [overlay-internal.md](techniques/overlay-internal.md) |
| AC 截图游戏窗口 | 外部 overlay(独立 D3D 设备) |
| 真正的全屏游戏 | 必须使用内部 hook 或强制无边框 |
## 常见错误清单
发布前,请验证:
- [ ] 发布版本中无调试字符串
- [ ] 目标进程中未残留 RWX 内存页
- [ ] 所有地址使用特征码扫描(而非硬编码偏移)
- [ ] 偏移失效时的优雅降级(功能标志,而非崩溃)
- [ ] 退出时清理(恢复 hooks,释放分配,解链回调)
- [ ] 未使用黑名单中的易受攻击驱动
- [ ] 进程/窗口名称无害(不是 "cheat", "hack", "inject")
- [ ] 内存读取频率合理(10-30 Hz,而非 1000+)
- [ ] 自动化操作中的行为差异(高斯分布,而非均匀分布)
- [ ] 未留下暴露模块的崩溃转储
- [ ] 未将二进制文件上传至 VirusTotal 或公共扫描器
- [ ] 在小号上测试,绝不用主号
- [ ] 卸载时驱动清理(陈旧句柄,悬空指针)
- [ ] 游戏更新时偏移缓存失效(哈希检查,而非日期)
- [ ] W2S / overlay 数学处理边缘情况(摄像机后方,NaN)
标签:BattlEye反作弊, C++游戏编程, D3D渲染覆盖层, DMA物理内存访问, DNS 反向解析, EAC反作弊, IDAPython, OPSEC安全操作, RICOCHET反作弊, UE4/UE5引擎, UML, Unity引擎, VAC反作弊, Vanguard反作弊, Web报告查看器, 二进制分析, 云安全监控, 云安全运维, 代码混淆, 内存修改, 内核驱动开发, 反作弊绕过, 外挂开发, 检测规避, 游戏安全, 游戏逆向工程, 特征提取, 计算机视觉辅助, 软件脱壳, 钩子技术, 静态分析