2022/10/14593 浏览综合
检测外挂的常见方法
(1)变量检测。设置一个全局变量。在游戏关键功能函数的外层函数赋值,在功能函数内部检测。正常游戏调用肯定是一步一步执行的,必然会对变量赋值,但是游戏外挂会直接调用功能函数,函数内部发现变量没有被赋值,而检测到外挂。
(2)堆栈检测。变量检测有一个弱点,那就是必须设置一个全局变量来传递信息,有可能被外挂作者利用内存扫描工具来回扫描发现变量,在调用前提前赋值规避检测。堆栈检测避免了这一点,实现原理是在游戏功能函数内部读取堆栈信息,以此得到调用函数的代码来源,如果发现并非正常代码调用的堆栈,那就是外挂程序了。
(3)数据检测。不断读取关键数据以查看是否被外挂篡改,不过直接查看太过容易被外挂作者发现,一般混在游戏正常读取数据的代码中间接查看是否异常。
(4)CRC检测。CRC检测主要是保护游戏代码不被外挂程序篡改,游戏中有一些关键逻辑代码,比如如果血量为0的话会判断人物死亡,外挂课程可以恶意篡改判断逻辑,让程序无论怎样都不会执行死亡代码,从而实现无敌效果。CRC检测的原理是,不断的读取关键代码的值,以此查看代码是否被篡改。CRC之类算法对自身的完整效验勾挂函数的完整效验,一些重要代码段另外单独校验,校验相关代码段VMP,必要的话返回服务器中验证。
(5)进程检测。获取系统进程列表,检测是否有常见外挂的进程名,如果检测到存在外挂进程。直接强制下线。
(6)行为检测。现在大力发展的新兴检测 如某企鹅的DXF就有此保护机制 效果甚好 甚至连图色辅助都无法在其幸存 搞得 一些人直接上机械臂,与上面几种方式不同:此种检测主要是检测用户的行为,主要是利用深度学习人工智能大数据对玩家的行为数据进行分析。比如一局游戏中一位玩家爆头和击杀率都特别的高,鼠标移动的轨迹几乎为直线,那么就可以把这些数据异常的玩家抽调出来转入人工检测,或者极为异常的直接封号处理。
————————————————
版权声明:本文为CSDN博主「行者AI」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
TapTap
1