《起源游戏引擎的漏洞挖掘与利用.pdf》由会员分享,可在线阅读,更多相关《起源游戏引擎的漏洞挖掘与利用.pdf(42页珍藏版)》请在三个皮匠报告上搜索。
1、为何研究游戏引擎游戏用户基数巨大游戏公司普遍不够重视安全JUST FOR FUN何为游戏引擎何为游戏引擎游戏引擎相当于游戏的内核,是一个游戏的核心组件提供了现成的渲染引擎、物理引擎、碰撞检测系统、音效、脚本引擎、电脑动画、人工智能、网络引擎以及场景管理等等功能开发者可以利用现成的游戏引擎快速的进行游戏开发游戏脚本声音AI物理引擎图形绘制内存管理网络通信何为游戏引擎游戏引擎提供了实现不同功能的API接口开发者可以使用官方提供的SDK来调用接口,实现高度可定制化的游戏开发APIGame AGame B常见的游戏引擎寒霜引擎(FROSTBITE):战地系列,FIFA系列虚幻引擎(UNREAL):质量
2、效应,战争机器起源引擎(SOURCE):CS,军团要塞,DOTA2CRY ENGINE,UNITY3D漏洞?由于性能等方面的原因,大部分的游戏引擎使用C/C+开发而在游戏引擎中的漏洞,往往能影响同引擎开发的所有游戏APIGame AGame B起源引擎起源引擎起源引擎最初为1998年为半条命开发的游戏引擎作为开放授权引擎,使用范围很广引擎构架与功能音频播放建模/动画效果渲染系统Steam 集成物理引擎网络起源引擎多人游戏网络构架采用客户端-服务端网络模型服务端负责游戏规则,玩家动作同步,建立世界等客户端连接至服务端并且”遵守”规则网络流量通过UDP/IP发送起源引擎使用UDP以降低网络延时起源
3、引擎在UPD的基础上重新定义了“TCP”压缩与解压缩加密各种底层的网络处理多人游戏网络构架起源引擎客户端与服务器同步数据的基本时间间隔:TICK每一次TICK中,服务器会将游戏的快照发送给客户端快照中包含着在此TICK中所有已经改变的实体客户端只负责将用户的输入发给服务器多人游戏网络构架快照 tick(角色移动,死亡)输入 tick(w,a,s,d,鼠标点击等)起源引擎起源引擎中,传输信息的基本单位根据发送者分成三大类server messageclient messagenetwork message(客户端与服务端都会发送)Message起源引擎 net_NOP net_Disconnec
4、t net_File net_LastControlMessage net_SplitScreenUser net_Tick net_StringCmd net_SetConVar net_SignonStateNetwork Message客户端和服务端都可以发送的消息,以net_开头起源引擎 clc_ClientInfo clc_Move clc_VoiceData clc_BaselineAck clc_ListenEvents clc_RespondCvarValue clc_FileCRCCheck clc_LoadingProgress clc_SplitPlayerConnect
5、 clc_ClientMessage clc_CmdKeyValuesClient Message由客户端发送,以clc_开头起源引擎 svc_ServerInfo svc_SendTable svc_CreateStringTable svc_UpdateStringTable svc_UserMessage svc_EntityMessage svc_GameEvent svc_PacketEntities svc_TempEntities svc_GameEventList svc_GetCvarValue svc_CmdKeyValues.Server Message由服务端发送,以s
6、vc_开头起源引擎Server Messagesvc_UserMessage是游戏相关的一种特殊的message。由服务器发送,用来通知各种各样的游戏事件。有着数量众多的子消息类型,每个游戏都有区别。数量众多,但是漏洞通常没有办法其他游戏中存在E.g:CS_UM_ShowMenu/TF_UM_ShowMenu CS_UM_SayText.svc_UserMessageShowMenu.起源引擎Network Entities实体(Entities)在客户端和服务端同时存在起源引擎将几乎所有的东西都抽象为实体。服务器会保证所有客户端的实体保持同步只有和客户端有关的实体才会被创建或者更新(可见的/