SuperAPI AI 工具集

game-engine-resources

安全与审计

查看项目

更新于 10-15 14:53

技能介绍

用途

该技能面向游戏引擎内部结构、源码树、插件以及引擎相关安全研究,来源于 awesome-game-security 资源集合,覆盖商业引擎(Unreal、Unity)与开源引擎。适用于研究 Unreal、Unity、Source、Godot 等引擎的开发者与安全研究人员。

主要能力与覆盖范围

README 覆盖以下条目:

  • Game Engine > Guide
  • Game Engine > Source
  • Game Engine Plugins:Unreal、Unity、Godot、Lumix
  • Game Engine Detector
  • Cheat > SDK CodeGen
  • Cheat > Game Engine Explorer:Unreal、Unity、Source
  • Anti Cheat > Game Engine Protection:Unreal、Unity、Source
  • Game Develop > MCP server

主要引擎类别

  • Unreal Engine:官方文档与论坛、源码访问(需 Epic Games 账号)、社区指南与教程、插件开发参考。
  • Unity Engine:C# 参考源码、资源商店资源、Unity 特定设计模式、VR/AR 开发指南。
  • 开源引擎:Godot(免费开源,支持 GDScript 与 C#)、Cocos2d-x(跨平台 2D 游戏框架)、CRYENGINE(高保真图形引擎)、Source Engine(Valve 游戏引擎,多个版本)。
  • 自定义/教学引擎:Hazel Engine(TheCherno 教学系列)、Bevy(基于 Rust 的数据驱动引擎)、Fyrox(Rust 游戏引擎)。

关键技术领域

  • 渲染:用于学习的软件渲染器、光线追踪实现、着色器开发教程、后处理效果。
  • 数学:线性代数库(GLM、DirectXMath)、物理模拟(PhysX、Bullet)、碰撞检测算法。
  • 网络:客户端-服务器架构、KCP 可靠 UDP 协议、Steam 网络集成、MMORPG 服务器实现。

资源类别

  • 文档与指南:学习资源与教程、架构文档、最佳实践与风格指南。
  • 源码:完整引擎实现、子系统参考(渲染器、物理、音频)、插件与扩展示例。
  • 插件与扩展:用于调试 UI 的 ImGui 集成、脚本语言绑定(Lua、.NET)、编辑器工具插件。

引擎选择标准

研究引擎用于安全分析或开发时可参考:目标平台(PC、移动、主机兼容性)、源码访问(开源 vs 专有)、语言(C++、C#、Rust 或脚本)、图形 API(DirectX、OpenGL、Vulkan、Metal)、社区(文档与支持质量)。

SDK 生成工作流

Unreal Engine(Dumper-7):

  1. 从二进制签名识别 UE 版本
  2. 将 Dumper-7 注入运行中的游戏进程
  3. SDK 输出:带 UObject 层级的 C++ 头文件
  4. 关键结构:UObject、FName、UClass、UFunction、UProperty
  5. 生成的 SDK 支持:属性访问、函数调用、蓝图钩子
  6. 替代工具:UnrealDumper、UE4SS(实时脚本 + SDK 转储)

Unity(IL2CPPDumper):

  1. 定位 global-metadata.dat + GameAssembly.dll(或 libil2cpp.so)
  2. 运行 IL2CPPDumper → 输出:dump.cs、il2cpp.h、script.json
  3. 将生成的头文件加载到 IDA/Ghidra 进行符号恢复
  4. 关键结构:Il2CppClass、MethodInfo、FieldInfo、Il2CppType
  5. 对于 Mono 构建:直接用 dnSpy 反编译 Assembly-CSharp.dll

Source Engine(NetVar 解析):

  1. 从 CHLClient 遍历 ClientClass 链表
  2. 对每个类枚举 RecvTable → RecvProp 条目
  3. 构建偏移映射:类名 → 属性名 → 偏移
  4. 示例:CCSPlayer → m_iHealth → 0x100
  5. 工具:hazedumper、source2gen(Source 2)

引擎对象模型

Unreal Engine:

  • 核心层级:UObject → UField → UStruct → UClass;UObject → AActor → APawn → ACharacter → APlayerCharacter
  • 关键全局变量:GObjects(TUObjectArray,所有活动 UObject 实例)、GNames(TNameEntryArray,FName 字符串池)、GWorld(UWorld*,当前世界上下文)、GEngine(UEngine*,引擎单例)
  • 内存布局:UObject 头部包含 VTable、ObjectFlags、InternalIndex、ClassPrivate、NamePrivate、OuterPrivate;属性位于 UClass::PropertySize 定义的偏移处

Unity(IL2CPP):

  • 核心结构:Il2CppDomain → Il2CppAssembly → Il2CppImage → Il2CppClass;Il2CppClass 包含字段、方法、vtable、static_fields 指针
  • 关键模式:il2cpp_domain_get() 获取域单例;il2cpp_class_from_name() 按命名空间 + 名称查找类;il2cpp_runtime_invoke() 从原生代码调用托管方法
  • 元数据:global-metadata.dat 包含字符串池、类型定义、方法签名;部分受保护游戏会加密元数据(需要自定义解密器)

Source Engine:

  • 核心系统:实体列表 IClientEntityList → GetClientEntity(index);ConVar 系统 ICvar → FindVar("sv_cheats");NetVars 用于网络复制属性的 RecvTable 层级
  • 关键接口(通过 CreateInterface 导出访问):IVEngineClient、IClientEntityList、IEngineTrace、ISurface、IPanel(用于 Source 中的叠加渲染)

游戏开发 MCP 服务器

README 的 MCP server 子类别包含与游戏引擎工作流相关的服务器:

  • Unreal Engine MCP:AI 智能体控制 UE 编辑器(生成 actor、修改属性、蓝图)
  • Unity MCP:AI 智能体与 Unity 编辑器及 C# 脚本交互
  • Godot MCP:AI 智能体控制 Godot 编辑器与 GDScript

这些与面向逆向工程的 MCP 工具互补,支持 AI 辅助游戏开发与快速原型设计。

安全研究重点

对于游戏安全研究,理解引擎内部结构有助于:内存布局与对象结构、渲染管线钩子、网络协议分析、反作弊集成点。

数据来源

该技能提供概念性指引与概览信息。详细内容需从以下来源获取:

  1. 项目概览与资源索引:获取主 README 以查看完整精选仓库、工具与描述列表: https://raw.githubusercontent.com/gmh5225/awesome-game-security/refs/heads/main/README.md

  2. 仓库代码详情(归档):项目维护本地归档。若仓库已归档,优先从归档获取而非克隆或直接浏览 GitHub。归档 URL 格式: https://raw.githubusercontent.com/gmh5225/awesome-game-security/refs/heads/main/archive/{owner}/{repo}.txt 示例: https://raw.githubusercontent.com/gmh5225/awesome-game-security/refs/heads/main/archive/ufrisk/pcileech.txt https://raw.githubusercontent.com/gmh5225/awesome-game-security/refs/heads/main/archive/000-aki-000/GameDebugMenu.txt 使用方法:从 URL 识别 GitHub 仓库(owner 与 repo 名);构造归档 URL(将 {owner} 替换为 GitHub 用户名/组织,{repo} 替换为仓库名,不带 .git 后缀);获取归档文件,其中包含由 code2prompt 生成的完整代码快照与文件树。若返回 404,说明仓库尚未归档,回退到 README 或直接浏览 GitHub。

  3. 仓库描述:项目维护自动生成的描述文件,提供仓库用途的简明英文摘要。描述 URL 格式: https://raw.githubusercontent.com/gmh5225/awesome-game-security/refs/heads/main/description/{owner}/{repo}/description_en.txt 示例: https://raw.githubusercontent.com/gmh5225/awesome-game-security/refs/heads/main/description/00christian00/UnityDecompiled/description_en.txt https://raw.githubusercontent.com/gmh5225/awesome-game-security/refs/heads/main/description/ufrisk/pcileech/description_en.txt 使用方法:从 URL 识别 GitHub 仓库;构造描述 URL;获取描述文件。若返回 404,说明描述尚未生成,回退到 README 条目或归档。

回答特定仓库问题时的优先级顺序:描述(快速摘要)→ 归档(完整代码快照)→ README 条目(回退)。

限制

该技能本身仅提供概念性指引与概览,不包含完整实现细节;具体工具、项目与实现需通过上述数据来源获取。资料未提供收费、价格、平台兼容性或实际效果等信息。