一种识别Android模拟器的方法及装置制造方法
【专利摘要】本发明公开了一种识别Android模拟器的方法及装置,属于终端【技术领域】。所述方法包括:接收终端发送的连接请求,获取所述连接请求中的握手数据包;对所述握手数据包进行解析,获取所述握手数据包中指定字段内的信息;当所述握手数据包中指定字段内的信息满足预设条件时,则确定识别出所述终端使用Android模拟器。本发明实现了服务器侧在接收到终端的连接请求后即可根据该连接请求进行识别Android模拟器的操作,无需进行额外的通信过程,进而不会存在因为额外的通信而造成反馈的用于识别终端的信息不准确的情况,提高了识别终端的效率。
【专利说明】—种识别Android模拟器的方法及装置
【技术领域】
[0001]本发明涉及计算机【技术领域】,特别涉及一种识别Android模拟器的方法及装置。
【背景技术】
[0002]Android模拟器是一个能在Windows平台模拟出Android系统的运行环境的应用,使得用户可以在电脑中的Android模拟器上运行Android系统的应用。在使用Android系统的应用时,某些业务需要在服务器侧对终端是否使用Android模拟器登录进行识别,以确认使用Android系统的应用的终端为真实的终端进行登录,或者使用Android模拟器进行登录。
[0003]现有技术中对终端识别是否为Android模拟器的方式为:服务器侧使用网络连接端扫描类应用向终端发送不同类型的数据包,终端根据服务器侧发送的不同类型的数据包分别向服务器返回相应的信息,服务器侧将终端返回的信息与预设的结果进行匹配,最终得到识别结果。
[0004]发明人发现现有技术至少存在以下问题:
[0005]上述方式为服务器侧主动探测的方式,需要主动向终端发送多次不同类型的数据包,需要多个信息发送的往返才能得到最终的识别结果;另外,终端经常处于局域网内部,终端自身没有独立的网络地址,而上述过程中网络连接端扫描类应用发送的数据包最终只能探测到局域网出口的网络设备上,最终返回给服务器侧的信息则为网络设备进行的返回,导致服务器侧收到的信息不准确,进而无法准确得到识别结果。
【发明内容】
[0006]为了解决现有技术的问题,本发明实施例提供了一种识别Android模拟器的方法及装置。所述技术方案如下:
[0007]—方面,提供了一种识别Android模拟器的方法,所述方法包括:
[0008]接收终端发送的连接请求,获取所述连接请求中的握手数据包;
[0009]对所述握手数据包进行解析,获取所述握手数据包中指定字段内的信息;
[0010]当所述握手数据包中指定字段内的信息满足预设条件时,则确定识别出所述终端使用Android模拟器。
[0011]优选的,所述对所述握手数据包进行解析,获取所述握手数据包中指定字段内的信息,包括:
[0012]对所述握手数据包进行解析,获取所述握手数据包的因特网互联协议IP包头中指定字段内的信息,以及获取所述握手数据包的传输控制协议TCP包头中指定字段内的信肩、O
[0013]优选的,所述握手数据包的IP包头中指定字段至少包括生存时间TTL字段;所述握手数据包的TCP包头中指定字段至少包括最大分段长度MSS字段、滑动窗口伸缩因子WS字段、滑动窗口大小WIN字段、发出时间戳TSVAL字段、回显时间戳TSECR字段。
[0014]优选的,所述获取所述握手数据包中指定字段内的信息之后,所述方法还包括:
[0015]如果所述握手数据包中不存在指定字段,则在获取到的所述握手数据包中创建所述指定字段并将所述指定字段内的信息设置为零。
[0016]优选的,所述当所述握手数据包中指定字段内的信息满足预设条件时,则确定识别出所述终端使用Android系统模拟器,包括:
[0017]将所述握手数据包中指定字段内的信息与所述指定字段对应的标准特征进行对比;
[0018]如果与所述指定字段对应的标准特征进行对比后不符合条件的指定字段的个数大于预设个数,则确定识别出所述终端使用Android系统模拟器。
[0019]另一方面,提供了一种识别Android模拟器的装置,所述装置包括:
[0020]第一获取模块,用于接收终端发送的连接请求,获取所述连接请求中的握手数据包;
[0021]第二获取模块,用于对所述握手数据包进行解析,获取所述握手数据包中指定字段内的息;
[0022]识别模块,用于当所述握手数据包中指定字段内的信息满足预设条件时,则确定识别出所述终端使用Android模拟器。
[0023]优选的,所述第二获取模块具体用于:
[0024]对所述握手数据包进行解析,获取所述握手数据包的因特网互联协议IP包头中指定字段内的信息,以及获取所述握手数据包的传输控制协议TCP包头中指定字段内的信肩、O
[0025]优选的,所述握手数据包的IP包头中指定字段至少包括生存时间TTL字段;所述握手数据包的TCP包头中指定字段至少包括最大分段长度MSS字段、滑动窗口伸缩因子WS字段、滑动窗口大小WIN字段、发出时间戳TSVAL字段、回显时间戳TSECR字段。
[0026]优选的,所述装置还包括:
[0027]创建模块,用于如果所述握手数据包中不存在指定字段,则在获取到的所述握手数据包中创建所述指定字段并将所述指定字段内的信息设置为零。
[0028]优选的,所述识别模块,包括:
[0029]对比单元,用于将所述握手数据包中指定字段内的信息与所述指定字段对应的标准特征进行对比;
[0030]识别单元,用于如果与所述指定字段对应的标准特征进行对比后不符合条件的指定字段的个数大于预设个数,则确定识别出所述终端使用Android系统模拟器。
[0031]本发明实施例提供的技术方案带来的有益效果是:
[0032]通过在终端发起连接请求时,针对该连接请求中的握手数据包中指定字段内的信息进行比对,如果该指定字段内的信息满足预设条件则确定识别出终端使用了 Android模拟器。实现了服务器侧在接收到终端的连接请求后即可根据该连接请求进行识别Android模拟器的操作,无需进行额外的通信过程,进而不会存在因为额外的通信而造成反馈的用于识别终端的信息不准确的情况,提高了识别终端的效率。
【专利附图】
【附图说明】
[0033]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0034]图1是本发明实施例一提供的识别Android模拟器的方法流程图;
[0035]图2是本发明实施例二提供的识别Android模拟器的方法流程图;
[0036]图3是本发明实施例三提供的识别Android模拟器的装置结构示意图。
【具体实施方式】
[0037]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0038]实施例一
[0039]本发明实施例提供了一种识别Android模拟器的方法,参见图1,方法流程包括:
[0040]101:接收终端发送的连接请求,获取连接请求中的握手数据包;
[0041]102:对握手数据包进行解析,获取握手数据包中指定字段内的信息;
[0042]103:当握手数据包中指定字段内的信息满足预设条件时,则确定识别出终端使用Android模拟器。
[0043]本发明实施例通过在终端发起连接请求时,针对该连接请求中的握手数据包中指定字段内的信息进行比对,如果该指定字段内的信息满足预设条件则确定识别出终端使用了 Android模拟器。实现了服务器侧在接收到终端的连接请求后即可根据该连接请求进行识别Android模拟器的操作,无需进行额外的通信过程,进而不会存在因为额外的通信而造成反馈的用于识别终端的信息不准确的情况,提高了识别终端的效率。
[0044]实施例二
[0045]本发明实施例提供了一种识别Android模拟器的方法,参见图2,方法流程包括:
[0046]201:服务器接收终端发送的连接请求,获取连接请求中的握手数据包。
[0047]安装Android操作系统的终端,在使用的应用需要与服务器进行连接时,会与服务器通过TCP (Transmiss1n Control Protocol,传输控制协议)三次握手机制与服务器建立连接。
[0048]其中,三次握手机制的详细过程可以为:
[0049]第一次握手:建立连接时,终端发送SYN(Synchronize Sequence Numbers,同步序列编号)(syn = j)包到服务器,其中SYN包为握手数据包,终端此时进入SYN_SENT状态,等待服务器确认;
[0050]第二次握手:服务器收到SYN包,必须确认终端的SYN(ack = j+1),同时向终端发送一个SYN包(syn = k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
[0051]第三次握手:终端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack =k+Ι),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
[0052]在本发明实施例中,服务器接收到终端的第一次握手的SYN包,即服务器接收到终端发送的连接请求时,开始进行识别Android模拟器的过程。
[0053]其中,服务器接收到终端的连接请求后,首先需要确认连接请求中是否为握手数据包即SYN包。对于确认是否为握手数据包的过程为解析连接请求对应的数据包,查询是否存在SYN包对应的标识信息,如果存在该SYN包对应的标识信息则确认该数据包为握手数据包,即SYN包。
[0054]在确认连接请求中的数据包为握手数据包后,通过旁路侦听的方式将该握手数据包进行复制,原有的握手数据包会进行三次握手的过程。而复制的握手数据包则会进行识别Android模拟器的过程。
[0055]202:对握手数据包进行解析,获取握手数据包的IP(Internet Protocol,网络之间互连的协议)包头中指定字段内的信息,以及获取握手数据包的TCP包头中指定字段内的信息。
[0056]其中,握手数据包的IP包头中指定字段至少包括TTL(time-t0-liVe,生存时间)字段;
[0057]握手数据包的TCP包头中指定字段至少包括MSS (Maximum Segment Size,最大分段长度)字段、WS (Window Scale,滑动窗口伸缩因子)字段、WIN(Window Size,滑动窗口大小)字段、TSVAL(Timestamp Value,发出时间戮)字段、TSECR(Timestamp Echo Reply,回显时间戳)字段。
[0058]其中,在TCP报文中的字段除滑动窗口大小以外,其他字段为TCP协议中可选字段,因此在握手数据包中有可能不存在上述的部分指定字段。当在握手数据包中的TCP包头中未获取到指定字段内的信息时,执行步骤203。
[0059]203:如果握手数据包中不存在指定字段,则在获取到的握手数据包中创建指定字段并将指定字段内的信息设置为零。
[0060]204:当握手数据包中指定字段内的信息满足预设条件时,则服务器确定识别出终端使用Android模拟器。
[0061]其中,标准的Android设备发送的握手数据包中,上述指定字段内的信息对应的标准特征可以为:
[0062]1)TTL<64 ;
[0063]2) MSS = 1460 ;
[0064]3) WS ! = O ;
[0065]4) WIN = 14600 ;
[0066]5) TSVAL ! = O ;
[0067]6) TSECR = O0
[0068]将获取到的握手数据包中每一个指定字段内的信息与该指定字段对应的标准特征进行对比,判断每一个指定字段内的信息是否符合该指定字段对应的标准特征对应的条件。
[0069]如果不符合条件的指定字段的个数大于预设个数,那么确定终端使用Android系统模拟器。其中,在本发明实施例中,预设个数可以包括但不限于三个。
[0070]其中,步骤204可以进一步的包括步骤2041-步骤2042组成:
[0071]2041:将握手数据包中指定字段内的信息与指定字段对应的标准特征进行对比;
[0072]2042:如果与指定字段对应的标准特征进行对比后不符合条件的指定字段的个数大于预设个数,则确定识别出终端使用Android系统模拟器。
[0073]本发明实施例通过在终端发起连接请求时,针对该连接请求中的握手数据包中指定字段内的信息进行比对,如果该指定字段内的信息满足预设条件则确定识别出终端使用了 Android模拟器。实现了服务器侧在接收到终端的连接请求后即可根据该连接请求进行识别Android模拟器的操作,无需进行额外的通信过程,进而不会存在因为额外的通信而造成反馈的用于识别终端的信息不准确的情况,提高了识别终端的效率。
[0074]实施例三
[0075]本发明实施例提供了一种识别Android模拟器的装置,参见图3,该装置包括:
[0076]第一获取模块301,用于接收终端发送的连接请求,获取连接请求中的握手数据包;
[0077]第二获取模块302,用于对握手数据包进行解析,获取握手数据包中指定字段内的信息;
[0078]识别模块303,用于当握手数据包中指定字段内的信息满足预设条件时,则确定识别出终端使用Android模拟器。
[0079]其中,第二获取模块302具体用于:
[0080]对握手数据包进行解析,获取握手数据包的因特网互联协议IP包头中指定字段内的信息,以及获取握手数据包的传输控制协议TCP包头中指定字段内的信息。
[0081]其中,握手数据包的IP包头中指定字段至少包括生存时间TTL字段;握手数据包的TCP包头中指定字段至少包括最大分段长度MSS字段、滑动窗口伸缩因子WS字段、滑动窗口大小WIN字段、发出时间戳TSVAL字段、回显时间戳TSECR字段。
[0082]其中,装置还包括:
[0083]创建模块304,用于如果握手数据包中不存在指定字段,则在获取到的握手数据包中创建指定字段并将指定字段内的信息设置为零。
[0084]其中,识别模块303,包括:
[0085]对比单元,用于将握手数据包中指定字段内的信息与指定字段对应的标准特征进行对比;
[0086]识别单元,用于如果与指定字段对应的标准特征进行对比后不符合条件的指定字段的个数大于预设个数,则确定识别出终端使用Android系统模拟器。
[0087]本发明实施例通过在终端发起连接请求时,针对该连接请求中的握手数据包中指定字段内的信息进行比对,如果该指定字段内的信息满足预设条件则确定识别出终端使用了 Android模拟器。实现了服务器侧在接收到终端的连接请求后即可根据该连接请求进行识别Android模拟器的操作,无需进行额外的通信过程,进而不会存在因为额外的通信而造成反馈的用于识别终端的信息不准确的情况,提高了识别终端的效率。
[0088]上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0089]本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0090]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种识别Android模拟器的方法,其特征在于,所述方法包括: 接收终端发送的连接请求,获取所述连接请求中的握手数据包; 对所述握手数据包进行解析,获取所述握手数据包中指定字段内的信息; 当所述握手数据包中指定字段内的信息满足预设条件时,则确定识别出所述终端使用Android模拟器。
2.根据权利要求1所述的方法,其特征在于,所述对所述握手数据包进行解析,获取所述握手数据包中指定字段内的信息,包括: 对所述握手数据包进行解析,获取所述握手数据包的因特网互联协议IP包头中指定字段内的信息,以及获取所述握手数据包的传输控制协议TCP包头中指定字段内的信息。
3.根据权利要求2所述的方法,其特征在于,所述握手数据包的IP包头中指定字段至少包括生存时间TTL字段;所述握手数据包的TCP包头中指定字段至少包括最大分段长度MSS字段、滑动窗口伸缩因子WS字段、滑动窗口大小WIN字段、发出时间戳TSVAL字段、回显时间戳TSECR字段。
4.根据权利要求1所述的方法,其特征在于,所述获取所述握手数据包中指定字段内的信息之后,所述方法还包括: 如果所述握手数据包中不存在指定字段,则在获取到的所述握手数据包中创建所述指定字段并将所述指定字段内的信息设置为零。
5.根据权利要求1所述的方法,其特征在于,所述当所述握手数据包中指定字段内的信息满足预设条件时,则确定识别出所述终端使用Android系统模拟器,包括: 将所述握手数据包中指定字段内的信息与所述指定字段对应的标准特征进行对比; 如果与所述指定字段对应的标准特征进行对比后不符合条件的指定字段的个数大于预设个数,则确定识别出所述终端使用Android系统模拟器。
6.一种识别Android模拟器的装置,其特征在于,所述装置包括: 第一获取模块,用于接收终端发送的连接请求,获取所述连接请求中的握手数据包; 第二获取模块,用于对所述握手数据包进行解析,获取所述握手数据包中指定字段内的信息; 识别模块,用于当所述握手数据包中指定字段内的信息满足预设条件时,则确定识别出所述终端使用Android模拟器。
7.根据权利要求6所述的装置,其特征在于,所述第二获取模块具体用于: 对所述握手数据包进行解析,获取所述握手数据包的因特网互联协议IP包头中指定字段内的信息,以及获取所述握手数据包的传输控制协议TCP包头中指定字段内的信息。
8.根据权利要求7所述的装置,其特征在于,所述握手数据包的IP包头中指定字段至少包括生存时间TTL字段;所述握手数据包的TCP包头中指定字段至少包括最大分段长度MSS字段、滑动窗口伸缩因子WS字段、滑动窗口大小WIN字段、发出时间戳TSVAL字段、回显时间戳TSECR字段。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括: 创建模块,用于如果所述握手数据包中不存在指定字段,则在获取到的所述握手数据包中创建所述指定字段并将所述指定字段内的信息设置为零。
10.根据权利要求6所述的装置,其特征在于,所述识别模块,包括:对比单元,用于将所述握手数据包中指定字段内的信息与所述指定字段对应的标准特征进行对比; 识别单元,用于如果与所述指定字段对应的标准特征进行对比后不符合条件的指定字段的个数大于预设 个数,则确定识别出所述终端使用Android系统模拟器。
【文档编号】H04L29/06GK104079571SQ201410301503
【公开日】2014年10月1日 申请日期:2014年6月27日 优先权日:2014年6月27日
【发明者】黄 俊, 姚冬, 张顺四 申请人:广州华多网络科技有限公司