一种基于http流量host字段特征的游戏外挂行为监控方法

文档序号:1747469 发布日期:2019-11-29 浏览:37次 >En<

阅读说明:本技术 一种基于http流量host字段特征的游戏外挂行为监控方法 (A kind of plug-in behavior monitoring method of game based on HTTP flow HOST field feature ) 是由 刘德建 任佳伟 陈宏展 于 2019-08-19 设计创作,主要内容包括:本发明提供了一种基于HTTP流量HOST字段特征的游戏外挂行为监控方法,所述方法包括如下步骤:步骤S1、Windows系统应用层的客户端在驱动层创建网络过滤驱动;步骤S2、建立一HOST黑名单,所述HOST黑名单存储外挂发出的HTTP包所包含的HOST域名字符串;步骤S3、网络过滤驱动在数据流层捕获所有TCP数据包,并将TCP数据包请求解析的HOST域名参数与所述HOST黑名单进行比对判定,如果域名参数与HOST黑名单中任意一域名字符串相同,则判定游戏玩家有外挂使用行为;本发明可以高效地监控已知HTTP流量特征的外挂的使用行为。(The present invention provides a kind of plug-in behavior monitoring methods of game based on HTTP flow HOST field feature, and described method includes following steps: step S1, the client of Windows system application layer creates networks filter driver in driving layer;Step S2, a HOST blacklist is established, the HOST blacklist stores the HOST domain name character string that the HTTP packet of plug-in sending is included;Step S3, networks filter driver captures all TCP data packets in layer data stream, and judgement is compared with the HOST blacklist in the HOST domain name parameters of TCP data packet request analysis, if domain name parameters are identical as domain name character string any one in HOST blacklist, determine that game player has plug-in usage behavior;The present invention can efficiently monitor the plug-in usage behavior of known HTTP traffic characteristic.)

一种基于HTTP流量HOST字段特征的游戏外挂行为监控方法

技术领域

本发明涉及计算机系统通信技术领域、软件安全、游戏外挂检测领域,特别是一种基于HTTP流量HOST字段特征的游戏外挂行为监控方法。

背景技术

现有的外挂行为监控模块通常使用基于进程内存扫描的检测方法,如扫描进程的内存空间判断是否包含外挂特征码等,暂无公开的基于HTTP流量HOST字段特征的,针对游戏外挂行为的内核层监控手段。

上述现有的游戏外挂行为监控方案可能被外挂使用进程隐藏技术、内存多态化等方法绕过检测。本专利描述的方案可以监控到此类外挂的使用行为。另外本专利在应用于监控具备HTTP流量HOST字段特征的外挂使用场景中表现得准确高效。

专业术语解释:

微软提供的WFP过滤框架在网络数据包传输过程中划定了许多层,如:FWPM_LAYER_ALE_FLOW_ESTABLISHED_V4层(即数据流建立层)、FWPM_LAYER_STREAM_V4层(即数据流层)和FWPM_LAYER_DATAGRAM_DATA_V4层(即数据包层);由于数据包在系统底层需要根据不同的网络协议进行封装,因此不同层捕获到的数据内容有所不同。本专利方案提到FWPM_LAYER_STREAM_V4层(数据流层)可以捕获到所有不含IP头的TCP数据包。

WFP(Windows Filter Platform),计算机术语,是一种Windows过滤平台,用于过滤网络数据包。

基本过滤引擎BFE是一个Windows操作系统自带的用户模式服务,协调WFP组件,基本过滤引擎BFE执行的主要任务是向系统中添加或移除过滤器、存储过滤器配置以及强化WFP配置安全性。应用程序与基本过滤引擎BFE的通讯通过FwpmEngineOpen等WFP管理函数进行。

HTTP数据包中的HOST字段用于标识服务器的域名。

发明内容

为克服上述问题,本发明的目的是提供一种基于HTTP流量HOST字段特征的游戏外挂行为监控方法,是一种隐蔽的外挂行为监控手段,能高效地监控已知HTTP流量特征的外挂的使用行为。

本发明采用以下方案实现:一种基于HTTP流量HOST字段特征的游戏外挂行为监控方法,所述方法包括如下步骤:步骤S1、Windows系统应用层的客户端在驱动层创建网络过滤驱动;

步骤S2、建立一HOST黑名单,所述HOST黑名单存储外挂发出的HTTP包所包含的HOST域名字符串;

步骤S3、网络过滤驱动在数据流层捕获所有TCP数据包,并将TCP数据包请求解析的HOST域名参数与所述HOST黑名单进行比对判定,如果域名参数与HOST黑名单中任意一域名字符串相同,则判定游戏玩家有外挂使用行为。

进一步的,所述步骤S2进一步具体为:创建网络过滤驱动的过程中,将外挂进行网络交互过程中会访问的HOST域名写入到网络过滤驱动的文件中,Windows系统应用程序加载并开启网络过滤驱动;网络过滤驱动开启成功后,初始化HOST黑名单,在初始化黑名单的过程中,网络过滤驱动将写入文件中的所有HOST域名***到HOST黑名单中。

进一步的,所述步骤S2和步骤S3之间还包括:步骤S21、网络过滤驱动使用FwpmEngineOpen函数获取基本过滤引擎BFE句柄,作为后续操作的参数;

步骤S22、网络过滤驱动使用FwpsCalloutRegister函数注册在数据流层监控数据的回调函数;

步骤S23、网络过滤驱动使用FwpmCalloutAdd函数向基本过滤引擎BFE申请添加之前注册的回调函数;

步骤S24、网络过滤驱动使用FwpmSubLayerAdd函数,在数据流层创建子层,用于捕获数据;

步骤S25、网络过滤驱动使用FwpmFilterAdd函数,通过基本过滤引擎BFE在数据流层创建过滤器,并将回调函数与子层关联;完成关联后,当子层捕获到网络数据包时,系统会调用子层对应的回调函数处理网络数据包;所述数据流层的回调函数用于处理TCP数据包。

进一步的,所述步骤S3进一步具体为:步骤S31、数据流层的回调函数被调用时,回调函数判断数据包的远端端口是否为80,是则,数据包是一个HTTP协议的TCP数据包并进入步骤S32;否则回调函数执行结束;

步骤S32、回调函数按照HTTP报文格式解析数据包内容,从HTTP协议的TCP数据包中提取出HOST字段字符串,然后遍历HOST黑名单,将HOST字段字符串和HOST黑名单中每一个黑名单项进行字符串比对,若存在黑名单项与TCP数据包中提取的HOST字段字符串相同,则判定玩家有外挂使用行为。

进一步的,所述回调函数按照HTTP报文格式解析数据包内容,从HTTP协议的TCP数据包中提取出HOST字段字符串具体包括如下步骤:

步骤1、使用字符串匹配算法,查找HTTP协议的TCP数据包中是否包含字符串“Host:”,若不包含,则本流程结束;若包含字符串”Host:”,则记录第一次出现字符串“Host:”的内存地址,设置这个内存地址后一字节的地址为Start;

步骤2、使用字符比对的方式,以Start为起点,HTTP协议的TCP数据包倒数第二个字节为终点,搜索“\x0d\x0a”,即连续两个字节,前后分别存储‘\x0d’和‘\x0a’,如果搜索不到,则退出HOST提取的流程;否则设置搜索到的内存地址的前一字节为End;

步骤3、从Start到End中间这段内存存储的数据就是HTTP协议的TCP数据包的HOST字段内容。

本发明的有益效果在于:1.使用行为黑名单机制,可以高效地监控已知HTTP流量特征的外挂的使用行为。

2.使用内核层的网络过滤技术,外挂无法通过传统的应用层API挂钩技术绕过此检测,大大增加外挂的反检测和反监控难度。

3.大部分外挂都是收费的,包含登录模块,因此本方案应用面极广,可以应用于大量外挂的检测。

4.本专利的游戏外挂行为监控方法是一种隐蔽的外挂行为监控手段,提高了监控能力。

5.本发明提供了一种在内核层从HTTP数据包中提取HOST字段的技术方案,提高了监控的准确性。

附图说明

图1是本发明的方法流程示意图。

具体实施方式

下面结合附图对本发明做进一步说明。

请参阅图1所示,本发明的一种基于HTTP流量HOST字段特征的游戏外挂行为监控方法,本发明基于微软的WFP网络过滤驱动框架,通过在系统底层安装网络过滤器,捕获外挂的网络请求行为。所述方法包括如下步骤:步骤S1、Windows系统应用层的客户端在驱动层创建网络过滤驱动;

步骤S2、建立一HOST黑名单,所述HOST黑名单存储外挂发出的HTTP包所包含的HOST域名字符串;所述步骤S2进一步具体为:创建网络过滤驱动的过程中,将外挂进行网络交互过程中会访问的HOST域名写入到网络过滤驱动的文件中,Windows系统应用程序加载并开启网络过滤驱动;网络过滤驱动开启成功后,初始化HOST黑名单,在初始化黑名单的过程中,网络过滤驱动将写入文件中的所有HOST域名***到HOST黑名单中。另外,黑名单中存储的黑名单项必须是外挂特有的特征,即除了此外挂其余的程序均不会有此网络访问行为,或者几率极低,否则存在误报风险。

步骤S3、网络过滤驱动在数据流层(即FWPM_LAYER_STREAM_V4层)捕获所有TCP数据包,并将TCP数据包请求解析的HOST域名参数与所述HOST黑名单进行比对判定,如果域名参数与HOST黑名单中任意一域名字符串相同,则判定游戏玩家有外挂使用行为。

所述步骤S2和步骤S3之间还包括:步骤S21、网络过滤驱动使用FwpmEngineOpen函数获取基本过滤引擎BFE句柄,作为后续操作的参数;

步骤S22、网络过滤驱动使用FwpsCalloutRegister函数注册在数据流层监控数据的回调函数;

步骤S23、网络过滤驱动使用FwpmCalloutAdd函数向基本过滤引擎BFE申请添加之前注册的回调函数;

步骤S24、网络过滤驱动使用FwpmSubLayerAdd函数,在数据流层创建子层,用于捕获数据;

步骤S25、网络过滤驱动使用FwpmFilterAdd函数,通过基本过滤引擎BFE在数据流层创建过滤器,并将回调函数与子层关联;完成关联后,当子层过滤器捕获到网络数据包时,系统会调用子层对应的回调函数处理网络数据包;所述数据流层的回调函数用于处理TCP数据包。

所述步骤S3进一步具体为:步骤S31、数据流层的回调函数被调用时,回调函数判断数据包的远端端口是否为80,是则,数据包是一个HTTP协议的TCP数据包并进入步骤S32;否则回调函数执行结束;

步骤S32、回调函数按照HTTP报文格式解析数据包内容,从HTTP协议的TCP数据包中提取出HOST字段字符串,然后遍历HOST黑名单,将HOST字段字符串和HOST黑名单中每一个黑名单项进行字符串比对,若存在黑名单项与TCP数据包中提取的HOST字段字符串相同,则判定玩家有外挂使用行为。

所述回调函数按照HTTP报文格式解析数据包内容,从HTTP协议的TCP数据包中提取出HOST字段字符串具体包括如下步骤:

步骤1、使用字符串匹配算法,查找HTTP协议的TCP数据包中是否包含字符串“Host:”,若不包含,则本流程结束;若包含字符串”Host:”,则记录第一次出现字符串“Host:”的内存地址,设置这个内存地址后一字节的地址为Start;

步骤2、使用字符比对的方式,以Start为起点,HTTP协议的TCP数据包倒数第二个字节为终点,搜索“\x0d\x0a”,即连续两个字节,前后分别存储‘\x0d’和‘\x0a’,如果搜索不到,则退出HOST提取的流程;否则设置搜索到的内存地址的前一字节为End;

步骤3、从Start到End中间这段内存存储的数据就是HTTP协议的TCP数据包的HOST参数内容。如:HOST参数内容参见如下表1

表1

其他数据 “Host:” HOST参数 “\x0d\x0a” 其他数据

其中,字符串匹配算法,可以采用KMP算法,实际应用中也可以采用其他算法。本专利中“HOST字段”也可以用“HOST参数”进行说明,即“HOST字段”和“HOST参数”表述相同的数据对象(HTTP数据包中用于描述HOST域名的数据段),为了方便局部阅读和理解,在部分文段中使用“HOST参数”代替“HOST字段”。

下面结合一具体实施例,来进一步描述本专利方案的具体实现方式:

假设游戏外挂A是用于破坏游戏公司B出品的网络游戏客户端C的外挂软件。外挂A会在进程启动后访问“tools.cheat.com/key.txt”(此网络地址的HOST字段为“tools.cheat.com”),除了游戏外挂A,其他进程都不会进行相同的网络请求。

1.游戏公司B使用基于本方案开发的网络过滤驱动D检测玩家游戏期间是否运行外挂A,并借此方案保护游戏客户端C。

2.玩家运行游戏客户端C后,游戏客户端C会自动加载网络过滤驱动D,网络过滤驱动D在加载成功后初始化HOST黑名单,并在HOST黑名单中***专门用于检测游戏外挂A的黑名单项“tools.cheat.com”。

3.网络过滤驱动D在FWPM_LAYER_STREAM_V4层完成注册回调函数、创建子层、开启过滤器等一系列操作后开始发挥网络数据包过滤功能。

4.假设在游戏客户端C运行过程中,玩家开始运行游戏外挂A。在游戏外挂A启动成功后尝试访问“tools.cheat.com/key.txt”,发送了一个HOST字段为“tools.cheat.com”的HTTP协议的TCP数据包。

5.FWPM_LAYER_STREAM_V4层的过滤器捕捉到这个TCP数据包后,判断这个数据包的远端端口号是否为80,若端口号等于80则是一个HTTP协议的TCP数据包,假设HTTP协议报文的内容是“xxxHost:tools.cheat.com‘\0d’‘\0a’xxxxxx”,进入步骤7。否则回调函数执行结束。(x代表无关数据)

6.回调函数按照HTTP报文格式解析数据包内容。解析HTTP数据包,获得HOST字段字符串“tools.cheat.com”。

7.回调函数遍历URI黑名单,将HOST字段字符串“tools.cheat.com”和每一个黑名单项进行字符串比对,当比对到黑名单项“tools.cheat.com”时,两字符串相等,判定此HTTP数据包符合URI黑名单规则,由此判定玩家存在使用游戏外挂A的行为。

以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。

9页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:使游戏网络中的用户体验个性化

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类