游戏外挂的原理

开篇之前先来点题外话,我的第一篇博客,和技术无关,不喜勿喷,除了偶尔玩玩王者之外大型的网络游戏不玩,所以文中说的不对的地方,欢迎到评论区指正。

最近这段时间看大家玩《绝地求生》玩的挺火的,还有挺多的外挂,由于遇到不明白的问题比较喜欢琢磨,所以这几天查了好多资料对外挂的原理进行了一个大概的了解

外挂(开源)具体可以实现什么操作?

还是以绝地求生为例


开源代码可以实时透视、去草,可怕的是竟然还可以通过安全检测!
你可以想想,当你美滋滋的找到了一个空投,欢喜的躲在草地里当个LYB,神仙在3000米之外给你一枪爆头,你心里是不是瞬间十万个草泥马飞奔而过?

此时站在对方的视角而言是什么样的?(开了除草外挂)
简而言之那就是上帝的视角,开了除草外挂的神仙们,看到的视角是,一个人傻不拉几的趴那,简直就是一个固定靶,不打你简直就是对不起自己,就算枪法再臭也能爆了你的头


网络游戏的结构原理

客户端与服务器端连接示意图


 
任何的网络游戏都有服务器端与客户端,这儿说点题外话,不仅仅是游戏如此,比如你的微信、QQ、各种手机软件都是这样的,你的手机上的软件是客户端,给你提供服务的那边有服务器,你手机联网之后访问的就是服务器上的数据。
通常情况下客户端负责的是我们玩游戏的一切交互,简单来说就是你点击技能了能放大招,按方向键能走,诸如此类的展现与操作的结果。服务器端负责的是数据的验证、分发,处理等等的工作。

射击类网络游戏(以《绝地求生》为例)的特殊性

射击类网络游戏就比较特殊了,这一类的游戏对数据的实时性性要求是很高的,作为主打真实的《绝地求生》,需要处理的游戏数据就更加的复杂了。
比如,枪支种类不同弹道也不一样,你与敌人的距离,击中敌人不同的身体部位会有不同的伤害值等等的一大堆数据,如果每个人游戏时产生的数据都交给服务器来处理的话对服务器的性能是个很大的考验,而且会有很高的“延时”


假设数据交给处理器处理,你打了对方一枪,客户端会把从你打出子弹到子弹飞行,对方飙血等这一系列的数据发给服务器,服务器再去对这些进行计算,然后将处理的结果发送给你和被打中的敌人,在这可以设想一下,一台服务器上有很多场比赛,此时这台服务器需要同时处理每个人比赛中千变万化的数据,这中间哪怕产生半秒钟的处理时间,都会让让你觉得这游戏真的“好卡”啊!

玩家要看到的 是打中了敌人,对方立刻飙血,容不得半秒的等待。


所以射击类游戏为了保证游戏体验,只能把数据放在客户端处理也就是你自己的计算机上,以你打了对方一枪为例,在本地计算机处理完这些数据,服务器只需要对你处理完之后产生的结果进行接收,也就是你打中了敌人,再将相应的结果转发给敌人,这中间的“延时”就会非常低了,这样才能保证游戏流畅经行。


外挂的原理

正是因为数据的本地处理,才让外挂有了可乘之机,外挂可以通过修改客户端处理 的数据来欺骗服务器,比如闪电侠外挂,玩家在正常情况下(没有载具),速度是有一个上限的,而外挂可以通过修改数据欺骗服务器,比如它会说你正骑着一辆摩托车(实际是没有的),这就可以让你有摩托车一样的速度,实现的就是加速的效果。
还有自动瞄准,服务器会将比赛中其他玩家的位置信息发到你的计算机上,这样你在游戏中才能瞄准敌人,外挂通过获取这个位置信息进行自动瞄准锁头等操作。
还有比如说无限子弹、改变一下设计速度、改变子弹的威力,都是通过这样实现的。
以目前射击游戏处理数据的机制来看,更新游戏只能短暂的让外挂无法使用,但是你游戏能更新外挂也能更新,想要彻底的根除外挂几乎不可能,唯一可以做的就是封号,还有就是像腾讯一样配合执法部门用法律手段进行打击,让想要通过外挂牟利的人不敢作恶。
注:游戏外挂的销售额是十分惊人的,甚至可以达到上百万人民币。

但是随着腾讯代理了《绝地求生》国服后这些外挂销售者也不敢明目张胆的销售外挂了。但是你断了人家的财路,所以就出现了一个鱼死网破的事——国内某外挂作者已于前段时间把外挂开源发布在了论坛上。这意味着有可能会用来外挂的免费时代。

文章中的有些信息来源于网络,如有侵权,请联系作者进行删除


林栖者——戏梦如生
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章