APP游戏TCP包被劫持篡改的一些解决方案

根据中间人的测试方案可以直接看到漏洞在游戏客户端的显示效果,大大提高了漏洞发现的效率;但是与上一代方案相比,仍然有两个问题没有解决:协议访问时间长,因为协议包解析涉及到粘贴和解包等问题,比较复杂,不仅要解析数据层,还要解析协议层和数据流层。工作量大。


游戏的二次改编耗费大量金钱。在增量测试中,游戏经常根据业务需求和第一轮安全评估的结果修改加密和协议方案。这种方案很可能与当前的接入协议流不一致,因此重新分析协议流非常耗时。所有上述问题都是由协议解析方案的局限性造成的。要想进一步发展,需要从根本上抛弃原有的观念。


根据客户端注入的GameDancer为了解决以往方案的不足,我们准备重新设计测试方案。结合之前的测试经验,重新设计方案的目标是:

1.不在数据流级操作,在协议级操作较少,直接操作可见明文数据内容。

2.测试协议的组件过程应该尽量在加解密之前,因为加解密方案是可变的,很难固定和适配。

3.不用离线运行就可以直接在客户端看到漏洞的显示效果。

4.方便主动发起测试协议,使用非劫持方式向游戏服务器发起测试协议,无需管理游戏本身的包序列号。

5.测试工具在前端显示完全解析的协议格式和数据,并执行测试数据推荐和模糊自动覆盖。

为了实现上述设计目标,我们放弃了原有的协议方案,通过代码注入的方式开发了一种新的游戏安全漏洞挖掘工具——游戏舞者。设计的主要思想是通过hook的游戏逻辑中的协议交互接口获取游戏的交互明文数据。分析数据后,通过主动调用游戏界面,将测试协议通过游戏客户端发送到游戏服务器。简单来说,对于这个测试方案,游戏客户端是一个为我们的工具提供协议解析和协议发送服务的模块,通过游戏本身自动完成这个复杂的工作。

分享: