绝地求生外挂源代码被公布,或迎神仙大战时代?

绝地求生大逃杀(PlayerUnknown’s Battlegrounds)》从去年开始就爆红,还引发了全世界玩家的“吃鸡”热潮。

但之后很多外挂制作者也开始瞄准吃鸡这个市场,逆天外挂频频出现,比如之前我们已经见过的“路飞挂”、“黄金甲挂”、“隔空取物挂”等等,吃鸡出神仙早已不是什么新鲜事。

对此,腾讯宣布代理《绝地求生》国服后,不仅成立反外挂专项小组,还联手警方线上线下严打外挂团伙,一度让不少外挂制作者胆颤心惊……

但是这几日,某知名博主爆出一个消息——国内某个外挂作者于前两日已经将某外挂开源发布在论坛上,换句话说这游戏接下来可能会迎来外挂的免费时代。

关于这次事件,有博主表示是腾讯打击外挂惹恼了一批得利者,这些人索性开源外挂,让游戏环境变得更加恶劣!

我们都知道,一个月的外挂销售额是十分惊人的,甚至达到了上百万人民币!但随着腾讯代理国服,这些外挂制作者也不敢明目张胆的销售外挂了,未来还有可能受到法律的制裁,所以就做出这鱼死网破的事。

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

开源的代码可以实现透视、去草等功能,最恐怖的是,竟然可以通过安全监测!

想想吧,你美滋滋的舔了空投找到了吉利服,欢欢喜喜的在草地里当个LYB,神仙3000米之外一枪爆头,你咋想?

毕竟,开了除草外挂的神仙们,看到的视角是,一个人傻傻趴在那里,还绿油油的,简直一个固定靶,枪法再臭也爆你头。

那么为什么开发者没法禁止外挂呢,下面我们就给大家科普一下《绝地求生》外挂的一些原理和为何不能根除的原因吧~

(喜欢问外挂相关知识的小伙伴可得好好做笔记哦)

网络游戏的结构原理

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

首先,任何一款网络游戏都会有客户端与服务器端,通常情况下客户端负责实现我们玩游戏时的一切交互(操作)和展现交互(操作)结果,服务器端负责完成数据验证、处理、分发等工作。

《绝地求生》的特殊性

但是FPS类的射击游戏就比较特殊了,这类游戏对数据的实时性要求特别高,而作为主打真实的百人竞技《绝地求生》,需要处理的数据就更加复杂了。

绝地求生-SKS

例如不同枪械的不同弹道,你与不同敌人间的距离,击中不同的部位会有不同的伤害数值等等一堆数据,如果每个人的数据都交由服务器处理,不但对服务器性能是个重大考验,更重要的是会产生很高的“延迟”。

举个例子,假如数据交由服务器处理,你这边打了敌人一枪,然后客户端把一系列数据发送给服务器,服务器再计算结果,然后再将结果发给你和被打中的敌人。

小伙伴们可以想象一下,一台服务器上有很多场比赛,它需要同时处理每场比赛每个人千变万化的数据,这中间哪怕有半秒钟的处理时间,都会让我们觉得游戏“好卡”啊!

因为我们要看到的是打中敌人,敌人立刻飙血,容不得半秒钟等待。

所以FPS游戏为了保证游戏体验,只能让数据都在玩家本地(也就是我们自己的计算机)进行计算。

还是以打了敌人一枪为例,放在本地计算以后,服务器只需接收到对敌人造成伤害的这个结果,再将相应的结果转发给敌人,这中间的“延迟”就会非常低了,这样才能保证游戏的流畅进行。

外挂的原理

但就是因为数据本地化计算,才让外挂有了可乘之机,外挂可以通过修改数据来欺骗服务器,比如说闪电侠外挂,玩家没有载具的正常情况下,速度是会有个上限的。

而外挂可以通过修改数据欺骗服务器,说你现在正骑着一辆摩托(实际上没有),能够让你拥有摩托车一样的速度,这样就实现了加速。

而自瞄也很简单,服务器会将战局中其他玩家的位置发送到你的电脑上,这样你在游戏中才能在正确的位置看到其他玩家的人物模型,外挂就可以通过读取这些位置信息,从而实现自动瞄准锁头等操作。

至于无限子弹,改变射速,提升子弹威力等,也都是通过修改数据产生的,所以以目前FPS游戏处理数据的机制来看,更新游戏只能短暂的让外挂无法使用,想要彻底根除外挂,几乎是不可能的。

唯一能做的就是封号,还有就是像腾讯那样配合执法部门,用法律手段打击制作外挂的团队,让想要通过外挂牟利的人不敢作恶。

技术可以治好外挂,却治不好人心

技术提供了巨大便利的同时,也带来了很多灰色,甚至黑色的产业链,希望小伙伴们都能忍住诱惑,做将技术用到正途。

原文发布于微信公众号 - 老九学堂(xuetang9)

原文发表时间:2018-01-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏听雨堂

想修改CSS

      下载了一个“通用”的CSS文件,本来想偷懒的,结果发现有问题,就是它用的颜色是变量定义的,无法识别。我又找不到在哪里可以定义。 BODY{     ...

20410
来自专栏谈补锅

记录C#常用的代码片段

using Newtonsoft.Json; using Newtonsoft.Json.Linq;

922
来自专栏闻道于事

商城项目整理(三)JDBC增删改查

商品表的增加,修改,删除,订单表的增加,确认,用户表的查看,日志表的增加,查看 商品表建表语句: 1 create table TEST.GOODS_TABL...

5465
来自专栏跟着阿笨一起玩NET

GB2312转换成UTF-8与utf_8转换成GB2312

1871
来自专栏c#开发者

C# : row-clickable GridView and get and set gridview rows using JavaScript

Complete C# code: ---------------- using System; using System.ComponentModel; ...

2996
来自专栏成长道路

JDBC动态SQL语句连接orcale数据库的工具类

import java.sql.Connection; import java.sql.DriverManager; import java.sql.P...

2500
来自专栏xingoo, 一个梦想做发明家的程序员

windows程序设计-第四章 system1.c

/*---------------------------------------------------- SYSMETS1.C -- System M...

23710
来自专栏菩提树下的杨过

MSDN官方的ASP.Net异步页面的经典示例代码

示例1.演示异步获取一个网址的内容,处理后显示在OutPut这一Label上 using System; using System.Web; using S...

1995
来自专栏菩提树下的杨过

遍历文件夹所有文件(示例)

//要引用 using System.Collections.Specialized; public StringCollection GetAllFile...

2159
来自专栏跟着阿笨一起玩NET

[C#]工具类—FTP上传下载

  不错的文章:http://www.cnblogs.com/greatverve/archive/2012/03/03/csharp-ftp.html

1191

扫码关注云+社区