| name | game-hacking |
| category | redteam |
| description | Authorized game security, reverse engineering, protocol analysis, memory analysis, hook, and automation workflow guide. |
游戏辅助开发全链路指南
概述
游戏辅助开发是逆向工程的一个分支,核心是理解游戏的运行机制,然后在此基础上扩展或修改其行为。
开发流程遵循「由外到内、由浅入深」的原则:
目标分析 → 方案选择 → 环境搭建 → 逆向分析 → 功能实现 → 测试验证
何时使用
- 开发游戏辅助工具(自瞄、透视、加速等)
- 分析游戏网络协议(抓包、重放、伪造)
- 逆向游戏客户端逻辑(反编译、动态调试)
- 修改游戏内存数据(血量、坐标、物品等)
- 编写游戏自动化脚本(挂机、刷副本、日常任务)
- 学习游戏安全与逆向工程
技术栈速查
| 语言/工具 | 用途 |
|---|
| C/C++ | 内存读写、DLL注入、Hook实现、驱动开发 |
| Python | 协议分析、自动化脚本、Frida脚本、图像识别 |
| x86/x64 汇编 | 代码分析、Shellcode编写、指令级修改 |
| DirectX/OpenGL | 渲染Hook、透视实现、Overlay绘制 |
| Frida | 手游动态插桩、函数Hook |
| IDA Pro / Ghidra | 静态反编译分析 |
| x64dbg / WinDbg | 动态调试跟踪 |
| Wireshark / mitmproxy | 网络协议抓包分析 |
| OpenCV | 图像识别、模板匹配 |
开发工作流
第一步:目标分析
在动手之前,先弄清楚目标游戏的基本信息:
- 游戏引擎 — Unity(C#/IL2CPP)、Unreal Engine(C++)、自研引擎
- 保护机制 — 反调试、加壳、完整性校验、驱动保护
- 运行平台 — Windows / Android / iOS / 主机
- 网络架构 — 客户端权威 / 服务器权威 / P2P
- 内存特征 — 关键数据结构、基址、偏移
第二步:方案选择
根据需求选择技术路线:
| 需求 | 推荐方案 | 参考文档 |
|---|
| 修改游戏数值 | 内存读写 | references/memory-rw.md |
| 分析/伪造网络包 | 协议分析 | references/protocol-analysis.md |
| 理解游戏逻辑 | 反编译 | references/decompilation.md |
| 拦截/修改函数 | Hook技术 | references/hook-techniques.md |
| 隐藏辅助进程 | 驱动开发 | references/driver-dev.md |
| 自动执行操作 | 自动化脚本 | references/automation.md |
第三步:环境搭建
基础工具链(Windows PC):
逆向分析:
- IDA Pro 7.x 或 Ghidra(免费)— 静态分析
- x64dbg — 动态调试
- Cheat Engine — 内存扫描
- Process Hacker — 进程分析
网络分析:
- Wireshark — 底层抓包
- mitmproxy — HTTP/HTTPS 代理
- Fiddler — Web 调试代理
开发工具:
- Visual Studio — C/C++ 开发
- Python 3.x + pip — 脚本开发
- MinGW — GCC 编译器
手游特化:
- Frida — 动态插桩
- jadx — APK 反编译
- Il2CppDumper — Unity IL2CPP 分析
Android 手游环境:
pip install frida-tools
第四步:逆向分析
按照「静态 → 动态 → 协议」的顺序逐步深入:
- 静态分析 — 用 IDA/Ghidra 打开目标文件,找到关键函数
- 动态调试 — 用 x64dbg/Frida 跟踪运行时行为
- 协议分析 — 抓包分析网络通信结构
详见各模块 reference 文档。
第五步:功能实现
根据分析结果选择实现方式:
- 内存修改类:使用
ReadProcessMemory / WriteProcessMemory 或驱动级读写
- Hook类:Inline Hook / IAT Hook / 渲染Hook
- 协议类:代理转发 / 自定义客户端 / 协议重放
- 自动化类:图像识别 + 模拟输入
代码模板位于 scripts/templates/ 目录。
第六步:测试验证
- 功能测试:验证功能是否正常工作
- 稳定性测试:长时间运行是否崩溃
- 兼容性测试:不同游戏版本是否兼容
- 检测测试:是否被反外挂系统检测
平台特化
根据目标平台选择对应的特化文档:
- PC 端游 —
references/platform-pc.md(DirectX Hook、进程注入、驱动开发)
- 手游 —
references/platform-mobile.md(Frida、Xposed、so注入、il2cpp)
- 主机 —
references/platform-console.md(存档修改、自制系统)
安全与法律提醒
本技能仅用于合法的安全研究和授权测试。在使用前确保:
- 仅在自己拥有或获得授权的环境中测试
- 遵守目标游戏的服务条款和当地法律法规
- 不用于破坏他人游戏体验或商业牟利
- 了解相关法律风险(计算机欺诈和滥用法等)
学习路径
入门阶段(1-2个月)
1. Cheat Engine Tutorial — CE 自带的 7 关教程,学习内存扫描基础
2. 基础汇编 — x86 汇编基础(寄存器、指令、栈)
3. 简单游戏逆向 — 用 CE 分析单机游戏的血量、金币
4. Python 基础 — 后续脚本开发需要
进阶阶段(3-6个月)
1. IDA/Ghidra 使用 — 静态分析入门
2. x64dbg 动态调试 — 跟踪函数调用、分析逻辑
3. Hook 技术 — Inline Hook, IAT Hook, DLL 注入
4. 协议分析 — Wireshark 抓包、HTTP/HTTPS 代理
5. 游戏引擎基础 — Unity/UE4 的基本结构
高级阶段(6个月+)
1. 驱动开发 — WDF 框架、内核通信
2. 反外挂对抗 — 分析主流反外挂系统
3. 引擎逆向 — IL2CPP/UE4 深度分析
4. 混淆与反混淆 — 代码保护与绕过
5. 安全研究 — 漏洞挖掘、安全审计
高级技术详解
DLL 注入
DLL 注入是将自定义代码加载到目标游戏进程中的核心技术。
6 种注入方法(从简单到高级):
| 方法 | 原理 | 隐蔽性 | 难度 |
|---|
| CreateRemoteThread | 创建远程线程调用 LoadLibrary | 低 | ★★ |
| SetWindowsHookEx | 利用系统钩子机制注入 | 中 | ★★ |
| APC 注入 | 异步过程调用注入 | 中 | ★★★ |
| 进程空洞 (Process Hollowing) | 挂起进程,替换内存内容 | 高 | ★★★★ |
| Thread Hijacking | 劫持已有线程执行注入代码 | 高 | ★★★★ |
| 反射式注入 | DLL 自加载,不经过 LoadLibrary | 最高 | ★★★★★ |
CreateRemoteThread 基本流程:
1. OpenProcess() — 打开目标进程
2. VirtualAllocEx() — 在目标进程分配内存
3. WriteProcessMemory() — 写入 DLL 路径
4. CreateRemoteThread() — 创建线程调用 LoadLibraryA
5. CloseHandle() — 清理句柄
Interception 驱动注入(硬件级):
- 内核级输入注入,和真实硬件输入无法区分
- 安装 Interception 驱动后用 Python/C++ 调用
- 游戏无法检测(反外挂只能检测软件级输入)
- 详见: https://github.com/oblitum/Interception
内存读写(高级)
libmem 库(推荐):
核心 API:
进程操作: LM_FindProcess, LM_EnumProcesses, LM_IsProcessAlive
模块操作: LM_FindModule, LM_EnumModules, LM_LoadModule
内存操作: LM_ReadMemory, LM_WriteMemory, LM_AllocMemory
扫描操作: LM_PatternScan, LM_SigScan, LM_DeepPointer
Hook操作: LM_HookCode, LM_VmtHook, LM_UnhookCode
指针追踪(Pointer Chain):
游戏基址 → 第一层偏移 → 第二层偏移 → ... → 最终地址
每次游戏更新基址会变,但指针链结构通常不变
使用 Cheat Engine 的指针扫描功能找到稳定指针链
Hook 技术(高级)
| 类型 | 原理 | 用途 |
|---|
| Inline Hook | 替换函数开头几条指令为跳转 | 拦截任意函数 |
| IAT Hook | 修改导入地址表 | 拦截 API 调用 |
| VMT Hook | 替换虚函数表指针 | 拦截 C++ 虚函数 |
| DXGI Hook | 拦截 DirectX 渲染管线 | 透视、ESP |
| DirectInput Hook | 拦截输入 API | 绕过输入捕获 |
Inline Hook 原理:
原始函数:
push rbp ← 保存原指令
mov rbp, rsp ← 保存原指令
... ← 原函数逻辑
Hook 后:
jmp my_hook ← 替换为跳转到自定义函数
nop ← 填充
... ← 原函数逻辑(不执行)
my_hook:
执行自定义逻辑
执行被替换的原指令
jmp 回原函数继续执行
反外挂对抗
主流反外挂系统:
| 系统 | 保护游戏 | 检测方式 |
|---|
| EasyAntiCheat (EAC) | Fortnite, Apex | 内核驱动 + 行为分析 |
| BattlEye | PUBG, R6S | 内核驱动 + 内存扫描 |
| VAC | CS2, Dota2 | 签名扫描 + 行为分析 |
| Vanguard | Valorant | 内核驱动(开机启动) |
| ACE | 和平精英 | 驱动 + 硬件指纹 + 行为分析 |
检测手段:
1. 进程扫描 — 检查可疑进程名、窗口标题
2. 内存扫描 — 扫描游戏内存是否被修改
3. 模块扫描 — 检查是否有多余的 DLL 加载
4. API 监控 — 监控 SendInput、ReadProcessMemory 等
5. 行为分析 — 鼠标轨迹、命中率、反应时间统计
6. 驱动检测 — 检查是否有可疑内核驱动
7. 完整性校验 — 检查游戏文件是否被修改
绕过思路:
1. 隐藏进程 — 驱动级进程隐藏(DKOM)
2. 隐藏模块 — 手动映射 DLL(反射式注入)
3. 绕过内存扫描 — 使用硬件断点代替软件修改
4. 绕过 API 监控 — 使用原生 API(ntdll 直接调用)
5. 绕过行为分析 — 加入随机延迟和人类行为模拟
6. 绕过驱动检测 — 使用已签名的合法驱动
7. 绕过完整性校验 — 内存补丁代替文件修改
逆向工程工具链
| 工具 | 用途 | 平台 |
|---|
| Ghidra | 静态反编译(免费) | 全平台 |
| IDA Pro | 静态反编译(商业) | 全平台 |
| x64dbg | 动态调试 | Windows |
| Cheat Engine | 内存扫描和修改 | Windows |
| Process Hacker | 进程分析 | Windows |
| Frida | 动态插桩 | 全平台 |
| Binary Ninja | 反编译 | 全平台 |
| GDB | 动态调试 | Linux |
| Wireshark | 网络抓包 | 全平台 |
| PCILeech | DMA 硬件读写 | 硬件 |
| ImGui | 覆盖层 UI | C++ |
最新技术(2025-2026)
DMA 硬件级内存读写:
原理:通过 PCIe 接口直接读取 GPU/内存,绕过所有软件层检测
工具:PCILeech、FPGA 自定义设备
优势:反外挂完全无法检测(硬件层面)
缺点:需要额外硬件(~$300-500)
虚拟化层攻击(Hypervisor):
原理:用 VT-x/EPT 在 Ring -1 层拦截游戏,反外挂看不到
技术:EPT Hook、VMExit 拦截、内存隐藏
优势:比内核驱动更隐蔽
缺点:开发难度极高,需要深入理解 CPU 虚拟化
直接系统调用(Direct Syscalls):
原理:绕过 ntdll.dll,直接调用内核系统调用
技术:手动构造 syscall 指令、SSN 解析、栈伪造
优势:反外挂无法通过 API 监控检测
工具:SysWhispers、HellsGate、RecycledGate
内核回调解除(Callback Unlinking):
原理:断开反外挂注册的内核回调函数
技术:PsSetCreateProcessNotifyoutine 回调数组解除
ObRegisterCallbacks 回调解除
驱动模块隐藏(DKOM)
硬件指纹伪装(HWID Spoof):
原理:修改机器码让反外挂无法追踪硬件
项目:https://github.com/RejiDev/game-hacking-guidelines/blob/master/techniques/hwid.md
内容:主板序列号、硬盘序列号、MAC地址、CPU ID、GPU ID、TPM
Windows 安全绕过:
VBS (Virtualization Based Security) — 虚拟化安全
HVCI (Hypervisor-protected Code Integrity) — 代码完整性保护
CET (Control-flow Enforcement Technology) — 控制流保护
ETW (Event Tracing for Windows) — 事件追踪
项目开发工作流(8 阶段)
阶段 0: 侦察 — 目标分析、反外挂识别、环境搭建
阶段 1: 静态分析 — 二进制逆向、偏移提取
阶段 2: 动态分析 — 实时内存验证(只读)
阶段 3: 概念验证 — 最小渲染、首次写入
阶段 4: 核心构建 — 完整功能实现
阶段 5: 加固 — 检测规避、发布准备
阶段 6: 测试 — 多会话验证
阶段 7: 维护 — 补丁更新、持续维护
实战项目参考
GitHub 开源项目:
推荐资源
详见 reference 文档:
- 开源项目与工具 →
references/resources.md
- 反外挂系统分析 →
references/anti-cheat.md
- 游戏引擎逆向 →
references/game-engines.md
- DLL 注入 →
references/dll-injection.md
- Hook 技术 →
references/hook-techniques.md
- libmem 库 →
references/libmem-guide.md
- C++ 游戏开发 →
references/cpp-game-dev.md