防检测相关
用户行为判断异常机制推测
1、记录用户以下行为数据,并上传服务器:
“用户行为特征检测”,即游戏后台基于用户数据,识别用户行为是否异常。以下内容,基于“如果我是策划,我会如何检测用户的异常行为”来思考的流程,可能还有未考虑到的部分,欢迎大家提出思路。
- 登录时间、下线时间
- 发生交互的类型:点击、拖拽、长按、移动鼠标(存疑,基本不可能)
- 发生交互的时间:时间戳格式,可以精确到毫秒
- 发生交互的坐标:x,y,也可能是一个百分比
- 发生交互的功能:页面ID、按钮ID
- 如:2022-10-22 13:32:44:19 click "Button_19932" [993,337]
2、通过以上行为数据,可以进行以下统计:
- 每隔固定时间段内进行交互的次数,比如每1小时的点击次数
- 每隔固定时间段内的点击热力图、比如每1小时的点击热力图
3、通过上述统计,可以做出以下异常行为判断,每个异常行为给到一定权重
- 某服活跃玩家在 早9-晚12 点,如果玩家不在这个时间内发生了交互行为,则标记为异常(1分)
- 某个时间内,玩家点击频率非常固定,比如9-12点,每10分钟都发生了40次点击,则标记异常(2分)
- 某个时间内,玩家点击目标非常固定,比如9-12点,仅点击了 开始按钮、结算奖励界面,未进行其他交互,则标记异常(1分)
- 某个时间内,玩家点击坐标非常固定,比如9-12点,发生了1000次点击,其中有200次点了[881,983],有100次点了[220,183],则标记异常(5分)
- 某个时间内,玩家点击坐标范围非常固定,比如9-12点,发生了1000次点击,有500次均点了[881,983] - [220,183]这个范围,另外500次均点了[132,183] - [720,583]这个范围,则标记异常(2分)
- 某个时间内,玩家点击坐标范围形状规律,比如2022-10-22日,点击热力图呈现为几个的圆形或矩形,则标记为异常(3分)
- 有封号历史的,默认重点监控(1分)
- 被多人共同举报的,转人工审查(2分)
- 注:如果检测机制使用的是机器学习,把正常玩家日志数据通过学习生成模型,用于整体的用户行为识别,那么AI也是采用类似权重标记的方式,找出哪些属于异常的数据;
4、通过权重计分,二次审核或直接封号
- 比如满5分,则推送给运营人员,由运营人员进行人工审核,其中满10分的,直接封号
- 封号后保留异常数据(用户申诉后便于核实),并标记该账号
Mersenne Twister
梅森旋转算法(Mersenne Twister)也称马特赛特旋转算法。在python中的random模块就采用该算法计算随机数。
梅森旋转算法(Mersenne twister)是一个伪随机数发生算法。由松本真和西村拓士在1997年开发,基于有限二进制字段上的矩阵线性递归。可以快速产生高质量的伪随机数,修正了古典随机数发生算法的很多缺陷。
最为广泛使用Mersenne Twister的一种变体是MT19937,可以产生32位整数序列。具有以下的优点:
- 周期非常长,达到2−1。尽管如此长的周期并不必然意味着高质量的伪随机数,但短周期(比如许多旧版本软件包提供的2)确实会带来许多问题。
- 在1 ≤ k≤ 623的维度之间都可以均等分布(参见定义)。
- 除了在统计学意义上的不正确的随机数生成器以外,在所有伪随机数生成器法中是最快的(当时)
点击防识别
脚本辅助不会像外挂辅助一样会修改游戏内的数据,只能通过特定的找图、找色,然后执行对应的交互动作(硬件模拟交互和软件模拟交互,游戏基本分辨不出和鼠标点击的区别),脚本可以做的很简单,也可以扩展的非常复杂,相对来说,比起修改内存的外挂辅助更加容易编写。所以这一类型的脚本辅助的防检测方法,不需要考虑如何骗过游戏服务器,仅需要针对“用户行为特征”进行算法上的优化就能很好的做到防检测、防封。