用于反作弊检测的系统和方法与流程


用于反作弊检测的系统和方法


背景技术:



1.不幸的是,利用技术在在线多玩家游戏中作弊已经成为一个普遍存在的问题。在线游戏玩家可以访问各种公共或私人可用的工具,或者利用各种黑客技术,其中任何一种都可以为他们在竞争性在线游戏中提供不公平的优势。随着竞争性电子竞技不断壮大,阻止作弊者的重要性变得越来越重要。不幸的是,随着竞争性在线游戏行业的发展,黑客和作弊发布团伙已经发展出了其自己的不断增长的产业。
2.已经采取了各种反制措施以阻止竞争性在线游戏中日益增多的作弊行为。例如,对游戏机制和游戏设计进行了重组以排除某些类型的作弊。跟踪并分享玩家公平竞争的声誉也可以为阻止作弊提供社交角度。在许多其他技术中,最近出现了一些更复杂的用于检测或阻止作弊的方法。这样的方法包括:使用试探法来确定潜在的作弊,确定和检测某些公知作弊的数字签名,以及甚至对游戏应用进程进行沙盒(sandbox)处理以排除可能修改游戏进程或存储器的注入技术或进程。


技术实现要素:



3.本公开的实施例涉及反作弊检测。更具体地,实施例涉及用于在游戏设备的启动时间期间保护系统状态和存储器的系统和方法。本质上,所描述的实施例促进了在启动时将反作弊内核驱动程序加载到计算设备的操作系统中的能力,使得系统状态和存储器不能以常规反作弊技术无法检测到的方式被修改和伪装。
4.在一些实施例中,当游戏设备启动时,或者换言之,当操作系统被加载到游戏设备的存储器中时,反作弊内核驱动程序被加载到该存储器中。凭借在游戏设备的启动期间加载反作弊内核驱动程序,可以在执行某些作弊技术之前的时间保护与安装在游戏设备上的游戏应用相关联的存储器块。只要在启动期间加载反作弊内核驱动程序,就可以防止作弊技术以及为伪装作弊所采取的措施。
5.在一些其他实施例中,具有在启动时加载的反作弊内核驱动程序的游戏设备可以与远程反作弊服务器建立网络会话。基于正在建立的网络会话,游戏设备可以接收从远程反作弊服务器传送到游戏设备的反作弊模块。游戏设备可以向所加载的反作弊内核驱动程序发送接收到的反作弊模块,使得反作弊模块可以在游戏设备的操作系统的内核中执行。凭借正在执行的反作弊模块生成的结果可以经由所建立的网络会话从游戏设备传送到远程反作弊服务器。
6.远程反作弊服务器可以分析结果并确定结果指示游戏设备上正在使用的作弊技术。在一些其他实施例中,远程反作弊服务器可以针对被确定为正在使用检测到的作弊技术的游戏设备采取反作弊措施。在一些方面,远程反作弊服务器可以向能够与远程反作弊服务器相关联的游戏服务器通知禁止与游戏设备相关联的账户。在一些其他方面,远程反作弊服务器可以向与远程反作弊服务器相关联的游戏服务器通知禁止来自包括游戏设备中使用的一个或多个硬件的任何游戏设备的连接。可以设想,在一些实施例中,反作弊服务器可以独立地或经由游戏服务器使游戏设备提供用于显示指示检测到作弊技术的图形警
报。
7.提供了本发明内容以用简化的形式介绍下面在具体实施方式中进一步描述的构思的选择。本发明内容不旨在标识所请求保护的主题的关键特征或基本特征,也不旨在用作帮助确定所请求保护的主题的范围。
附图说明
8.下面参照附图详细地描述本公开的实施例,在附图中:
9.图1是根据本公开的一些实施例的示例性系统图;
10.图2是根据本公开的一些实施例的示例性游戏设备;
11.图3是根据本公开的一些实施例的示例性反作弊服务器;
12.图4是示出了根据本公开的一些实施例的用于反作弊检测的方法的流程图;
13.图5是示出了根据本公开的一些实施例的用于反作弊检测的另一方法的流程图;以及
14.图6是适用于实现本公开的一些实施例的示例性计算环境的框图。
具体实施方式
15.本文具体描述了本公开的主题以满足法定要求。然而,说明书本身并不旨在限制本专利的范围。相反,发明人已经设想到,所要求保护的主题也可以结合其他现有或未来技术以其他方式体现,以包括与本文档中描述的步骤类似的不同步骤或步骤组合。此外,尽管在本文中可以使用术语“步骤”和/或“框”来表示所采用的方法的不同要素,但是这些术语不应被解释为暗示本文所公开的各个步骤之间的任何特定顺序,除非明确地描述了各个步骤的顺序。
16.在线多玩家视频游戏行业已经在全球范围内的所有人中获得了极大的欢迎。随着在线多玩家视频游戏在主流媒体中占据一席之地,诸如电子竞技之类的新行业吸引了大量希望提高其游戏影响力、脱颖而出并赢得竞争性游戏赛事的游戏玩家(即,具有用户账户的用户)。随着竞争日益激烈,许多游戏玩家将在技能和战术诀窍上超越其他游戏玩家。然而,其他游戏玩家可能利用不公平的技术策略来取得不应有的成功。虽然有许多不同的原因导致游戏玩家可能在在线多玩家游戏中利用作弊技术,但是游戏开发者希望阻止这些作弊者,以便为那些按照规则进行游戏的玩家们提供公平的游戏环境。
17.由黑客和游戏玩家开发并利用的技术作弊有许多类型。游戏漏洞利用、自动用户操作、游戏覆盖和游戏状态操控仅是几种公知的作弊技术类型。为此,反作弊开发者已经创建了反作弊工具和服务,其通常可以落入作弊检测或作弊防止等的类别中。
18.反作弊检测技术本质上包括可以确定玩家是否正在作弊或玩家正在作弊的可能性的方法或策略。在一个示例中,可以识别某些作弊程序的签名并将其添加到反作弊库,使得与反病毒程序极为相似,可以扫描游戏设备的运行时存储器以确定在游戏期间是否正在执行作弊程序。不幸的是,由于必须知晓作弊技术或程序的签名才能识别它,因此这种反作弊检测方法通常往往比黑客或这些作弊技术的开发者落后一步。
19.另一作弊检测方法包括对试探法的分析以确定利用作弊程序的可能性。更具体地,即使作弊程序的签名是未知的,也可以分析某些代码流行为以确定是否存在作弊的迹
象。然而,该作弊检测方法并不完全可靠,因为更先进的作弊技术仍然无法被检测到。
20.另一方面,作弊防止方法可以包括用于混淆游戏应用代码的技术,使得黑客难以利用可用于创建作弊的许多标准工具。另外,开发者已经习知对游戏应用进程进行沙盒处理,以防止常见的注入技术,或者防止外部进程控制游戏应用进程或存储器等。
21.一般而言,可以容易地检测到在游戏设备的操作系统的应用层上运行的反作弊。因此,黑客可以针对这种反作弊进行逆向工程并开发应变方法,从而轻松地规避所采用的任何检测或防止策略。为此,反作弊开发者已经开发了反作弊内核驱动程序技术,该技术可以促进其在游戏设备上所加载的操作系统的内核层上执行反作弊检测和防止模块的能力。在内核层上运行时,内核层反作弊模块可以验证游戏设备(例如,其操作系统或存储器)的状态,或者换言之,可以确定操作系统是安全的(例如,系统文件未被破坏、内核调试器未被附接、虚拟环境不存在、某些高风险软件不存在、自完整性检查未失败)。因此,在内核层上运行反作弊模块使得黑客明显更难以对正在执行的反作弊进程进行检测和逆向工程。
22.虽然基于内核的反作弊技术已经证明是成功的,但是这些技术现在存在一些漏洞,不幸的是,这些漏洞正被黑客利用以规避这些内核级检测和防止机制。更具体地,在常规的反作弊技术中,通常不加载反作弊内核驱动程序(并且因此不执行操作系统安全检查),直到启动或换言之执行游戏应用或相关联的反作弊应用。在自组织(ad hoc)的基础上加载反内核作弊驱动程序的主要缺点是系统启动和游戏应用的启动之间的时间保持未经检查。本质上,这给予了黑客在从初始启动开始直到启动游戏应用并加载反作弊内核驱动程序的任何点篡改操作系统和存储器的机会。因此,黑客已经习知正好在加载反作弊内核驱动程序的点之前清除其轨迹,使得在加载反作弊内核驱动程序并执行系统有效性检查的时间点检查并验证系统状态。
23.因此,本公开的各种实施例涉及在启动游戏设备时加载反作弊内核驱动程序,以防止在游戏设备运行中的任何时间点篡改操作系统和存储器状态。通过在启动时加载反作弊内核驱动程序,游戏设备可以确保维持可以执行游戏应用或反作弊工具的安全且未篡改的执行环境。在一些实施例中,该安全执行环境可以用于初始化可与远程反作弊服务器通信的反作弊应用。远程反作弊服务器可以向游戏设备传送各种反作弊模块,使得可以在“按需”或自组织的基础上在安全执行环境内执行反作弊模块。通过将反作弊模块远程地存储在反作弊服务器上,并且通过向游戏设备发送反作弊模块以供自组织地执行,极大地减少了在游戏设备上对这些模块进行分析和逆向工程的机会。此外,反作弊模块可以生成结果,该结果被传送回远程反作弊服务器以用于分析。基于该分析,反作弊服务器可以确定已经在游戏设备上检测到作弊技术,从而使游戏服务器禁止或以其他方式阻止游戏设备或与游戏设备相关联的用户账户进一步进行在线游戏。
24.现在转到图1,提供了示出可以采用本公开的一些实施例的示例性系统100的示意图。应当理解,本文描述的这种和其他布置仅作为示例阐述。除了所示的布置和元件之外或代替所示的布置和元件,可以使用其他布置和元件(例如,机器、接口、功能、顺序、功能分组等),并且可以完全省略一些元件。此外,本文描述的许多元件是功能实体,其可以被实现为分立的或分布式的组件或与其他组件相结合,并且以任何合适的组合和位置来实现。本文被描述为由一个或多个实体执行的各种功能可以由硬件、固件和/或软件来执行。例如,可以由执行存储在存储器中的指令的处理器来执行各种功能。
25.作为非限制性示例,图1中的系统包括游戏服务器110,其可以通过网络130(例如,lan、wan、互联网或其任意组合)与游戏设备120通信。游戏服务器110可以托管多个游戏设备(例如,游戏设备120)的在线多玩家游戏等。游戏服务器110还可以通过网络130与反作弊服务器140通信,并且类似地,反作弊服务器140可以与每个游戏设备(例如,游戏设备120)通信。在一些方面,游戏设备120可以响应于或基于启动安装在游戏设备120上的游戏应用(例如,在线多玩家游戏)而与游戏服务器110和反作弊服务器140中的每一个建立网络连接。根据本文描述的各种实施例,游戏服务器110、游戏设备120或反作弊服务器140中的每一个可以包括如关于图6更详细地描述的一个或多个计算设备。
26.游戏设备120优选地与用户账户相关联,该用户账户与用户(即,玩家)相关联。在一些实施例中,游戏设备120包括反作弊技术,其确保游戏设备的操作系统和存储器不被篡改等。与在游戏应用启动(即,运行、开始、执行)时加载反作弊内核驱动程序的常规反作弊技术不同,游戏设备120可以在操作系统(例如,微软视窗(microsoft windows))被加载到游戏设备120的存储器(即,在启动时)时将反作弊内核驱动程序加载到游戏设备的存储器。具有在启动期间加载的反作弊内核驱动程序的游戏设备120可以比常规反作弊技术更好地确保游戏设备120(例如,其操作系统和存储器)的完整性,因为在启动时加载反作弊内核驱动程序确保在游戏应用启动之前不会在游戏设备120上发生操作系统或存储器篡改。
27.当在启动游戏设备120时加载反作弊内核驱动程序时,游戏设备120可以创建安全环境以在游戏设备120的操作系统的内核层或应用层中运行反作弊检测或防止操作。在一些实施例中,从启动时开始,游戏设备120可以连续地或周期性地执行各种测量和检查,以确保有效的系统状态。在一些方面,如果游戏设备120确定其系统状态无效,则其可以阻止与反作弊服务器140或游戏服务器110之一或两者的连接。
28.在一些实施例中,游戏设备120可以经由网络130与反作弊服务器140建立会话。在安全环境到位的情况下,游戏设备120可以通过网络130从反作弊服务器140接收一个或多个反作弊模块。反作弊模块可以包括能够在游戏设备120的应用层或内核层上执行的二进制或可执行代码等。在一些方面中,反作弊服务器140可以从存储在耦接到反作弊服务器140的存储器或数据库中的多个反作弊模块中动态地选择任何类型的反作弊模块(例如,应用模式模块、内核模式模块),并且向游戏设备120传送所选择的反作弊模块。
29.在一些实施例中,游戏设备120可以执行接收到的反作弊模块。在一些方面中,如果反作弊模块是内核模式模块,则游戏设备120可以向所加载的反作弊内核驱动程序发送接收到的反作弊模块,使得可以在游戏设备120的内核层上执行反作弊模块。在一些其他方面中,如果反作弊模块是用户模式模块,则游戏设备120可以简单地在游戏设备120的应用层上执行接收到的反作弊模块。一旦被执行,游戏设备120可以通过执行反作弊模块生成结果,并且经由网络130将该结果传送回反作弊服务器140。
30.在一些实施例中,反作弊服务器140可以通过网络从游戏设备120接收结果。反作弊服务器可以分析该结果,并且确定该结果是否指示所执行的反作弊模块在游戏设备120上检测到作弊企图或某种形式的作弊技术。在一些方面中,反作弊服务器140可以经由网络130向游戏设备120传送与游戏服务器110断开连接的指令。在一些其他方面中,反作弊服务器140可以经由网络130向游戏服务器110传送对游戏设备120采取反作弊缓解措施的指令。作为非限制性示例,反作弊缓解措施可以包括禁止与游戏设备120相关联的用户账户、强制
终止与游戏设备120的网络连接、禁止与游戏设备120相关联的已识别硬件或硬件地址等。
31.现在参照图2,提供了框图200,其示出了可以采用本公开的一些实施例的用于创建安全环境以运行反作弊检测或防止操作的示例性游戏设备120(如图1中类似地描绘)。在各种实施例中,游戏设备120可以包括如图6所示的至少一个计算设备、游戏控制台、手持游戏设备、移动设备(例如,电话、平板电脑)等。可以设想,本文公开的各种组件可以以专用硬件、固件、软件或其组合来实现以促进所公开的实施例。在初始启动(例如,通电、开机)时,游戏设备120可以将至少具有内核层和应用层的操作系统加载到游戏设备120的存储器中。一旦被启动,游戏设备120可以向操作系统呈现图形用户界面(gui),并且促进启动(例如,开始、执行)安装在游戏设备120的存储器中的游戏应用(例如,在线多玩家游戏)。在各种实施例中,游戏设备120可以包括促进反作弊检测和防止的组件和模块,如本文将描述的。还如根据图1所描述的,游戏设备120可以响应于检测到的游戏应用的启动而初始化这样的反作弊机制,并且还可以基于检测到的启动在游戏服务器110和反作弊服务器140中的每一个之间建立会话。
32.在一些实施例中,游戏设备120可以包括内核驱动程序初始化组件210,其将反作弊内核驱动程序加载到游戏设备120的存储器中。虽然内核驱动程序通常用于在硬件设备和使用它们的应用之间转换指令,但是本公开的实施例加载反作弊内核驱动程序,该内核驱动程序使得能够在内核层加载和执行反作弊检测和防止模块。通过这样做,在内核层上执行的反作弊检测和防止操作使黑客明显更难以对这种操作进行检测和/或逆向工程。在启动时加载反作弊内核驱动程序时,内核驱动程序初始化组件210可以监控操作系统和存储器的状态以确定加载反作弊内核驱动程序是否导致系统不稳定或性能问题。在一些实施例中,如果内核驱动程序初始化组件210检测到系统不稳定或性能问题(例如,内核崩溃),则内核驱动程序初始化组件210可以动态地卸载反作弊内核驱动程序,或者动态地防止在启动时进一步加载反作弊内核驱动程序,使得游戏设备120的未来启动不会导致附加的不稳定或性能问题。
33.在一些实施例中,游戏设备120可以包括系统状态验证组件220,其可以连续地、周期性地或在自组织的基础上验证所加载的操作系统和存储器的状态,以用于执行安装在游戏设备120上的游戏应用等。换言之,随着在启动时加载反作弊内核驱动程序,系统状态验证组件220可以对操作系统和存储器执行各种检查和测量以确保:操作系统的系统文件在启动时是有效的,或者操作系统的系统文件的更改在启动后未被篡改。在一些实施例中,系统状态验证组件220可以防止改变(例如,沙盒)操作系统的系统文件。
34.在一些实施例中,游戏设备120可以包括反作弊检测组件230,其可以连续地、周期性地或在自组织的基础上确保没有系统文件被破坏或篡改、没有内核调试器正被利用、没有虚拟环境正被利用、没有高风险或公知的作弊软件正被执行、或反作弊内核驱动程序的自完整性检查没有失败等。随着在启动时加载反作弊内核驱动程序,反作弊检测组件230可以扫描操作系统和存储器以查与这种作弊技术相关联的已知行为和标记。在一些实施例中,如果检测到作弊技术,则反作弊检测组件230可以防止启动或进行所安装的游戏应用,直到问题解决为止。在一些方面,可以通过移除违规作弊技术并重启游戏设备120来解决问题。
35.在一些实施例中,游戏设备120可以包括内核模块执行组件240,随着在启动时加
载反作弊内核驱动程序,内核模块执行组件240可以接收要在游戏设备120的内核层或应用层上加载和执行的反作弊模块。在一些方面中,可以根据接收到的模块类型以内核模式或用户模式中的任一者来执行反作弊模块。在各种实施例中,由内核模块执行组件240接收到的反作弊模块可以包括能够在内核层上加载和执行以用于检测特定反作弊技术的反作弊二进制或其他可执行代码。作为其执行接收到的反作弊模块的结果,内核模块执行组件240可以生成能够被分析以确定在游戏设备120上是否检测到特定作弊技术的结果。
36.如将要描述的,内核模块执行组件240可以经由网络接收从反作弊服务器(例如,图1的反作弊服务器140)向游戏设备120发送的多个反作弊模块中的任何一个,使得反作弊模块由游戏设备120“按需”或换言之在反作弊服务器的请求下远程地执行。在一些其他实施例中,内核模块执行组件240可以在其执行完成时立即删除反作弊模块,使得黑客没有机会分析反作弊模块。可以设想,这种用于将反作弊模块传送到游戏设备120以供执行的自组织方法使黑客难以对所利用的反作弊方法进行逆向工程和分析。
37.在各种实施例中,游戏设备120可以包括游戏应用处理组件250,其响应于游戏应用的启动而将游戏应用加载到存储器中。作为示例,游戏应用可以包括在线多玩家游戏。游戏应用处理组件250可以将游戏状态、用户账户信息和促进游戏进行的各种代码或数据存储到游戏设备120的存储器。在一些其他实施例中,游戏应用处理组件250可以与游戏服务器接口组件260通信,游戏服务器接口组件260经由网络与游戏服务器(例如,图1的游戏服务器110)建立会话。游戏应用处理组件250可以经由游戏服务器接口组件260传送用户账户信息(例如,用户名、密码)等以获得对游戏服务器的访问。游戏应用处理组件250可以与游戏服务器交换游戏数据,并且还经由游戏服务器接口组件260接收各种指令、通知或警报。在一些实施例中,可以响应于确定在游戏设备120上执行的反作弊模块已经检测到作弊技术,经由游戏服务器接口组件260从游戏服务器接收通知或警报。为此,游戏应用处理组件250可以提供在图形用户界面(例如,经由游戏应用)中显示该通知或警报。
38.在各种实施例中,游戏设备120可以包括反作弊管理组件270,其可以与在启动时加载的反作弊内核驱动程序接口连接、与反作弊服务器交换数据(例如,反作弊模块、结果)和/或执行或删除从反作弊服务器接收到的反作弊模块。在一些实施例中,反作弊管理组件270可以包括内核驱动程序接口组件272,其可以激活在游戏设备120启动时加载的反作弊内核驱动程序。可以设想,内核驱动程序接口组件272还可以在启动时未加载反作弊内核驱动程序的情况下加载和激活反作弊内核驱动程序。在一些实施例中,内核驱动程序接口组件272可以促进反作弊管理组件270和游戏设备120的一个或多个组件(例如,系统状态验证组件220、反作弊检测组件230或内核模块执行组件240等)之间的数据交换。本质上,反作弊管理组件270可以初始化或开始由游戏设备120的其他此类组件执行的操作(例如,状态验证、反作弊检测)。在一些方面中,内核驱动程序接口组件272可以由反作弊管理组件270用于向内核模块执行组件240发送反作弊模块和执行反作弊模块的指令。在一些其他方面中,内核驱动程序接口组件272可以由反作弊管理组件270用于接收所执行的反作弊模块的由内核模块执行组件240生成的结果。
39.在一些实施例中,反作弊管理组件270可以包括反作弊服务器接口组件274,其在游戏设备120和反作弊服务器(例如,图1的反作弊服务器140)之间建立网络会话。可以设想,基于检测到的安装在游戏设备120上的游戏应用的启动来建立网络会话。还可以设想,
游戏应用可以与反作弊管理组件270相关联。其间建立的网络会话可以用于以连续的、周期性的或自组织的方式交换数据。在一些方面中,反作弊服务器接口组件274可以接收经由网络从反作弊服务器140传送的反作弊模块。在一些其他方面中,反作弊服务器接口组件274可以发送基于接收到的正在游戏设备120上执行的反作弊模块而生成的一个或多个结果。在一些实施例中,反作弊服务器接口组件274可以接收来自反作弊服务器140的指令,这些指令定义了要执行哪些反作弊模块、何时执行这样的反作弊模块、或何时将由游戏设备120删除这样的反作弊模块。
40.在一些实施例中,反作弊管理组件270可以包括模块管理组件276,其基于经由反作弊服务器接口组件274从反作弊服务器140接收到的指令来管理从反作弊服务器140接收到的反作弊模块。在一些方面中,并且如上面简要地时论的,接收到的指令可以包括要在游戏设备120上执行的特定任务(例如,模块执行、定时、处置)。就此而言,模块管理组件276可以解释从反作弊服务器140接收到的指令,并且相应地管理从其中接收到的反作弊模块。可以设想,反作弊管理组件270可以至少与内核驱动程序接口组件272通信,以从游戏设备120的内核层加载、执行或卸载模块。
41.现在参照图3,提供了框图300,其示出了可以采用本公开的一些实施例的用于远程地管理游戏设备(例如,图1和图2的游戏设备120)上的反作弊模块的接收、加载、执行和/或删除的示例性反作弊服务器140(如图1中类似地描绘)。在各种实施例中,反作弊服务器140可以包括如图6所示的至少一个计算设备。可以设想,本文公开的各种组件可以以专用硬件、固件、软件或其组合来实现以促进所公开的实施例。
42.在一些实施例中,反作弊服务器140可以包括促进与游戏设备120的通信的反作弊客户端接口组件310,使得可以远程地管理游戏设备120上的反作弊操作等。基于从游戏设备120接收到的会话请求,反作弊服务器140可以使用反作弊客户端接口组件310经由网络与游戏设备120建立会话。根据一些实施例,反作弊服务器140可以使用反作弊客户端接口组件310经由所建立的网络会话将一个或多个反作弊模块传送到游戏设备120以在其上执行。继而,反作弊服务器140可以经由相同的或随后建立的会话接收所执行的反作弊模块的结果以供分析,并且随后确定游戏设备120是否正在利用作弊技术。
43.在一些实施例中,在高级别上,反作弊服务器140可以包括反作弊协调组件320,该反作弊协调组件320自主地:选择要传送到游戏设备120的反作弊模块;生成并传送命令游戏设备120如何或何时加载、执行或删除反作弊模块的指令;分析在游戏设备120上执行的反作弊模块的结果;或者在执行反作弊模块结果分析之后生成并传送命令游戏设备120如何操作(例如,待机、断开连接)的指令。
44.根据一些实施例,反作弊协调组件320可以包括从多个反作弊模块中选择反作弊模块的模块选择组件330。在各种实施例中,多个反作弊模块可以包括内核模式反作弊模块或用户模式反作弊模块等。反作弊模块可以存储在耦接到反作弊服务器140的数据库或其他存储器设备中。如上文所描述的,存储除了游戏设备120之外的反作弊模块使黑客难以预测正在执行的反作弊,并且也难以对该反作弊进行逆向工程。可以设想,模块选择组件330可以基于一个或多个选择规则集来选择用于通信和执行的反作弊模块。作为示例,可以基于将进行一组特定的在线多玩家游戏的特定环境来定义选择规则集。例如,对一个或多个反作弊模块的按照特定顺序、组合或类型的选择可能会有所不同,这取决于是否正在进行
一系列专业的电子竞技游戏与是否日常用户正在进行游戏。
45.根据一些实施例,反作弊协调组件320可以包括模块任务组件340,该模块任务组件340生成指令以经由与其建立的会话发送到游戏设备120。指令可以体现为电子消息,该电子消息可以包括反作弊模块的二进制或其他可执行代码、定义何时或何处(例如,内核层、应用层)执行反作弊模块的命令、或向游戏设备120下达执行促进反作弊检测和防止的特定操作的任务的其他指令等。在一些方面中,消息可以包括指示游戏设备在执行之后存储或删除反作弊模块的命令,尽管在优选实施例中,游戏设备可以在执行和/或向反作弊服务器140传送其结果时自主地删除反作弊模块。
46.根据一些实施例,反作弊协调组件320可以包括模块结果分析组件350,其响应于从反作弊服务器140发送的已经在游戏设备120上执行的反作弊模块,经由反作弊客户端接口组件310从游戏设备120接收报告。在一些实施例中,该报告可以包括所执行的反作弊模块的二进制结果(例如,检测到作弊、未检测到作弊)等。在一些其他实施例中,该报告可以包括由所执行的反作弊模块收集的统计或非结构化数据。以此方式,可以评估特定试探法或数据分析以确定在游戏设备120上作弊的可能性或建立对在游戏设备120上作弊的确认。因此,模块结果分析组件350可以分析报告以确定所执行的反作弊模块是否在游戏设备120上检测到或防止了作弊。在一些实施例中,如果确定游戏设备120正在作弊,则模块结果分析组件350可以执行各种反作弊缓解操作,如将要描述的。
47.根据一些实施例,反作弊协调组件320可以包括游戏设备控制组件360,其可以生成要经由反作弊客户端接口组件310传送到游戏设备120以用于控制游戏设备120的特定动作的消息。在一些方面中,该消息可以包括指导游戏设备120执行特定操作的命令。作为示例,该消息可以包括指示游戏设备120从反作弊服务器140或游戏服务器110断开连接的命令。断开连接命令可以包括在响应于模块结果分析组件350确定游戏设备120正在利用作弊技术而生成的新消息中。可以设想,在一些方面中,该命令还可以防止游戏设备120与反作弊服务器140或游戏服务器110建立未来会话。在另一示例中,消息可以包括指示游戏设备120待机并等待来自反作弊服务器140的另一消息、指令或命令的命令。
48.在一些实施例中,反作弊服务器140可以包括游戏服务器接口组件370,其可以与游戏服务器(例如,图1的游戏服务器110)传送电子消息,并且向游戏服务器110通知游戏设备120是否被批准或拒绝用于在游戏服务器110上进行在线多玩家游戏。在一些情况下,反作弊服务器140可以向游戏服务器110发送连续的或周期性的消息,从而向游戏服务器110通知游戏设备120的反作弊检测状态。换言之,如果反作弊服务器140基于从游戏设备120接收到的结果确定游戏设备120正在利用作弊技术,则反作弊服务器140可以响应地向游戏服务器110传送反作弊缓解指令。可以设想,这样的指令可以包括:对在游戏设备120上作弊的确认或在游戏设备120上作弊的可能性、与游戏设备120相关联的用户账户、与游戏设备120相关联的硬件签名、检测到的作弊的特征和/或严重性、网络信息(例如,ip地址)和/或与游戏设备120相关联的任何其他识别信息等。
49.现在参照图4,提供了示出用于反作弊检测的方法的流程图。该方法还促进基于检测到的受损系统状态(即,被确定为已经遭篡改的系统)阻止游戏设备(例如,图1和图2的游戏设备120)访问游戏服务器(例如,图1的游戏服务器110)。如框410所示,游戏设备可以使用内核驱动程序初始化组件(例如,图2的内核驱动程序初始化组件210)在游戏设备的启动
过程期间将反作弊内核驱动程序加载到存储器。在各种实施例中,游戏设备可以使用内核驱动程序初始化组件在监控操作系统和存储器的同时执行稳定性检查,以确保反作弊内核驱动程序被正确地加载、是稳定的且不会导致系统不稳定。例如,游戏设备可以跟踪何时由于加载反作弊内核驱动程序而发生内核崩溃或恐慌。为此,游戏设备可以使用内核驱动程序初始化组件来动态地修改其启动过程并防止发生重复的内核崩溃或恐慌。
50.基于在启动过程期间加载到存储器的反作弊内核驱动程序,在框420处,游戏设备可以使用系统状态验证组件(例如,图2的系统状态验证组件220)来对操作系统文件、游戏设备的存储器和操作系统的其他方面执行一系列检查,以确定游戏设备的有效状态。优选地,在游戏设备的启动过程完成之前执行这些检查。以此方式,可以防止如在常规反作弊技术中的仅在启动游戏应用时执行的阻碍系统状态验证的高级企图。
51.在框430处,具有在启动过程期间加载的反作弊内核驱动程序的游戏设备可以使用反作弊检测组件(例如,图2的反作弊检测组件230),其包括用于检测在加载反作弊内核驱动程序之后系统状态(例如,存储器块或系统文件)是否被篡改的一系列检测向量或操作。在一些实施例中,游戏设备可以连续地或周期性地使用反作弊检测组件来跟踪(例如,存储在存储器中、设置标志、识别)并存储系统状态的特征或篡改系统状态的任何企图。更具体地,凭借在启动时加载反作弊内核驱动程序,反作弊检测组件可以在各种作弊技术可能篡改系统状态之前有效地对存储器块和/或系统文件进行沙盒处理。然而,如果在加载反作弊内核驱动程序之后存在篡改系统状态的企图,则可以使用反作弊检测组件来跟踪这些企图并进一步跟踪游戏设备的篡改状态。在一些其他实施例中,游戏设备可以简单地将在启动时被确定为有效的第一系统状态与在稍后时间(例如,当启动游戏应用时)确定的状态进行比较,以用于确定游戏设备的状态是否已经改变。
52.在框440处,基于确定系统状态无效或已经被篡改,游戏设备的反作弊检测组件可以阻止游戏设备120和游戏服务器110之间的访问,从而有效地防止游戏设备参与游戏服务器上托管的任何在线多玩家游戏。在各种实施例中,反作弊检测组件可以向游戏应用处理组件(例如,图2的游戏应用处理组件250)、游戏服务器接口组件(例如,图2的游戏服务器接口组件260)和/或反作弊服务器接口组件(例如,图2的反作弊服务器接口组件274)发送系统状态的状态,以有效地防止游戏设备经由游戏服务器参与在线游戏。作为非限制性示例,可以通过阻止游戏服务器或反作弊服务器的主机地址、阻止与游戏服务器或反作弊服务器的网络连接、防止游戏应用建立与游戏服务器的输出连接、向反作弊服务器发送无效系统状态或其任何组合来防止在线游戏参与。在一些实施例中,反作弊检测组件230可以独立地或通过游戏应用处理组件250生成通知,该通知使游戏设备向耦接到游戏设备的显示器提供用于显示的通知。在一些方面中,该通知可以向游戏设备的用户通知需要卸载检测到的作弊技术并重启游戏设备才能启用在线游戏参与。
53.现在参照图5,提供了示出用于反作弊检测的方法的流程图。如框510所示,游戏设备(例如,图1和图2的游戏设备120)可以使用内核驱动程序初始化组件(例如,图2的内核驱动程序初始化组件210)在游戏设备的启动过程期间将反作弊内核驱动程序加载到存储器。在各种实施例中,游戏设备可以使用内核驱动程序初始化组件在监控操作系统和存储器的同时执行稳定性检查,以确保反作弊内核驱动程序被正确地加载、是稳定的且不会导致系统不稳定。例如,游戏设备可以跟踪何时由于加载反作弊内核驱动程序而发生内核崩溃或
恐慌。为此,游戏设备可以使用内核驱动程序初始化组件来动态地修改其启动过程并防止发生重复的内核崩溃或恐慌。
54.根据一些实施例,凭借在启动过程期间加载到存储器的反作弊内核驱动程序,游戏设备可以使用系统状态验证组件(例如,图2的系统状态验证组件220)来对操作系统文件、游戏设备的存储器和操作系统的其他方面执行一系列检查,以确定游戏设备的有效状态。这种检查优选地在游戏设备的启动过程完成之前执行。以此方式,可以防止如在常规反作弊技术中的仅在启动游戏应用时执行的阻碍系统状态验证的高级企图。具有在启动过程期间加载的反作弊内核驱动程序的游戏设备可以使用反作弊检测组件(例如,图2的反作弊检测组件230),其包括用于检测在加载反作弊内核驱动程序之后系统状态(例如,存储器块或系统文件)是否被篡改的一系列检测向量或操作。在一些实施例中,游戏设备可以连续地或周期性地使用反作弊检测组件来跟踪并存储系统状态或篡改系统状态的任何企图。更具体地,凭借在启动时加载反作弊内核驱动程序,反作弊检测组件可以在各种作弊技术可能篡改系统状态之前有效地对存储器块和/或系统文件进行沙盒处理。然而,如果在加载反作弊内核驱动程序之后存在篡改系统状态的企图,则可以使用反作弊检测组件来跟踪这些企图并进一步跟踪游戏设备的篡改状态。
55.基于确定系统状态有效,游戏设备的反作弊检测组件可以启用游戏设备120和游戏服务器110之间的访问,使得游戏设备可以参与游戏服务器上托管的在线多玩家游戏。在各种实施例中,反作弊检测组件可以向游戏应用处理组件(例如,图2的游戏应用处理组件250)、游戏服务器接口组件(例如,图2的游戏服务器接口组件260)和/或反作弊服务器接口组件(例如,图2的反作弊服务器接口组件274)发送系统状态的状态,以促进游戏设备和游戏服务器之间的连接。
56.如框520所示,根据一些实施例,游戏设备可以使用反作弊服务器接口组件经由网络与反作弊服务器建立会话。在一些方面中,可以基于检测到的与游戏服务器或反作弊服务器中的任一者或两者相关联的游戏应用的启动来建立会话。在一些方面中,与反作弊服务器的会话与在游戏设备和游戏服务器之间建立的另一会话同时建立和/或激活。
57.反作弊管理组件(例如,图2的反作弊管理组件270)可以促进反作弊服务器(例如,经由反作弊服务器接口组件)和游戏设备的内核之间的通信,游戏设备使用内核驱动程序接口组件(例如,内核驱动程序接口组件272)与所加载的反作弊内核驱动程序通信。因此,在框530处,游戏设备可以经由反作弊服务器接口组件并通过网络从反作弊服务器接收被选择用于向游戏设备传送的反作弊模块。在一些实施例中,内核驱动程序接口组件可以向游戏设备的内核模块执行组件(例如,图2的内核模块执行组件240)发送接收到的反作弊模块。
58.在一些实施例中,内核模块执行组件可以基于反作弊模块的执行生成报告或结果。因此,在框550处,内核模块执行组件可以从内核层向反作弊服务器接口组件发送所执行的反作弊模块的结果,使得反作弊服务器接口组件可以通过网络将结果传送到反作弊服务器。
59.根据一些实施例,反作弊服务器(例如,图1和图3的反作弊服务器140)可以接收并分析所执行的反作弊模块的结果。在一些方面中,反作弊服务器可以基于置信度阈值水平做出游戏设备正在利用作弊技术的绝对确定或游戏设备正在利用作弊技术的确信确定。在
反作弊服务器确定游戏设备正在利用作弊技术的情况下,反作弊服务器可以向游戏服务器发送消息,该消息指示游戏服务器启动、断开连接或禁止与游戏设备相关联的用户账户、游戏设备本身、游戏设备的网络地址、与游戏设备相关联的硬件签名或地址等。在一些方面中,反作弊服务器可以向游戏设备发送具有断开连接或禁止访问游戏服务器的指令的消息。可以设想,为了使游戏设备维持游戏会话,或者在一些方面中,维持与游戏服务器的网络连接以实现在线游戏,游戏设备还必须具有已建立的连接或已证明的根据请求或周期性地连接到反作弊服务器的能力。以此方式,篡改游戏设备会降低反作弊服务器或游戏服务器所采取的反作弊缓解措施的影响。
60.如本文所描述的,当游戏服务器从反作弊服务器接收到指示游戏服务器采取反作弊措施(例如,启动、断开连接或禁止)的消息时,游戏服务器可以终止在游戏服务器和游戏设备之间建立的网络会话。在一些其他实施例中,游戏服务器可以终止游戏设备正在参与的任何正在进行的游戏会话。在一些其他实施例中,游戏服务器可以生成通过网络传送到游戏设备的通知,使得基于游戏会话的终止或基于所建立的网络会话的终止,游戏设备可以提供用于显示所传送的通知。在各个方面中,所显示的通知可以包括在游戏设备上检测到或防止了作弊技术的通告。在一些其他方面中,通知可以指示对游戏设备或与其相关联的用户账户施加的惩罚(例如,临时禁止、永久禁止)。
61.已经描述了本公开的实施例,以下描述可以在其中实现本公开的实施例的示例性操作环境,以便为本公开的各个方面提供一般上下文。首先具体参照图6,示出了用于实现本公开的实施例的示例性操作环境,并且该示例性操作环境通常被指定为计算设备600。计算设备600仅是合适的计算环境的一个示例,并不旨在对所公开的实施例的使用范围或功能提出任何限制。也不应将计算设备600解释为具有与所示组件中的任何一个或组合相关的任何依赖性或要求。
62.本文的实施例可以在计算机代码或机器可用指令的一般上下文中描述,包括由计算机或其他机器(例如,个人数据助理或其他手持设备)执行的计算机可执行指令(例如,程序模块)。通常,包括例程、程序、对象、组件、数据结构等的程序模块是指执行特定任务或实现特定抽象数据类型的代码。所描述的实施例可以在各种系统配置中实践,包括手持设备、消费电子产品、通用计算机、更专业的计算设备等。所描述的实施例还可以在分布式计算环境中实践,其中任务由通过通信网络链接的远程处理设备来执行。
63.参照图6,计算设备600包括直接或间接地耦接以下设备的总线610:存储器612、一个或多个处理器614、一个或多个呈现组件616、输入/输出(i/o)端口618、输入/输出组件620和说明性电源622。总线610表示可以是一条或多条总线(例如,地址总线、数据总线或其组合)的总线。尽管为了清楚起见用线示出了图6的各个框,但是实际上,描述各个组件不是那么清楚,并且隐喻地,这些线将更精确地是灰和模糊的。例如,可以认为诸如显示设备之类的呈现组件是i/o组件。此外,处理器具有存储器。发明人认识到这是本领域的本质,并且重申图6的图仅说明了可以结合本公开的一个或多个实施例使用的示例性计算设备。在诸如“工作站”、“服务器”、“膝上型计算机”、“手持设备”等的类别之间没有进行区分,因为所有这些都被考虑在图6的范围内,并且被称为“计算设备”。
64.计算设备600通常包括各种计算机可读介质。计算机可读介质可以是可由计算设备600访问的任何可用介质,并且包括易失性和非易失性介质以及可移动和不可移动介质。
作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据之类的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储设备、磁带盒、磁带、磁盘存储设备或其他磁存储设备、或可用于存储所需信息并且可由计算设备600访问的任何其他介质。计算机存储介质本身不包括信号。通信介质通常以诸如载波或其他传输机制之类的调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并且包括任何信息传递介质。术语“调制数据信号”是指以在信号中编码信息的方式设置或改变其特征中的一个或多个特征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接之类的有线介质,以及诸如声学、rf、红外和其他无线介质之类的无线介质。上述示例的任何组合也应包括在计算机可读介质的范围内。
65.存储器612包括易失性和/或非易失性存储器形式的计算机存储介质。存储器可以是可移动的、不可移动的或其组合。示例性硬件设备包括固态存储器、硬盘驱动器、光盘驱动器等。计算设备600包括从各个实体(例如,存储器612或i/o组件620)读取数据的一个或多个处理器。呈现组件616向用户或其他设备呈现数据指示。示例性呈现组件包括显示设备、扬声器、打印组件、振动组件等。
66.i/o端口618允许计算设备600在逻辑上耦接到包括i/o组件620的其他设备,其中一些i/o组件620可以内置。说明性组件包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪、打印机、无线设备等。i/o组件620可以提供自然用户界面(nui),该自然用户界面(nui)处理由用户产生的空中姿势、语音或其他生理输入。在一些情况下,可以将输入发送到适当的网络元件以进行进一步处理。nui可以实现与计算设备600的显示器相关联的语音识别、触笔识别、面部识别、生物测定识别、屏幕上和屏幕附近的姿势识别、空中姿势、头部和眼睛跟踪以及触摸识别(如下文更详细地描述的)的任何组合。计算设备600可以配备有用于姿势检测和识别的深度相机,例如,立体相机系统、红外相机系统、rgb相机系统、触摸屏技术以及这些的组合。另外,计算设备600可以配备有能够检测运动的加速度计或陀螺仪。加速度计或陀螺仪的输出可以被提供给计算设备600的显示器以呈现沉浸式增强现实或虚拟现实。
67.可以理解,本公开的实施例提供了用于反作弊检测的系统和方法等。已经关于特定实施例描述了本公开,这些特定实施例在所有方面都旨在是说明性的而非限制性的。在不脱离本发明的范围的情况下,可替代实施例对于本公开所属领域的普通技术人员将变得显而易见。
68.从上文可以看出,本公开的实施例很好地适于实现上述的所有目的和目标以及对于系统和方法来说是显而易见的和固有的其他优点。应当理解,某些特征和子组合是实用的,并且可以在不参照其他特征和子组合的情况下使用。这是由权利要求所设想的,并且在权利要求的范围内。

技术特征:


1.一种存储计算机可用指令的非暂时性计算机存储介质,所述计算机可用指令在由一个或多个计算设备使用时,使所述一个或多个计算设备执行包括以下各项的操作:在游戏设备的启动过程期间,将反作弊内核驱动程序加载到所述游戏设备的存储器中;在所述启动过程完成之前,经由所加载的反作弊内核驱动程序验证所述游戏设备的系统状态;在所述启动过程完成之后,经由所加载的反作弊内核驱动程序确定所述系统状态受损,其中,由所加载的反作弊内核驱动程序监控受损系统状态;以及响应于与所述反作弊内核驱动程序相关联的游戏应用被启动,基于所确定的受损系统状态,阻止访问与所述游戏应用相关联的游戏服务器。2.根据权利要求1所述的介质,所述操作还包括:经由网络向远程反作弊服务器发送所述系统状态受损的指示;从所述远程反作弊服务器接收用于阻止访问所述游戏服务器或所述反作弊服务器中的至少一个的指令。3.根据权利要求2所述的介质,其中,阻止访问所述游戏服务器包括以下之一:终止与所述反作弊服务器建立的连接,或防止与所述反作弊服务器的网络连接。4.根据权利要求1所述的介质,所述操作还包括:在加载反作弊内核时监控所述游戏设备的稳定性和性能。5.根据权利要求1所述的介质,其中,确定所述系统状态受损是在所述游戏设备的内核层上执行的。6.根据权利要求5所述的介质,其中,监控并分析一组系统文件和一个或多个存储器块以验证所述系统状态并确定所述系统状态受损。7.根据权利要求1所述的介质,所述操作还包括:响应于与所述反作弊内核驱动程序相关联的游戏应用被启动,进一步提供用于显示指示所确定的受损系统状态的图形通知。8.一种存储计算机可用指令的非暂时性计算机存储介质,所述计算机可用指令在由一个或多个计算设备使用时,使所述一个或多个计算设备执行包括以下各项的操作:基于启动游戏设备上的游戏应用,在所述游戏设备和反作弊服务器之间建立第一网络会话,并在所述游戏设备和游戏服务器之间建立第二网络会话;接收从所述反作弊服务器传送到所述游戏设备的反作弊模块;向在所述游戏设备的初始启动过程期间加载的反作弊内核驱动程序发送所述反作弊模块;基于向所加载的反作弊内核驱动程序发送的所述反作弊模块,在所述游戏设备的内核层中执行所述反作弊模块;将所执行的反作弊模块的结果从所述游戏设备传送到所述反作弊服务器,所述结果指示在所述游戏设备上检测到的作弊;以及提供用于显示从所述游戏服务器或所述反作弊服务器之一接收到的通知,所显示的通知指示检测到的作弊。9.根据权利要求8所述的介质,所述操作还包括:接收用于基于检测到的作弊终止所述第一网络会话或所述第二网络会话中的至少一个的指令。10.根据权利要求8所述的介质,其中,所加载的反作弊内核驱动程序保护所述游戏设备的系统状态。11.根据权利要求10所述的介质,其中,所述状态包括与所述游戏设备的操作系统相关联的至少一个存储器块和至少一个系统文件。12.根据权利要求11所述的介质,其中,通过对所述至少一个存储器块和所述至少一个系统文件进行沙盒处理来保护所述系统状态。
13.根据权利要求8所述的介质,其中,在所述初始启动过程期间加载的所述反作弊内核驱动程序验证所述游戏设备的系统状态。14.根据权利要求13所述的介质,其中,通过执行检查至少一个存储器块和至少一个系统文件以查已知作弊技术的一组操作来验证所述系统状态。15.根据权利要求8所述的介质,其中,所述反作弊服务器被配置为从多个反作弊模块中选择用于传送到所述游戏设备的所述反作弊模块。16.根据权利要求15所述的介质,其中,基于模块选择规则集来选择所述反作弊模块。17.根据权利要求8所述的介质,其中,在包括所述游戏设备的在线多玩家游戏在所述游戏服务器上处于会话中时,执行所述反作弊模块。18.根据权利要求8所述的介质,其中,所述反作弊服务器被配置为向所述游戏服务器传送指示检测到的作弊的消息,并且其中,所述游戏服务器被配置为基于接收到所传送的消息来执行多个反作弊缓解操作之一。19.一种用于反作弊检测的计算机实现的方法,所述方法包括:由游戏设备在启动过程期间将反作弊内核驱动程序加载到所述游戏设备的存储器中;在所述启动过程完成之前,由所述游戏设备经由所加载的反作弊内核驱动程序验证系统状态;在所述启动过程完成之后,由所述游戏设备经由所加载的反作弊内核驱动程序确定所述系统状态受损,其中,经由所加载的反作弊内核驱动程序监控受损系统状态;以及响应于与所述反作弊内核驱动程序相关联的游戏应用被启动,由所述游戏设备基于所确定的受损系统状态,阻止访问与所述游戏应用相关联的游戏服务器。20.根据权利要求19所述的计算机实现的方法,还包括∶由所述游戏设备经由网络向远程反作弊服务器发送所述系统状态受损的指示;由所述游戏设备从所述远程反作弊服务器接收用于阻止访问所述游戏服务器或所述反作弊服务器中的至少一个的指令。

技术总结


本公开的实施例提供了针对在线多玩家视频游戏中的反作弊检测的系统、方法和计算机存储介质。在游戏设备的启动过程期间加载适于验证和保护游戏设备的系统状态的反作弊内核驱动程序。所加载的反作弊内核驱动程序确保系统状态从启动时间到游戏持续期间不会被篡改。所加载的反作弊内核驱动程序还可以接收从反作弊服务器传送到游戏设备的反作弊模块,使得反作弊模块在由反作弊服务器指定的自组织的基础上被接收和执行。反作弊服务器可以自主地管理在游戏设备的内核层或应用层上执行的反作弊操作,并且在必要时进行反作弊缓解操作。并且在必要时进行反作弊缓解操作。并且在必要时进行反作弊缓解操作。


技术研发人员:

内马尼亚

受保护的技术使用者:

拳头游戏公司

技术研发日:

2021.04.07

技术公布日:

2022/11/11

本文发布于:2024-09-22 11:27:38,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/46809.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:反作弊   游戏   设备   内核
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议