当前位置:C++技术网 > 资讯 > 关于游戏内的外挂检测机制

关于游戏内的外挂检测机制

更新时间:2017-06-13 23:30:09浏览次数:1+次

有个朋友问我游戏内外挂检测是怎样的,我感觉大概是从服务器端检测数据是否异常,或者客户端检测发出数据是否异常,感觉并不是太对,有些外挂并不一定通过服务器进行修改,可能从本机修改,,所以并不是特别理解机制,希望能大概了解一下

C++技术网会员解答:

    尊敬的会员您好,感谢您对C++技术网的支持与信任。

    要说游戏检测外挂的原理,那就要先知道什么是游戏外挂。还有游戏的程序基本原理来说。

    先说说游戏吧。游戏其实就是一个程序而已,而现在主流的游戏或者商用游戏,都是采用在线模式的,比如LOL。如果只是单机游戏,是很难持续赚钱的。而直接购买一款游戏,在国内还是很难赚钱的。现在的游戏模式多是在线网游,然后买装备赚钱。

    所以游戏分为游戏客户端和游戏服务器。游戏客户端就和正常的PC软件一样的,有交互,有逻辑,有特效等等。而游戏服务器则是集中处理游戏数据,处理游戏逻辑的。比如说,多人在线网游,我们需要多方同步数据,就需要服务器来完成。

    而服务器都是在机房的电脑构成的。我们不能去直接操作服务器电脑的,如果你能够入侵服务器,那就不用说了,够牛叉了。那就不是外挂那么简单了。你都可以直接去操作游戏账户了,比外挂就更牛叉,不用玩游戏,你的账号就可以秒变N级,也就是对数据的修改而已。

    而一般的游戏外挂,也就是对游戏客户端的辅助或者修改。游戏辅助是可以帮助你完成一些手动操作,但不影响游戏的逻辑。而游戏修改性的外挂,则会影响到游戏的逻辑。比如游戏无限血,怎么打都打不死,显然已经干扰了游戏的逻辑了。如果有一个玩家永远都打不死,那还怎么玩呢!

    游戏外挂通常是去操作游戏的内存。因为现在反外挂的技术也越来越厉害了,如果你运行一个“外挂.exe”都可能被检测为外挂,不管是不是真的。你如何去做外挂,人家就怎么去反外挂。

    轻度的辅助可以提升你的操作准确率,比如放大招时可以准确帮助你定位敌人的位置,然后击中。这种也算是作弊了。这种外挂也足以致命了。所以也是游戏会检测并防止的。严重的就会深度干扰游戏,比如深入参与游戏的逻辑判断,敌人攻击自己时可以自动准确的避让,然后放大招时准确杀死敌人。

    然而这些并不是直接写代码在游戏里实现的。你需要写程序或者dll,程序可以实现内存修改,从而实现你需要的辅助效果,或者用dll注入到游戏程序里,让游戏程序执行你的dll,这样都可以实现游戏外挂。

    当然这些简单的做法都会被游戏外挂检测机制检测出来,人家根本就不允许你注入dll,也会严格防止你修改内存数据。但是防归防,也不一定能够完全防得住,就看技术谁厉害了。

    通常会反外挂的人也会写外挂。就像做安全的人也会做病毒一样。因为游戏分为客户端和服务器,所以游戏客户端和客户端与服务器通信都可以成为外挂的方向,自然反外挂也会同时进行检测。所以不管是外挂还是反外挂都是综合性的。恨不得能够应用人工智能进行行为分析,来判断是不是存在外挂行为。此前我在玩LOL的时候,就不小心多送了几个人头,系统提示说检测到我是外挂行为送人头,我也是无语,差点被投票干掉了。

    所以反外挂的深度已经很深了。我能列出大概三个方面,但是应该远不止三个方面:游戏客户端检测、游戏服务器通信检测、游戏行为分析检测。

1.游戏客户端检测

    这个会检测游戏运行时其他程序运行的行为,是否有可疑的行为,比如一些窗口标题是否有外挂或者英文单词或者相关关键词,如果有,说明可能是外挂。如果有程序想向游戏注入dll或者有键盘钩子或者相关行为,都可以当做时外挂行为检测。甚至,做的深入的,会对进程的内存特征进行分析,窗口类名称分析,如果有可疑特征,那么就判断为外挂。所以很多时候存在误封账号的情况。当然这里也会加入一些行为分析,比如反复重启客户端然后运行其他程序,这种行为也有可能是进行外挂测试。所以几乎能想到的检测都会用上。

2.游戏服务器通信

    游戏客户端最终要将本地操作的数据发送到服务器进行统一计算,得到不同玩家操作的结果。所以我们可能对网络通信数据进行拦截,然后进行数据篡改。一方面游戏会对数据进行加密,另一方面反外挂系统还会对数据通信情况进行检测。如果发现有人在拦截或者篡改,自然也会检测的出来的。如果检测不出来,那只能说技术不够牛叉,或者说外挂程序牛叉。但是如果能够进行这方面的外挂,做外挂的人要对游戏也很熟悉。但是这个确实是外挂的一个方向,用于攻击服务器,直接篡改数据的。

3.分析游戏者行为

   这一方面或许检测还会容易些。通过有经验的人分析,很多数据的采集,一些异常的情况也是可以检测的出来的。一个新来的人,开始操作不行,然后短时间内技术暴增,失误率大大降低,这样的情况基本上很少见。所以我们可以通过一系列的综合数据进行行为分析,可以判断是否有外挂行为。这里更是可以加入人工智能的检测,判断行为的合理性。当然可以应用在游戏客户端,也可以应用在游戏服务器端。或者将客户端和服务器端的所有数据都拿来分析,来判断是否正常。

    游戏外挂更多的是对游戏客户端的操作,对本机电脑内存的修改实现。当然,简单的键盘鼠标模拟都不在话下,能用的都会用。反外挂同样如此,有什么样的外挂就有什么样的反外挂,也有对应的反反外挂。所以这个并不是简单的检测数据是否异常就能够说完的。

    一进外挂深如海,一有反外挂系统的追击,同时还有法律的追究哦。