检测外挂的方法、存储介质与流程

文档序号:17633409发布日期:2019-05-11 00:15阅读:646来源:国知局
检测外挂的方法、存储介质与流程

本发明涉及外挂检测领域,具体涉及基于窗口控件信息检测外挂的方法、存储介质。



背景技术:

存在竞争项目的应用便可能存在外挂的现象,为了确保参与人员能享受到公平待遇,对此类应用进行防外挂检测变得很有必要。

特别在游戏应用中,游戏外挂是常态。外挂的产生需要游戏开发者对外挂进行对抗处理。游戏的外挂检测一个主要方式就是通过获取外挂样本,然后从外挂样本中提取外挂特征码后进行匹配,这种检测方式只适用于对已知外挂的检测,且用于对抗已知外挂样本数据是相对有效的,因为这些特征码都是通过外挂中提取出的比较特殊的数据,所以能够准确的检测到已知的外挂样本数据。

在对抗外挂的过程中,虽然通过上述已知外挂的特征码检测方式可以准确的检测到外挂的数据,但是外挂作者也会不断的进行“反抗”,他们往往会不断的更新变换外挂中一些敏感而关键的数据,比如外挂中的产生的写文件的名称,外挂中的一些跟游戏相关的敏感字,从而导致游戏客户端中已提取的特征码无法检测到外挂数据,这就需要我们重新在获取外挂样本,重新对新的外挂样本进行重新获取特征码的步骤,这就可能导致外挂的特征码更新不够及时,无法及时检测出外挂情况,从而导致外挂检测整体的准确率不高。



技术实现要素:

本发明所要解决的技术问题是:提供一种检测外挂的方法、存储介质,能同时针对未知的外挂数据高效检测获取准确的检测结果。

为了解决上述技术问题,本发明采用的技术方案为:

一种检测外挂的方法,包括:

获取待测应用对应的一外挂样本运行时所有的第一窗口控件信息;

依据待测应用的外挂特征,从所述第一控件信息中提取外挂检测信息,所述外挂检测信息包括特定的外挂控件名称关键词;

获取待测应用运行时所有的第二窗口控件信息;

匹配所述第二窗口控件信息和所述外挂检测信息。

本发明提供的另一个技术方案为:

一种计算机可读存储介质,其上存储有计算机程序,所述程序在被处理器执行时,能实现上述一种检测外挂的方法包括的步骤。

本发明的有益效果在于:本发明基于窗口控件信息判断待测应用是否存在外挂情况。具体以某个对应待测应用的外挂样本实现外挂时在第一窗口控件信息上表现出的基本特征为依据提取外挂检测信息;依据外挂检测信息与待测应用运行时的第二窗口控件信息的匹配结果来判断其是否存在外挂现象。由于所提取的外挂检测信息对应的是待测应用若想实现外挂而在其窗口控件信息上必定会表现出的基础特征,该特征对应的是所有待测应用外挂时表现的特征,而非唯一对应某一特定外挂样本的特征。因此所提取的外挂检测信息具备一定普适性,不再局限于某个具体的外挂样本对应的特定外挂特征,而是应用对应窗口控件信息的基础外挂特征,所以能同时适用于对未知外挂数据进行检测;同时,也能大大降低由于外挂样本更新不够及时而给外挂检测准确性带来的影响,从而提升外挂检测的准确性和效率。

附图说明

图1为本发明提供的一种检测外挂的方法的流程示意图;

图2为本发明实施例一的检测外挂的流程示意图。

具体实施方式

为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。

本发明最关键的构思在于:基于外挂样本运行时的所有窗口控件信息提取的外挂检测信息对应的是待测应用若想实现外挂,在其运行窗口控件信息上必定会表现出的基础特征,因此具备普适性;且能不受外挂样本更新的影响。

本发明涉及的技术术语解释:

请参照图1,本发明提供一种检测外挂的方法,包括:

获取待测应用对应的一外挂样本运行时所有的第一窗口控件信息;

依据待测应用的外挂特征,从所述第一控件信息中提取外挂检测信息,所述外挂检测信息包括特定的外挂控件名称关键词;

获取待测应用运行时所有的第二窗口控件信息;

匹配所述第二窗口控件信息和所述外挂检测信息。

从上述描述可知,本发明的有益效果在于:所提取的外挂检测信息具备一定普适性,不再局限于某个具体的外挂样本对应的特定外挂特征,而是应用对应窗口控件信息的基础外挂特征,所以能同时适用于对未知外挂数据进行检测;同时,也能大大降低由于外挂样本更新不够及时而给外挂检测准确性带来的影响,从而提升外挂检测的准确性和效率。

进一步的,所述外挂特征包括外挂惯用的开发语言类型以及为实现外挂窗口控件名称所需包含的至少两个关键词;

若所述第一控件信息中包含所述外挂惯用的开发语言类型对应的特定的外挂控件类名,则所提取的外挂检测信息中还包括所述特定的外挂控件类名。

由上述描述可知,还将同时对待测应用的第二控件信息的控件类名进行匹配,若其对应几乎所有外挂样本都采用的开发语言类型,即外挂惯用开发语言类型,则认定其外挂的正确率将更高。

进一步的,所述依据待测应用的外挂特征,从所述第一控件信息中提取外挂检测信息,具体为:

依据所述外挂惯用的开发语言类型判断所述第一控件信息中是否包含对应的特定的外挂控件类名,若是,则从所述第一控件信息中提取所述特定的外挂控件类名;

依据所述至少两个关键词从所述第一控件信息中提取对应的特定的外挂控件名称关键词。

由上述描述可知,同时结合外挂惯用的开发语言类型和关键词从第一控件中提取外挂检测信息,确保外挂检测信息的准确性和全面性。

进一步的,还包括:

若所述第二窗口控件信息与所述外挂检测信息中三个以上的特定的外挂控件名称关键词相匹配,或者

所述第二窗口控件信息同时与所述特定的外挂控件类名和两个以上的特定的外挂控件名称关键词相匹配,则判定所述待测应用存在外挂现象。

由上述描述可知,同时结合控件类名和控件名称作为外挂检测信息,检测更具全面性;同时又针对各自的特性确定两种能够判定存在外挂的匹配条件,以适用不同外挂版本,从而显著提高外挂检测的普适性和准确度。

进一步的,所述外挂特征还包括特定的控件排列顺序;

若所述第一控件信息中指定控件的排列顺序符合所述特定的控件排列顺序,则所提取的外挂检测信息中还包括所述指定控件的排列顺序。

由上述描述可知,针对某些外挂版本的特性,将对应该特性的特定控件的排列顺序也同时作为外挂检测信息的一部分,从而扩展了可成功检测出外挂的版本,进一步提高本发明外挂检测的适用范围和实用性。

进一步的,还包括:

若所述第二窗口控件信息与所述外挂检测信息中预设个数的特定的外挂控件名称关键词相匹配,则判定所述待测应用存在外挂现象。

由上述描述可知,可直接判定为外挂情况的特定的外挂控件名称关键词的目标匹配个数可灵活的调整,更具灵活性,更实用。

进一步的,还包括:在待测应用运行后,开启一线程执行所述获取待测应用运行时所有的第二窗口控件信息;匹配所述第二窗口控件信息和所述外挂检测信息的步骤。

由上述描述可知,可通过开设一自动检测线程在应用开启后自动完成检测并得出结果,更具智能化和实用性。

本发明提供的另一个技术方案为:

一种计算机可读存储介质,其上存储有计算机程序,所述程序在被处理器执行时,能实现上述一种检测外挂的方法包括的步骤。

对应本领域普通技术人员可以理解实现上述技术方案中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来实现的,所述的程序可存储于一计算机可读取的存储介质中,该程序在执行时,可包括如上述各方法的流程。

其中,所述的存储介质可以是磁盘、光碟、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

从上述描述可知,本技术方案的有益效果在于:能通过便携的计算机可读存储介质不受设备限制的实现本发明所述的检测外挂的方法,获取具备检测普适性;且能不受外挂样本更新的影响的有益效果。

实施例一

请参照图2,本实施例提供一种检测外挂的方法,不仅能准确地检测到使用已知外挂数据的外挂应用;而且还能在一定程度上检测到使用未知外挂数据的外挂应用,从而显著提高应用外挂检测的准确度和实用性。

本实施例以检测一游戏应用是否存在外挂情况为例展开进行详细说明,其他应用类同。

s1:获取外挂样本后,在虚拟机环境下启动并运行外挂样本,外挂样本云运行起来后会显示外挂窗口及窗口里面的所有控件信息;接着通过获取窗口控件的工具(如:spy++)获取到外挂窗口的所有控件信息,即第一窗口控件信息。

s2:依据待测的游戏应用的外挂特征,从上一步骤获取的第一控件信息中提取外挂检测信息,所述外挂检测信息包括特定的外挂控件名称关键词。

所述外挂特征包括为实现外挂窗口控件名称所需包含的至少两个的关键词,例如喊话器、辅助交流群、多开器,以及其他对应各个具体游戏应用的具体外挂项目所可能涉及的关键字,例如《英魂之刃》游戏外挂时能为了能实现自动插眼功能,则其对应的外挂窗口控件名称中便包含比较特殊的信息,如喊话器、插眼开图、开图范围、英魂之刃、辅助交流群、多开器等等等特殊的关键字。

对应本实施例,所获取的外挂检测信息,由从第一控件信息中提取出的符合上述的外挂特征的特定的外挂控件名称关键词构成。例如第一控件信息中确实存在“辅助交流群”、“插眼开图”等关键词,则均提取出来,构成对应该游戏应用的特定的外挂控件名称关键词。

在第一个具体实施方式中,

为了提高检测的准确度和检测的全面性,所述待测应用的外挂特征还包括外挂惯用的开发语言类型;对应提取的外挂检测信息中还包括所述特定的外挂控件类名。具体的,在对第一窗口控件信息进行提取时,若其中包含所述外挂惯用的开发语言类型对应的特定的外挂控件类名,则所提取的外挂检测信息中还包括所述特定的外挂控件类名。

具体的,步骤s2可以包括:

依据所述外挂惯用的开发语言类型判断所述第一控件信息中是否包含对应的特定的外挂控件类名,若是,则从所述第一控件信息中提取所述特定的外挂控件类名;

依据所述至少两个关键词从所述第一控件信息中提取对应的特定的外挂控件名称关键词。

获取包括特定的外挂控件类名和特定的外挂控件名称关键词的外挂检测信息。

控件的名称和控件的类名是区分是否是外挂窗口和检测外挂的重要依据。这是因为,大多数外挂程序都是采用特定的语言开发的,如易语言。使用易语言开发的默认窗口类名是wtwindow;而其他大部分语言开发(c++、c#、按键精灵等)的窗口类名一般都是#32770。因此,将特定的控件类名同时作为外挂检测信息,能首先筛选出绝大部分的外挂应用;而后再结合特定的外挂控件名称关键词做进一步的筛选,能大大提高外挂检测的效率和准确率。

在第二个具体实施方式中,

为了再次提高外挂检测的全面性和准确性,所述待测应用的外挂特征还包括特定的控件排列顺序;若依据外挂样本获取的第一窗口控件信息中几个(两个以上的)指定控件的排列顺序符合外挂特性,则提取出对应的特定控件的排列顺序作为外挂检测信息的一部分。通过增加匹配条件,能更全面地检测出具备特定外挂特征的外挂应用,同时又能提升检测精度。

也就是说,本具体实施用例的外挂特征至少包括外挂惯用的开发语言类型、实现外挂窗口控件名称所需包含的至少两个的关键词、特定的控件排列顺序和特定控件位置等;对应提取的外挂检测信息至少包括特定的外挂控件类名、特定的外挂控件名称关键词、指定控件的排列顺序和特定控件位置。

该步骤依据待测应用的外挂特征提取外挂检测信息的目的在于,结合外挂经验基础提取外挂检测信息作为检测依据,使得检测的结果更具可靠性,检测范围也更全面。

s3:获取游戏应用运行时所有的第二窗口控件信息。

可选的,可通过编码实现扫描启动游戏客户端的环境下枚举当前系统的所有运行的窗口控件信息,即第二窗口控件信息。

s4:匹配所述第二窗口控件信息和所述外挂检测信息。

具体的,将枚举到的所有窗口的控件信息(即第二窗口控件信息)和步骤s2提取到的外挂检测信息进行匹配,如果控件信息匹配上了,那么当前游戏应用的玩家就有存在使用外挂信息的情况。

对应上述s2外挂检测信息仅包含特定的外挂控件名称关键词的情况,具体的匹配过程包括:

若所述第二窗口控件信息与所述外挂检测信息中预设个数的特定的外挂控件名称关键词相匹配,则判定所述待测应用存在外挂现象。所述的个数可以灵活依据检测精度进行灵活的配置,更具实用性,能更好的满足各种需求。

例如,若所述第二窗口控件信息与所述外挂检测信息中三个以上的特定的外挂控件名称关键词相匹配,则判定所述待测应用存在外挂现象。

对应上述s2的第一个具体实施方式,同样可以依据检测精度灵活设置特定的外挂控件名称关键词的达标匹配个数,在此,由于外挂检测信息中还同时包含了特定的外挂控件类名,因此,可以相应的调整所述个数为两个,或其他数字,以确保检测准确度。例如,控件类名“wtwindow”加上控件名“辅助交流群”和“插眼开图”作为外挂检测信息。对应的具体匹配过程包括:

若所述第二窗口控件信息同时与所述特定的外挂控件类名和两个以上的特定的外挂控件名称关键词相匹配,则判定所述待测应用存在外挂现象。若当前应用在运行时被检测到既使用了外挂惯用开发语言类型,又同时包含了两个以上的外挂关键词,基本上可以断定该应用当前使用了外挂数据。

对应上述s2的第二个具体实施方式,在上述的基础上,外挂检测数据中还同时包含了指定控件的排列顺序,同时也可能同时包含特定控件位置。因此,对应的具体匹配过程可以包括:

若所述第二窗口控件信息同时与所述特定的外挂控件类名、两个以上的特定的外挂控件名称关键词、指定控件的排列顺序相匹配,则判定所述待测应用存在外挂现象;

若所述第二窗口控件信息与所述特定的外挂控件类名、两个以上的特定的外挂控件名称关键词、指定控件的排列顺序和特定控件位置中的两项以上相匹配,则判定所述待测应用存在外挂现象。

对应上述本步骤s3和s4的一个具体实施方式,通过开设一个检测线程来实现自动检测,在保证检测准确度的同时又能降低内存占用和提高检测效率。

具体的实现过程包括:

游戏一启动,开启一个专门检测游戏运行时获取当前系统的所有窗口信息,接着通过枚举到的窗口获取窗口里面的所有控件信息;最后和从外挂窗口获取的外挂检测信息进行匹配操作的线程。

这个线程主要工作就是一直循环的进行已提取到的外挂检测信息和当前系统运行的所有窗口控件信息进行比对。

可选的,线程的具体执行流程包括:

首先枚举当前游戏运行系统下的所有窗口并获取所有窗口里面的控件信息;接着读取保存已添加外挂窗口控件信息的检测文件(即外挂检测信息),将保存外挂窗口控件信息的检测文件读取到内存中(主要作用用于和当前系统的窗口控件比对),最后将枚举到的所有窗口的控件信息和已保存的外挂控件信息进行一一匹配。如果当前系统运行的窗口的控件信息和已保存的窗口控件信息匹配上了,那么将运行游戏应用的这个玩家的信息和匹配上的窗口信息上传到反外挂的服务端上,这将作为对该玩家进行作弊处罚的证据。

实施例二

本实施例对应实施例一提供一具体实际运用场景:

以公司反黑组的反黑工程师提供的《英魂之刃》英魂全图外挂样本为依据,对英魂全图外挂样本提取作为检测的数据。基于快速进行外挂分析和检测外挂样本数据而检测外挂窗口控件信息。

拿到样本后先启动《英魂之刃》并进行游戏;接着开启外挂样本的外挂功能测试该外挂样本的功能是否有效,如果有效,就可以开始分析外挂数据。

通过获取外挂窗口的所有控件数据,然后提取其中比较特殊的控件信息作为检测外挂用的数据,具体可以包括特殊的控件类名和特殊的控件窗口名称;最后编码实现检测外挂样本数据。

其中,分析提取外挂窗口控件中的比较特殊的数据的具体步骤包括:

启动并运行《英魂之刃》的全图外挂样本,接着运行获取窗口控件数据的工具(spy++),通过spy++工具获取英魂全图外挂的控件的类名和控件的窗口名称;依据所获取的窗口控件数据,依据预设的外挂特征自动提取窗口控件的类名“wtwindow”和控件的窗口名“英魂全图”和“开启全图”三个数据相结合作为检测英魂全图外挂的检测信息。其他的比较特殊的控件名称关键词包括:喊话器、插眼开图、开图范围、英魂之刃、辅助交流群、多开器等等。

《英魂之刃》客户端中检测外挂的控件信息的具体步骤:

《英魂之刃》启动客户端后,会进行加载反外挂模块并调用反外挂模块的检测外挂接口,反外挂模块检测外挂的接口会开启一个专门用于检测窗口控件信息的线程。检测窗口控件的线程主要的工作就是一直循环运行检测比对窗口控件信息的数据。

检测窗口控件信息的线程具体的实现流程:线程启动后首先加载《英魂之刃》的外挂样本中提取的包括“wtwindow”和“英魂全图”和“开启全图”的三个数据的检测文件到内存中,接着在通过枚举当前系统正在运行的窗口数据进行比对;只要当前运行的一个窗口中存在控件类是“wtwindow”控件窗口名以及包含“英魂全图”和“开启全图”这三个数据,那么这个登陆《英魂之刃》的玩家就是存在使用第三方的外挂软件,就可以将匹配上玩家账号信息和的窗口数据及进程数据上传到英魂之刃反外挂服务器上,以此可以作为对玩家账号进行处罚的依据。

实施例三

本实施例对应实施例一和实施例二,提供一种计算机可读存储介质,其上存储有计算机程序,所述程序在被处理器执行时,能实现上述实施例一或实施例所述的一种检测外挂的方法包括的所有步骤。具体的步骤内容在此不进行复述,详细请参阅实施例一和实施例二的记载。

所述的存储介质可以是磁盘、光碟、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

综上所述,本发明提供的一种全新的检测外挂的方法、存储介质,不仅能检测出已知外挂数据;而且还能同时检测出未知外挂数据,从而显著提高检测准确度,同时更具检测全面性和实用性。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1