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报告查看器, 二进制分析, 云安全监控, 云安全运维, 代码混淆, 内存修改, 内核驱动开发, 反作弊绕过, 外挂开发, 检测规避, 游戏安全, 游戏逆向工程, 特征提取, 计算机视觉辅助, 软件脱壳, 钩子技术, 静态分析