个人游戏工作室头条号

你的位置:首页 >游戏工作室 >从技术角度:分析游戏防封机制,模拟辅助篇

从技术角度:分析游戏防封机制,模拟辅助篇

在NBE论坛潜水几个月了,看了不少大神们写的游戏防封方面的技术文章,但我发现,大多数都是从游戏玩家或游戏工作室的角度来讨论游戏的防封机制的,很少有看到游戏辅助开发作者来从技术角度上做一些分析。事实上,游戏的防封机制远远不止于此吧?今天我就从辅助开发的角度来谈谈游戏防封机制!

首先,想要知道游戏检测了那些,做了什么检测处理,是线程级效验还是模块效验,回溯检测了那些关键CALL Status,有没有自效验本进程DLL,CRC效验的有没有做针对处理,堆栈回溯检测有没有做处理等等,只能说,靠感觉是行不通的!

据我所知,现在的大部分辅助开发人员,极度的不负责任,根本连基本的防封机制都没写,如:RING3层隐藏进程和模块,RING0层的,V.E.H Hook,RING0层是否inline Hook。这样的辅助不封号那才叫奇怪。

想要了解游戏公司如何针对游戏工作室和外挂的,首先要了解当前的辅助种类,辅助分4类,模拟辅助,内存辅助,协议辅助,资源辅助。

今天和大家讨论的是模拟辅助的防封知识:

所谓模拟辅助:就是模拟键盘和鼠标的操作完成游戏角色动作的辅助,称为模拟辅助(按键精灵)。模拟辅助又称为找图找色辅助,现在市面上能见光的就是这类辅助了,因为是模拟玩家操作,对游戏数据没有任何修改,所以有的游戏公司也是睁只眼闭只眼,只要你别上太多的号,一般都不会被封。

如果超过了游戏公司的底线,不封你封谁?每个游戏公司都有自己的封号标准的,你被封过一次后,基本上,你就是黑名单,不管你换不换IP,照样封你!要知道游戏公司的硬性检测也不会比软性检测差,这里指的是大型游戏公司。

好了废话不多说,来点干货吧!

游戏公司对模拟辅助的检测手段常用的方法就是行为检测和结果检测,这两类方法能检测出来绝大部分辅助挂机行为。

行为检测:行为检测就是判断角色行为的差异值,差异值是从C/C++多态性特性诞生出来的,角色行为决定执行方向,通常辅助的行为和玩家的行为差距非常大,基本上安全人员一眼就看出来,是不是辅助操作的,游戏公司在针对角色行为都有一个范围值参考,所谓范围值就是临界线,过了就防号,没过就留着。可悲的是,游戏公司根本不需要人工审核,软件就能完全识别。这块比较有效法的方法就是辅助的逻辑必须要严谨,尽量做到软对软,硬对硬。

结果检测:结果检测就是行为检测的变形版,通常游戏公司采用的方法是在关键数据上做严格的监控,通过服务器大间隔上传数据,来确定哪些号超过了临界区,超过了就封,没超就跳过,不用我来说是那个游戏公司吧?这样是不是没办法逃过检测呢?NO,有方法的,这类方法比较敏感,牵扯到核心技术,会留在内存防封篇来讲解。

说了这么多,再来讨论行为检测,如何防止检测呢?有3个方法:

方法1:站在普通游戏玩家的角度来考虑问题。不一定需要辅助完全能模仿人工,只需要几点做到了,就能绕过软性检测,这个方面不好举例,根据游戏不同而不同。笔者也没玩过多少游戏,只是从开发人员角度来考虑可能存在的问题。

方法2:站在辅助逻辑角度来考虑问题,通常模拟辅助识别目标需要鼠标或者键盘操作,在点击目前操作适当加延迟和偏移来处理,需要随机来操作目标,这样做有2个好处:1,给游戏时间反应让识别更准确。2,减少行为计数。

方法3:就是所谓的单窗口单IP软件了。这个就不多做介绍了吧?可悲的是只能有30%左右的防封效果,其他的靠运气,笔者没有亲自测试。根据目前游戏公司的技术实力,还检测不出来,你是在同个电脑换的IP?真当安全人员是吃干饭的吗?游戏客户端,一堆流氓行为而且隐藏的很深。

总结:由于篇幅原因,想根本解决以上这些问题的,请等待我的内存辅助防封篇,会做这方面的详细说明,如何RING3层定位检测线程和RING0定位检测模块,如何RING3层隐藏进程,如何绕过游戏的检测系统以及CRC效验等。游戏防封效果达到90%,并且会上C/C++代码来说明游戏检测封号的那些常用方法。

从游戏辅助开发作者的技术角度分析游戏防封机制,模拟辅助篇(完)