-
-
[原创]游戏漏洞挖掘之协议分析
-
发表于: 2017-12-29 10:02 2528
-
确定了游戏的序列化过程和明文buf,接下来就可以针对游戏重点的一些逻辑进行协议分析了。协议分析目的是,确定协议对应的游戏逻辑和协议字段对应的含义。协议分析的核心思想是通过控制变量来观察协议变化,具体方法如下:
下面针对各种分析方法进行详细描述协议对应游戏逻辑:有些游戏的协议在分析的时候,可以解析出协议名称,大部分时候仅仅通过协议名称,就能将协议的作用猜测的差不多:
较为简单的协议交互往往也比较好分析,一般这些协议不频繁,且一条协议对应着一项游戏操作,复杂的情况下,有些游戏的协议交互非常频繁,即使游戏不进行任何操作,也会有大量的协议触发,此时可能正常的协议操作被淹没在了众多的协议序列中,于是就需要进行协议的对比。
往往在协议对比分析过程需要用到交集法和并集法,即通过控制影响游戏的不同因素,来观察哪些协议是重复的,哪些协议是单独出现的,结合游戏场景,进一步确定对应协议的含义。
字段对应的协议含义:在分析清楚了协议对应的游戏逻辑后,便需要分析协议中每一个字段的含义:有的游戏的协议字段,可以解析出对应的名称,往往通过协议名称就能猜测其代表的意思。而有的游戏协议字段,往往具有特定的数据结构,如我们在分析人物移动的时候,已经确定了移动协议,此时发现移动协议中有3个字段分别是浮点数数据类型,则很大可能这三者代表着人物当前的位置坐标x,y,z三个方向。
当然还有很多时候,协议字段并不容易分析,有可能因为协议字段的名称含糊不清,也有可能协议中根本不含有字段名称,此时分析就需要结合同一条协议的不同触发场景,对比进行分析,大胆猜测字段含义。
*转载请注明来自游戏安全实验室(GSLAB.QQ.COM)
下面针对各种分析方法进行详细描述协议对应游戏逻辑:有些游戏的协议在分析的时候,可以解析出协议名称,大部分时候仅仅通过协议名称,就能将协议的作用猜测的差不多:
较为简单的协议交互往往也比较好分析,一般这些协议不频繁,且一条协议对应着一项游戏操作,复杂的情况下,有些游戏的协议交互非常频繁,即使游戏不进行任何操作,也会有大量的协议触发,此时可能正常的协议操作被淹没在了众多的协议序列中,于是就需要进行协议的对比。
往往在协议对比分析过程需要用到交集法和并集法,即通过控制影响游戏的不同因素,来观察哪些协议是重复的,哪些协议是单独出现的,结合游戏场景,进一步确定对应协议的含义。
字段对应的协议含义:在分析清楚了协议对应的游戏逻辑后,便需要分析协议中每一个字段的含义:有的游戏的协议字段,可以解析出对应的名称,往往通过协议名称就能猜测其代表的意思。而有的游戏协议字段,往往具有特定的数据结构,如我们在分析人物移动的时候,已经确定了移动协议,此时发现移动协议中有3个字段分别是浮点数数据类型,则很大可能这三者代表着人物当前的位置坐标x,y,z三个方向。
当然还有很多时候,协议字段并不容易分析,有可能因为协议字段的名称含糊不清,也有可能协议中根本不含有字段名称,此时分析就需要结合同一条协议的不同触发场景,对比进行分析,大胆猜测字段含义。
*转载请注明来自游戏安全实验室(GSLAB.QQ.COM)
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
赞赏
他的文章
看原图
赞赏
雪币:
留言: