首页 > 运动玩具 专利正文
外挂识别的方法及装置、电子设备、存储介质与流程

时间:2022-02-24 阅读: 作者:专利查询

外挂识别的方法及装置、电子设备、存储介质与流程

1.本技术涉及互联网技术领域,特别涉及一种外挂识别的方法及装置、电子设备、计算机可读存储介质。


背景技术:

2.随着智能手机的普及,移动互联网的发展,手机游戏已逐渐占据了游戏市场的主要部分。然而市面上手游外挂层出不穷,对游戏口碑、经济系统、玩家体验等造成了恶劣影响,给游戏公司造成了巨大的损失。
3.手游外挂中有一大类是模拟点击类外挂,通过按键精灵、模拟器脚本、录制回放等来模拟人类操作,游玩游戏内容,从而低成本地获取游戏奖励。使用模拟点击外挂的异常玩家很难通过一般的服务端游戏日志来识别,如何针对模拟点击类外挂设计实现一套高精度、高复用的监测方案,是游戏公司运营过程中面临的一大难题。


技术实现要素:

4.本技术实施例提供了外挂识别的方法,用以准确识别模拟点击类外挂。
5.本技术实施例提供了一种外挂识别的方法,所述方法包括:
6.本技术实施例提供了一种外挂识别的方法,所述方法包括:
7.获取终端设备的界面操作数据,所述界面操作数据包括由多个界面操作事件构成的第一序列以及每个界面操作事件对应的操作位置和时间戳;
8.按照预设的标准操作模式,将所述第一序列与所述标准操作模式进行匹配,从所述第一序列中提取标准操作模式对应的界面操作事件序列,作为第二序列;
9.根据所述第二序列,获得标准操作数据;所述标准操作数据包括所述第二序列对应的标准操作模式的模式标识、所述第二序列中每个界面操作事件对应的操作位置和时间戳;
10.根据所述标准操作数据,通过检测引擎,判断是否存在外挂程序。
11.在一实施例中,所述界面操作数据还包括操控标识,所述第一序列中的多个界面操作事件对应同一操控标识。
12.在一实施例中,所述获取终端设备的界面操作数据包括:
13.获取终端设备的原始界面操作事件;
14.按照预设的标准操作事件与原始界面操作事件之间的映射关系,将所述终端设备的原始界面操作事件转换为标准操作事件,得到所述界面操作事件。
15.在一实施例中,所述方法还包括:
16.通过状态机表征预设的标准操作模式,所述标准操作模式包含多个操作状态之间的时序关系,以及每种操作状态下可输入的标准操作事件。
17.在一实施例中,所述操作状态包括初始状态;
18.所述按照预设的标准操作模式,将所述第一序列与所述标准操作模式进行匹配,
从所述第一序列中提取标准操作模式对应的界面操作事件序列,作为第二序列,包括:
19.在所述初始状态下,将所述第一序列中的界面操作事件按序依次输入所述状态机,根据所述状态机确定每次输入的界面操作事件是否为当前操作状态下可输入的标准操作事件,若不是则丢弃本次输入的界面操作事件,并返回所述初始状态;
20.从所述第一序列中提取丢弃的界面操作事件之前的连续的界面操作事件,得到所述第二序列。
21.在一实施例中,所述操作状态包括初始状态、按下状态、移动状态和完结状态。
22.在一实施例中,所述检测引擎包括规则引擎、监督引擎和无监督引擎,所述根据所述标准操作数据,通过检测引擎,判断是否存在外挂程序,包括:
23.根据所述标准操作数据,通过所述规则引擎、监督引擎和无监督引擎分别判断是否存在外挂程序;
24.根据所述规则引擎、监督引擎和无监督引擎获得的是否存在外挂程序的多个初步判断结果;
25.按照预设策略和所述多个初步判断结果,确定是否存在外挂程序。
26.在一实施例中,所述检测引擎包括规则引擎,所述根据所述标准操作数据,通过检测引擎,判断是否存在外挂程序,包括:
27.根据所述标准操作数据,通过规则引擎判断邻近位置点对应的点击次数;
28.根据所述邻近位置点对应的点击次数确定是否存在外挂程序。
29.在一实施例中,所述检测引擎包括无监督引擎,所述根据所述标准操作数据,通过检测引擎,判断是否存在外挂程序,包括:
30.通过无监督引擎将多个用户对应的标准操作数据进行聚类处理,找出用户数量小于阈值的异常群体,确定所述异常群体存在外挂程序。
31.在一实施例中,所述检测引擎包括监督引擎,所述根据所述标准操作数据,通过检测引擎,判断是否存在外挂程序,包括:
32.利用包含是否为外挂程序标记的样本操作数据,通过监督引擎进行机器学习,训练得到外挂识别模型;
33.将所述标准操作数据输入所述外挂识别模型,根据所述外挂识别模型的输出确定是否存在外挂程序。
34.在一实施例中,所述还包括:
35.以静态图或动态图显示所述标准操作数据对应的操控轨迹。
36.在一实施例中,所述以静态图或动态图显示所述标准操作数据对应的操控轨迹,包括:
37.在半透明化的交互界面中以静态图或动态图显示所述标准操作数据对应的操控轨迹。
38.在一实施例中,所述以静态图或动态图显示所述标准操作数据对应的操控轨迹,包括:
39.根据所述标准操作数据,统计每个操作位置的重复点击次数;
40.以静态图或动态图显示所述标准操作数据对应的操控轨迹,并在所述静态图或动态图中标记出重复点击次数大于阈值的操作位置。
41.在一实施例中,所述以静态图或动态图显示所述标准操作数据对应的操控轨迹,包括:
42.在静态图或动态图中突出显示确定存在外挂程序的标准操作数据对应的操控轨迹。
43.本技术实施例还提供了一种外挂识别的装置,所述装置包括:
44.数据获取模块,用于获取终端设备的界面操作数据,所述界面操作数据包括由多个界面操作事件构成的第一序列以及每个界面操作事件对应的操作位置和时间戳;
45.模式匹配模块,用于按照预设的标准操作模式,将所述第一序列与所述标准操作模式进行匹配,从所述第一序列中提取标准操作模式对应的界面操作事件序列,作为第二序列;
46.数据提取模块,用于根据所述第二序列,获得标准操作数据;所述标准操作数据包括所述第二序列对应的标准操作模式的模式标识、所述第二序列中每个界面操作事件对应的操作位置和时间戳;
47.数据识别模块,用于根据所述标准操作数据,通过检测引擎,判断是否存在外挂程序。
48.本技术实施例还提供了一种电子设备,所述电子设备包括:
49.处理器;
50.用于存储处理器可执行指令的存储器;
51.其中,所述处理器被配置为执行上述外挂识别方法。
52.本技术实施例还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成上述外挂识别方法。
53.本技术上述实施例提供技术方案,通过获取界面操作数据,基于标准操作模式,从界面操作数据中提取出标准操作数据,进而通过检测引擎识别标准操作数据,即可确定是否存在外观程序。由于获取的是界面操作数据,而不是外挂程序特征,由此可以兼容不同的系统环境、游戏引擎和虚拟环境,不依赖人工提取外挂程序特征,提高了检测的准确性,降低了人力成本。
附图说明
54.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍。
55.图1为本技术一实施例提供的外挂识别方法的应用场景示意图;
56.图2是本技术实施例提供的电子设备的结构示意图;
57.图3是本技术实施例提供的一种外挂识别方法的流程示意图;
58.图4是本技术实施例提供的界面操作数据的获取流程示意图;
59.图5是图3对应实施例中步骤s320的细节流程图;
60.图6是本技术实施例提供的状态机的原理示意图;
61.图7是本技术实施例提供的检测引擎的处理流程示意图;
62.图8是本技术实施例提供的三种引擎的原理示意图;
63.图9是图4和图7基础上提供的完整的外挂识别方法的流程示意图;
64.图10是本技术实施例提供的操作轨迹的可视化展示示意图;
65.图11是本技术实施例提供的游戏交互界面的示意图;
66.图12是本技术实施例提供的展示重复点击次数和位置的示意图;
67.图13是本技术实施例提供的对异常数据进行高亮显示的效果示意图;
68.图14是本技术实施例提供的外挂识别的装置的框图。
具体实施方式
69.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
70.相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本技术的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
71.图1为本技术实施例提供的外挂识别方法的应用场景示意图。如图1所示,该应用场景包括游戏客户端110以及服务端120。游戏客户端110与服务端120之间通过无线网络通信。游戏客户端110可以是运行游戏软件应用的智能手机、平板电脑、笔记本电脑或台式电脑。服务端120可以是游戏服务器、直传服务器、私有云、公有云等。
72.游戏客户端110可以采集界面操作数据,将界面操作数据发送到服务端120,由服务端120执行本技术实施例提供的方法,判断游戏客户端110是否存在外挂程序。根据需要,游戏客户端110也可以自主根据采集的界面操作数据,判断出是否存在外挂程序。
73.图2是本技术实施例提供的电子设备的结构示意图。该电子设备可以作为上述游戏客户端110或服务端120,该电子设备200可以用于执行本技术实施例提供的外挂识别方法。如图2所示,该电子设备200包括:一个或多个处理器202、一个或多个存储处理器可执行指令的存储器204。其中,所述处理器202被配置为执行本技术下述实施例提供的外挂识别方法。
74.所述处理器202可以是包含中央处理单元(cpu)、图像处理单元(gpu)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元的设备,可以对所述电子设备200中的其它组件的数据进行处理,还可以控制所述电子设备200中的其它组件以执行期望的功能。
75.所述存储器204可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器202可以运行所述程序指令,以实现下文所述的外挂识别方法。在所述计算机可读存储介质中还可以存储各种应用程序和各种数据,例如所述应用程序使用和/或产生的各种数据等。
76.在一实施例中,图2所示电子设备200还可以包括输入装置206、输出装置208以及数据采集装置210,这些组件通过总线系统212和/或其它形式的连接机构(未示出)互连。应当注意,图2所示的电子设备200的组件和结构只是示例性的,而非限制性的,根据需要,所述电子设备200也可以具有其他组件和结构。
77.所述输入装置206可以是用户用来输入指令的装置,并且可以包括键盘、鼠标、麦
克风和触摸屏等中的一个或多个。所述输出装置208可以向外部(例如,用户)输出各种信息(例如,图像或声音),并且可以包括显示器、扬声器等中的一个或多个。所述数据采集装置210可以采集对象的图像,并且将所采集的图像存储在所述存储器204中以供其它组件使用。示例性地,该数据采集装置210可以为摄像头。
78.在一实施例中,用于实现本技术实施例的外挂识别方法的示例电子设备100中的各器件可以集成设置,也可以分散设置,诸如将处理器202、存储器204、输入装置206和输出装置208集成设置于一体,而将数据采集装置210分离设置。
79.在一实施例中,用于实现本技术实施例的外挂识别方法的示例电子设备200可以被实现为诸如计算机、服务器、智能手机等智能设备。
80.图3是本技术实施例提供的一种外挂识别的方法的流程示意图。如图3所示,所述方法包括:步骤s310-步骤s340。
81.步骤s310:获取终端设备的界面操作数据,所述界面操作数据包括由多个界面操作事件构成的第一序列以及每个界面操作事件对应的操作位置和时间戳。
82.界面操作事件是指在用户交互界面上触发的按下事件、移动事件、抬起事件、取消事件等。一个完整的滑动动作,按照先后顺序,通常包含按下事件、移动事件和抬起事件。按照时间先后顺序排列的一系列界面操作事件可以称为第一序列。基于客户端类型的不同,这些事件的触发对象可以是手指、鼠标或者触控笔等。
83.其中,界面操作事件对应的操作位置和时间戳是指界面操作事件触发的位置坐标以及触发时间。例如手指按下的位置坐标和按下的时间点,手指移动过程中的多个采样点的位置坐标和移动到采样点的时间点,手指抬起时的位置坐标和抬起的时间点。在一实施例中,当存在多点触控时,界面操作数据还可以包括操控标识,一个操控标识对应一个手指,界面操作数据中的多个界面操作事件构成的第一序列对应同一个操控标识。从而通过带有操控标识的界面操作数据,区分不同手指的操作。例如可以用0代表一个手指,1代表另一手指,2代表第三个手指。本技术实施例以一个手指的操控标识对应的界面操作数据举例来说,其他每个手指参照相同的方式实施。
84.步骤s320:按照预设的标准操作模式,将所述第一序列与所述标准操作模式进行匹配,从所述第一序列中提取标准操作模式对应的界面操作事件序列,作为第二序列。
85.标准操作模式是指标准操作时产生的若干界面操作事件,例如,点击的标准操作模式是按下、抬起,对应的标准操作模式按序是按下事件、抬起事件。滑动的标准操作是按下、移动、抬起,对应的标准操作模式按序是按下事件、一个或多个移动事件、抬起事件。标准操作可以按照现有的操作习惯定义。
86.按照预设的标准操作模式,可以从连续的多个界面操作事件构成的第一序列中,提取出标准操作模式对应的界面操作事件序列,作为第二序列。例如,提取出连续的按下事件、抬起事件构成一个第二序列,提取出连续的按下事件、多个移动事件、抬起事件构成另一个第二序列。第二序列可以认为是提取出的标准操作模式对应的连续的若干界面操作事件。
87.步骤s330:根据所述第二序列,获得标准操作数据;所述标准操作数据包括所述第二序列对应的标准操作模式的模式标识、所述第二序列中每个界面操作事件对应的操作位置和时间戳。
88.模式标识用于区分不同的标准操作模式,例如“按下事件action_down、抬起事件action_up”模式的模式标识可以用1表示,“按下事件action_down、一个或多个移动事件action_move、抬起事件action_up”模式的模式标识可以用2表示。
89.标准操作数据用于表征每个完整操作的操作模式、操作位置和操作时间。标准操作数据的形式可以如下表所示。
[0090][0091]
以列表的第一个部分为例(即第2行到第5行):该部分整体表示一次完整、合法的触摸行为。1表示该次行为的类别(即模式标识)。即为“action_down,action_up”模式,还是“action_down,一个或多个action_move,action_up”模式。这里1表示“action_down,action_up”模式。随后的数据(第3行到第4行)表示了该次触摸行为的坐标序列与时间序列,其中每一行由三元组构成,分别表示触摸过程中采样点的屏幕x坐标、屏幕y坐标、时间戳。因此,上列表中第一个部分可解读为,玩家进行了一次“action_down,action_up”模式的点击,点击开始(手指接触屏幕)在屏幕的(1014,349)位置,时间戳为1610426930088,点击结束(手指离开屏幕)在屏幕的(1122,272)位置,时间戳为1610426930238。
[0092]
上述列表第二个部分(即第6到第12行)可解读为:玩家进行了一次“action_down,一个或多个action_move,action_up”模式的滑动行为,滑动开始(手指接触屏幕)在屏幕的(188,226)位置,时间戳为1610426930238,滑动过程中的第一个采样点在屏幕的(213,356)位置,时间戳为1610426930606,第二个采样点在屏幕的(204,374)位置,时间戳为1610426931055,第三个采样点在屏幕的(219,377)位置,时间戳为1610426931455,滑动结束(手指离开屏幕)在屏幕的(209,390)位置,时间戳为1610426931868。以此类推,得到可以表征每个完整动作的操作模式,操作位置和操作时间的标准操作数据。
[0093]
步骤s340:根据所述标准操作数据,通过检测引擎,判断是否存在外挂程序。
[0094]
外挂程序是指在客户端安装的模拟人类操作的辅助程序,例如按键精灵,可以定时自动重复进行点击,模拟人类的按键操作。
[0095]
检测引擎可以认为是一种根据标准操作数据判断客户端是否存在外挂程序的工具。举例来说,假设希望可以识别出鼠标宏玩家从而加以处罚,则检测引擎可以是专门识别
鼠标宏的模型。具体的,可以基于鼠标宏玩家产生的标准操作数据,进行机器学习,训练得到鼠标宏玩家的识别模型。进而将待识别的标准操作数据输入该识别模型,基于该识别模型的输出结果,即可确定是否是鼠标宏玩家,也就是是否存在外挂程序。
[0096]
目前常见手游反外挂的主要技术方案为:反外挂团队收集待保护游戏相关的外挂程序,反外挂团队分析收集到的外挂程序,提取进程特征等可以用于区分外挂程序的特征,反外挂团队将收集到的特征下放到游戏客户端,游戏客户端在启动时,检测环境中是否有外挂特征,若有,则上报并中断游戏。现有游戏反外挂方案的缺点主要是:需要针对不同的系统环境(安卓、ios),游戏引擎(unity,unreal,cocos等),虚拟环境(云真机、云游戏、模拟器等)做优化,通过不同的方式采集不同的特征,兼容成本高;游戏外挂程序的收集、游戏外挂程序特征的提取过于依赖人工,造成人力成本过高的问题;依赖人工的外挂程序收集、外挂程序特征提取,很难做到全面。使得反外挂团队难以全面保护手游,难以快速应对新出现的外挂。基于外挂程序特征的外挂程序识别检测,往往会因外挂程序的伪装而失效。
[0097]
本技术上述实施例提供技术方案,通过获取界面操作数据,基于标准操作模式,从界面操作数据中提取出标准操作数据,进而通过检测引擎识别标准操作数据,即可确定是否存在外观程序。由于获取的是界面操作数据,而不是外挂程序特征,由此可以兼容不同的系统环境、游戏引擎和虚拟环境,不依赖人工提取外挂程序特征,提高了检测的准确性,降低了人力成本。
[0098]
以手游为例,如图4所示,游戏客户端可以具有一套通用采集sdk,通过该sdk从游戏客户端采集屏幕触摸数据,并将屏幕触摸数据标准化处理后,上传到私有云、公有云、游戏服务器或直传服务器,进行外挂识别。而无需关系游戏客户端所处的环境(如操作系统、游戏引擎、虚拟环境等)。根据需要,在上传之前,还可以进行脱敏、加密、压缩处理。
[0099]
在一实施例中,标准化处理也可以在服务端完成,服务端可以获取终端设备的原始界面操作事件;按照预设的标准操作事件与原始界面操作事件之间的映射关系,将所述终端设备的原始界面操作事件转换为标准操作事件,得到所述界面操作事件。
[0100]
需要说明的是,不同渠道采集到的屏幕触摸数据具有不同的格式,如在android系统中可以获得如“action_down”,“action_move”,“action_up”等原始界面操作事件,在ios系统中可以获得如“uitouchphasebegan”,“uitouchphaseended”,“uitouchphasemoved”等原始界面操作事件,在unity下获取的是“began”,“moved”,“ended”等原始界面操作事件。故可以将这些事件映射为跨平台通用的“action_down”,“action_move”,“action_up”,“action_cancel”等标准操作事件(部分在人类操作中低频率出现的事件会做丢弃或并入其他相似类别等处理)。标准操作事件与原始操作操作事件的映射关系如下表所示,可以将转换后的标准操作事件作为界面操作事件。
[0101][0102]
界面操作数据除了一系列界面操作事件外,还可以包括每次事件触发的屏幕x,y坐标,时间戳、以及手指id(用于区分不同的手指)等,根据需要,还可以包括游戏、场景等相关字段。界面操作数据的格式如下表所示。
[0103]
[0104][0105]
上述实施例通过将原始界面操作事件转化为标准操作事件,实现了跨平台、多环境兼容的界面操作数据的获取,使得基于界面操作数据的手游反外挂方案能够低成本地兼容更多的系统、引擎等环境,提高了方案迁移性与易用性。
[0106]
在一实施例中,如图5所示,上述步骤s320具体包括以下步骤s321-步骤s323。
[0107]
步骤s321:通过状态机表征预设的标准操作模式,所述标准操作模式包含多个操作状态之间的时序关系,以及每种操作状态下可输入的标准操作事件。所述操作状态包括初始状态、按下状态、移动状态和完结状态。
[0108]
标准操作模式是指正常一次操作时,操作状态的变化过程以及在每个操作状态下发生的界面操作事件。状态机可以表征多种不同的标准操作模式。状态机可以如图6所示,初始状态下可输入的标准操作事件是按下事件(down),按下状态下可输入的标准操作事件有移动事件(move)、抬起事件(up)和取消事件(cancel)。移动状态下可输入的标准操作事件有移动事件(move)、抬起事件(up)和取消事件(cancel)。完结状态会自动重置回到初始状态。从图6中可以看出,标准操作模式例如可以有“action_down,action_up”模式或“action_down、action_move(一个或多个),action_up”等模式。
[0109]
步骤s322:在所述初始状态下,将所述第一序列中的界面操作事件按序依次输入所述状态机,根据所述状态机确定每次输入的界面操作事件是否为当前操作状态下可输入的标准操作事件,若不是则丢弃本次输入的界面操作事件,并返回所述初始状态;
[0110]
自“初始状态”开始将序列中的界面操作事件按序输入到状态机中。如图6所示,如在“初始状态”下,若下一个输入的界面操作事件为“action_down”,则与初始状态的标准操作事件(down)匹配,状态机的状态由“初始状态”转移至“按下状态”,表示手指按下。在“移动状态”下,若下一个(或连续多个)界面操作事件为“action_move”,则与移动状态下可输入的标准操作事件(move)匹配,状态机的状态由“移动状态”转移至“移动状态”(即保持状态不变),表示手指仍在移动中,没有离开屏幕。任意状态下,若输入的界面操作事件不与该状态下的标准操作事件匹配(如网络问题导致的数据丢失等情形),则会丢弃该界面操作事件并回到“初始状态”。
[0111]
步骤s323:从所述第一序列中提取丢弃的界面操作事件之前的连续的界面操作事件,得到所述第二序列。
[0112]
提取丢弃的界面操作事件之前,相匹配的连续的界面操作事件,构成第二序列。第二序列表征一个完整操作的连续的界面操作事件。由于可能存在点击、滑动等多个动作,故从界面操作数据中可以提取出多组第二序列。例如,“action_down”事件、“action_up”事件是一组第二序列,“action_down”、5个“action_move”、“action_up”是一组第二序列。
[0113]
为了适应同一时间上可能有重叠的多指操作等情形,状态机也可以有多个,状态机根据手指id(也就是操控标识)的不同而不同,每个手指id分别对应一个状态机,对一个界面操作数据进行标准化,提取界面操作事件序列。
[0114]
在一实施例中,如图7所示,数据预处理部分即对应上述提取标准操作数据的环节。检测引擎可以包括一个或多个引擎,例如规则引擎、监督引擎和无监督引擎。服务端可以根据标准操作数据,通过所述规则引擎、监督引擎和无监督引擎分别判断是否存在外挂程序。根据所述规则引擎、监督引擎和无监督引擎获得的是否存在外挂程序的多个初步判断结果,按照预设策略和多个初步判断结果,确定是否存在外挂程序。将最终结果输出给游戏客户端。
[0115]
规则引擎、监督引擎和无监督引擎,每种引擎可以包括一个或多个识别模型。举例来说,通过三种引擎可以得到10个是否存在外挂的判断结果。预设策略例如可以是多于5个判断结果认为是存在外挂,则认为存在客户端存在外挂程序。根据精度的需要,预设策略可以是7个判断结果,8个判断结果等。
[0116]
其中,三种引擎的详情可以如图8所示。规则(专家经验)引擎整合了游戏安全领域专家的专家经验,能够快速地将对市面上的外挂的经验知识落地到检测服务中。通过简单规则来复现专家经验的判定过程,或是通过决策树、集成学习(xgboost、gbdt)等算法来复现专家经验,可以将专家经验快速部署到线上检测服务中。如在某些ui对应的位置出现反复点击,点击间隔还相近,结合其他信息则可能将这样的玩家判定为使用按键精灵、模拟点击等软件的异常玩家。
[0117]
无监督引擎基于无监督学习技术,通过无标记的历史数据来学习发现数据中的潜在模式,从而实现新异常模式的自动发现、异常群体的聚类与挖掘。具体包括但不限于各类深度学习算法。例如,将标准操作数据映射为高维隐空间中的向量,再基于这些向量分析其空间分布,找出异常群体等。
[0118]
监督引擎基于监督学习技术,通过带标记的历史数据来学习如何发现新数据中的异常样本,从而实现了对已知异常模式的高精度检测。结合客户反馈的误判样本与无监督
引擎发现的新异常模式样本,监督引擎的自动迭代框架使得监督引擎的自动迭代成为可能,有效地自动对抗外挂变异与新异常模式的涌现。监督引擎根据已有的标记信息,使用有监督深度学习模型,如han(hierarchical attention network,层次注意力网络)等,序列建模、表征模型,如lstm,seq2seq,transformer等,直接学习从标准操作数据到是否异常的标签的映射。
[0119]
在一实施例中,假设检测引擎包括规则引擎,上述步骤s340具体可以包括以下步骤:根据标准操作数据,通过规则引擎判断邻近位置点对应的点击次数,确定是否存在外挂程序。
[0120]
规则引擎可以设定多远的距离为邻近位置点,多少次的点击为多次重复点击。假设点击操作的模式标识是1,如果标准操作数据中多个连续操作的模式标识均是1,且操作位置之间的距离小于阈值,时间戳之间的间隔小于阈值,则可以认为存在操作异常的情况,确定存在外挂程序。
[0121]
在一实施例中,假设检测引擎包括无监督引擎,上述步骤s340具体可以包括以下步骤:通过无监督引擎将多个用户对应的标准操作数据进行聚类处理,找出用户数量小于阈值的异常群体,确定所述异常群体存在外挂程序。
[0122]
通常存在外挂的用户数目较少,故将大量用户的标准操作数据进行聚类(例如可以采用k-means聚类算法),可以将开外挂的用户的标准操作数据归为一类,不开外挂的用户的标准操作数据归为一类。用户数目较少的那一类用户,可以认为是异常群体,存在开挂程序。
[0123]
在一实施例中,假设检测引擎包括监督引擎,上述步骤s340具体可以包括以下步骤:利用包含是否为外挂程序标记的样本操作数据,通过监督引擎进行机器学习,训练得到外挂识别模型;将所述标准操作数据输入所述外挂识别模型,根据所述外挂识别模型的输出确定是否存在外挂程序。
[0124]
样本操作数据是指已知是否存在外挂程序的客户端对应的标准操作数据,为进行区分,称为样本操作数据。外挂识别模型学习了具有外挂程序的客户端的标准操作数据的特征,故将待识别的标准操作数据输入外挂识别模型,外挂识别模型的输出即为是否存在外挂程序的识别结果。例如输出可以是百分数,按照设定的阈值,大于阈值,则认为是存在外挂程序。
[0125]
在图4和图7对应实施例的基础上,如图9所示,多种引擎的识别结果归总后可以输出到数仓,根据客户的使用诉求不同,支持多种输出方式,如公有云数仓、私有云数仓、本地数仓等。
[0126]
为了满足运营对异常玩家处罚前的复核等需求,服务端通过反外挂平台还可以进行可视化操控轨迹的展示。在一实施例中,以静态图或动态图显示所述标准操作数据对应的操控轨迹。
[0127]
操控轨迹是指点击、滑动的路径,以手指触控的手游为例,可以是手指的触摸轨迹,如果是鼠标操控,则是鼠标按下后到抬起期间光标移动的轨迹。
[0128]“静态图”是最常见的一种操控轨迹可视化方式,如图10所示。通过将操控轨迹(点击、滑动)绘制在二维空间上,使用户可以对玩家操作模式有一个快速的认知。其中,点击行为有两个采样点(down,up),这两个采样点的屏幕x,y坐标相同,将其作为一个点绘制在二
维空间即可。滑动行为有三个及以上的采样点(down,move(一个或多个),up),这些采样点的屏幕x,y坐标往往不同,将这些采样点的坐标在二维空间依次连接,可以得到一条线,即为该次滑动行为的轨迹。
[0129]“动态图”是在“静态图”的基础上,增加了时序信息。因为标准操作数据中记录了每个采样点的时间戳信息,因此可在时间维度上依次展示玩家的操作轨迹,最终以gif、视频等输出形式展示。
[0130]
在另一实施例中,可以在半透明化的交互界面中以静态图或动态图显示所述标准操作数据对应的操控轨迹。
[0131]
在“静态图”或“动态图”的基础上显示半透明化的游戏交互界面(ui),以便运营人员可以快速理解玩家操作行为的背后意图,从而更好地确定异常操作模式。游戏交互界面(不透明)示意图如下图11所示。
[0132]
在其他实施例,可视化证据的展示方式还可以是:根据所述标准操作数据,统计每个操作位置的重复点击次数;以静态图或动态图显示所述标准操作数据对应的操控轨迹,并在所述静态图或动态图中标记出重复点击次数大于阈值的操作位置以及相应的重复点击次数。
[0133]
假设“点击”标准操作模式的模式标识是1,如果模式标识都是1,且操作位置接近(例如距离小于阈值),可以认为该操作位置发生了重复点击,可以统计出重复点击次数。如图12所示,可以在静态图或动态图中标记出重复点击次数大于阈值的操作位置(例如坐标1115,659)以及相应的重复点击次数(例如17次)。
[0134]
在“静态图”或“动态图”的基础上,展示精准重复点击的位置和次数,使得用户可以快速捕捉精准重复点击的异常模式。这里的重复点击可以有两种维度,一是样本维度,即一个人的这些数据中的重复点击情况;另一个维度是群体维度,如当日同服务器的所有玩家中,重复点击该点的次数。
[0135]
在其他实施例中,可视化证据的展示方式还可以是:在静态图或动态图中突出显示确定存在外挂程序的标准操作数据对应的操控轨迹。
[0136]
突出显示的操控轨迹可以称为“ai模型的解释结果”。表示了检测引擎中的ai模型是基于哪些异常数据来判定整个样本为异常样本,从而可以让用户更快速地聚焦到异常样本的异常区域。如图13所示,异常样本的异常区域被ai模型算法捕捉后,加以高亮显示。
[0137]
本技术上述实施例提供的技术方案,通过将原始操作事件转换成标准化事件,使其在不同系统环境(安卓、ios),游戏引擎(unity,unreal,cocos等),虚拟环境(云真机、云游戏、模拟器等)上的部署成本更低,相比现有技术由于无需收集外挂程序特征,可以减少人力在反外挂业务中的投入,提高反外挂方案的复用性和可迁移性,减少每次新接入游戏的接入成本,在对抗外挂变异时,迭代成本更低,使得最终对抗更有效。
[0138]
基于深度学习的多引擎协作异常检测,大大提高了外挂检测的精度与覆盖范围,同时还能自动挖掘新的异常模式与变异外挂,使得整体外挂检测方案的效果更好,成本更低。基于操作轨迹可视化的多种证据生成,实现了更快速的异常玩家复核,降低了游戏运营复核成本,同时还可作为证据助力游戏运营应对玩家投诉。
[0139]
下述为本技术装置实施例,可以用于执行本技术上述外挂识别方法实施例。对于本技术装置实施例中未披露的细节,请参照本技术外挂识别方法实施例。
[0140]
图14为本技术一实施例示出的外挂识别的装置的框图。如图14所示,该装置包括:数据获取模块1410、模式匹配模块1420、数据提取模块1430以及数据识别模块1440。
[0141]
数据获取模块1410,用于获取终端设备的界面操作数据,所述界面操作数据包括由多个界面操作事件构成的第一序列以及每个界面操作事件对应的操作位置和时间戳;
[0142]
模式匹配模块1420,用于按照预设的标准操作模式,将所述第一序列与所述标准操作模式进行匹配,从所述第一序列中提取标准操作模式对应的界面操作事件序列,作为第二序列;
[0143]
数据提取模块1430,用于根据所述第二序列,获得标准操作数据;所述标准操作数据包括所述第二序列对应的标准操作模式的模式标识、所述第二序列中每个界面操作事件对应的操作位置和时间戳;
[0144]
数据识别模块1440,用于根据所述标准操作数据,通过检测引擎,判断是否存在外挂程序。
[0145]
上述装置中各个模块的功能和作用的实现过程具体详见上述外挂识别的方法中对应步骤的实现过程,在此不再赘述。
[0146]
在本技术所提供的几个实施例中,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0147]
另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0148]
功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。