首页
社区
课程
招聘
[分享]游戏网络封包解析可行性分析
发表于: 2天前 469

[分享]游戏网络封包解析可行性分析

2天前
469

前言

什么作弊方式是最强的,若是有排名 远程解析网络封包 的方式无疑是最稳定的,由于其运行阶段可以处于集线器、路由器、交换机、网卡硬件等阶段 完全可以不经过操作系统而解析封包中的数据,基于操作系统之上的反作弊软件自然是手足无措,但是这种解决方案的困难远比想象中大,今天就来模拟一下其中的可行性与困难程度。

设想

设想一下,你开了一局游戏 服务器不断向你发送全图的信息包括所有人的坐标、武器、状态等等

作为作弊者的你选择在路由器层下手,将其封装好的数据包逆向拆开EthernetTCP HeaderIP HeaderFCS CRC等信息还原成应用层字节流

继续通过解析的TCP HeaderIP Header关联对应的Socket取得PID和进程路径从而绑定具体进程

接下来就是继续跟踪数据包进入游戏进程的哪个模块,进行了哪些处理,其中必定包含解密验证等算法,将其逆向算法解析

接下来就是在另一台主机获取游戏主机的数据包:通过集线器这种设备,它收到数据包并不会像现代交换机、路由器一样按照mac精准分发,它只做一件事:全局广播的电信号复制,于是两台设备如果使用同一个 MAC 地址,会收到同一份数据帧,由此即可获取传入游戏主机的数据包

若是都搞定那即可将其解密算法移植到另一台主机,只需要读取相应数据包即可完成解析

困难

但以上设想游戏公司早有耳闻,在游戏解析自己的数据包时通常不会进行简单的加密,其中常常会采用会话密钥参与加密的一部分,即使知道加密算法,而密钥通常是动态协商的,并且密钥只存在内存生命周期还很短,想要获取动态协商密钥就必须动态从游戏主机内存中读取

反作弊很重要的一件事:就是逼迫作弊者将对抗平台限定在操作系统,如果脱离这个平台那么反作弊将无意义

也许有的人还会想:若能反解析动态密钥的算法,继续拦截动态密钥的封包不就能获取动态密钥进行就解密了吗

这就说到反作弊的核心目标:不是彻底防御作弊软件,而是提高作弊者的作弊成本(因为所有反作弊都不可能万无一失,这将根据技术的迭代而迭代),这就足以阻拦绝大多数普通攻击者

通过以上分析可以得出,其实解析网络协议这条路的成本非常大,并且可能随着游戏的更新而发生变化,解析内存状态远比解析网络协议容易

所以现实中的外挂通常都不会解析网络包,而是直接读取客户端内存即可实现ESP、自动瞄准、雷达等功能,这完全不需要理解网络协议


[培训]Windows内核深度攻防:从Hook技术到Rootkit实战!

最后于 2天前 被mb_binusgki编辑 ,原因: 补充内容
收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回