找回密码
 注册
X系列官方授权正版
搜索
查看: 5361|回复: 1

[原创] 【随笔】关于游戏外挂的那点事

[复制链接]
发表于 2018-3-17 04:29:08 | 显示全部楼层 |阅读模式
嗯……最近沉迷吃鸡,偶尔会被挂逼打的很惨,也经常看到网上有喷蓝洞不作为的说法。这里以一个未来程序猿的角度,给大家分析一下游戏外挂。

1.外挂是什么
2.外挂的原理
3.外挂能做什么不能做什么
4.如何反外挂

5.为什么射击游戏外挂猖獗

1.外挂是什么    个人对外挂的定义是——一切依靠外部程序,实现在正常游戏中无法实现的操作,或者是获得同样条件下无法获得的信息的手段,都可以视作外挂。比如山口丁的开镜去草,压树雷达,比如射击游戏的自瞄透视等等。

2.外挂的原理
    其实在最早的时候,外挂其实并不像现在那样人人喊打。在早期的游戏中,因为技术等方面的限制,游戏的设计往往趋于冗长枯燥(例如机械重复的刷怪练级打宝)。于是就有了一批“聪明”的玩家编写了一些小程序,通过读取游戏储存在本地的信息,能实现自动打怪,自动寻路等一系列功能,将玩家从无聊的刷怪中解放出来。在这个过程中,外挂程序读取了游戏内的数据,并加以处理后表现出来——这就是自瞄,透视等外挂的原理。而在当时服务器性能和网络带宽也有限,即使是数据量相对小的RPG游戏(如石器时代,传奇,奇迹等)大部分游戏数据也都只能在本地运算后向服务器报备,于是某一天,突然有人想到了这样的一个思路——我可不可以通过修改数据包,给服务器发送一个有利于我的结果?于是第一批现在通常所说的外挂就出现了——一刀秒杀,无敌,瞬移等等“违反游戏规则”的功能几乎都是基于这个原理实现的。


3.外挂能做什么不能做什么
    其实可以一句话概括——“外挂可以修改本地的数据,除非服务器运营是个傻13,否则所有服务器端的数据外挂都无法直接操作。”这里只说直接操作,是因为存在间接操作的可能性。以吃鸡举例来说,直接让服务器认为我有无限血很难,但是欺骗服务器我在不停的使用回满血的MedKit就容易的多。但这就受限于游戏本身的架构——如果本来就没有这种回满血的操作,那就没办法了。当然不同游戏的数据安排不同,但原理是一样的——你只能修改自己本地的数据,不管是发给服务器的,还是自己留着用的。


4.如何反外挂
    现在比较常见的反外挂手段其实就是这种
    1.检测异常数据:比如一个人跑出正常几倍的速度之类的。这种方式的缺点是必须要仔细斟酌阈值,如果阈值太低,那么很容易出现误封,如果阈值太高,那就很容易漏过真正的开挂者。而且也只能针对那种所谓的”暴力挂“,对自瞄透视这种隐蔽性比较好的挂没有办法。
    2.将更多的数据储存到服务器端:例如现代的各种MMORPG,你就看不到射击游戏里很常见的那种暴力外挂,因为这些运算全部都被封装到服务器端了,客户端很多时候只是把服务器返回的信息表现出来而已,而攻击等动作也变成了客户端向服务器端发出一个进行攻击的命令,然后服务器返回计算结果的方式。自然就可以从根本上解决外挂的问题——数据都不在本地了你还挂什么挂。但这种手段的局限性也很多,例如有的数据你没办法不保留在客户端(例如敌人的位置,连东西在哪都不知道你要怎么进行渲染),这样还是只能封锁暴力挂,同样对自瞄透视没有什么办法,而且对网络延迟会极为敏感。
    3.数据加密:通过加密内存中保存的数据可以阻止其他程序获得信息,原则上可以阻止一切外挂,但问题是如果采用简单的加密算法容易被破解,而如果用难以破解的算法的话,一旦数据读写频繁,那反复的加密解密加密操作会极大极大的拖累游戏的运行速度。
    4.人工反外挂:字面意义,通过人类的肉眼对可疑的部分进行检查,优点是很多可以骗过反外挂程序的外挂会被识破,但缺点是效率奇慢(相比程序而言)和误封率高,同时容易遇到难以判断是不是挂的情况。



5.为什么射击游戏外挂猖獗
    其实看到上面的反外挂和外挂原理,其实很好理解。射击游戏因为需要极高的响应速度,大量的数据是保存在本地的(除非你想开一枪然后等服务器响应再看到子弹飞出去),所以自瞄和透视外挂很容易就能开发出来,而这部分外挂几乎是无法用反外挂程序解决的——因为它和你游戏完全没有关系,它不会修改你游戏的数据,所以程序也无法发现异常。此外射击游戏的外挂收益高,这里的收益不是说挂卖的贵,而是开挂给开挂者的收益高。举例来说,DOTA2你开个全图可见,补刀基本功不行团战阵容太差还是可能被按着摩擦,但如果是射击游戏你知道敌人的位置,只要不是帕金森晚期基本都能打死几个吧?当然还有一点——射击游戏开挂是最好察觉的——MOBA类游戏除非你事后去看录像,否则你也很难意识到对面的人是在开挂,而射击游戏一轮迷之穿墙很容易就察觉到有人开挂了。
发表于 2018-3-20 12:37:12 | 显示全部楼层
個人感覺,外掛,或者說第三方輔助工具應該被定義為,在本地上無法通過遊戲程序提供給玩家的正常操作接口實現的信息獲取或者返回行為。
具體什麼樣的工具被稱作外掛,也僅僅是看玩家、廠商群體中將其列為禁止品的比例是否佔據主流而已。
結合上目前遊戲界主流的態度,應當是這樣:
在 玩家->客戶端->服務端->客戶端->玩家 這一信息交換過程中對任意一個階段的信息進行攔截、篡改、偽造的軟件。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|DeepTimes.NET 太空游戏站