一种模拟器识别方法、识别设备及计算机可读介质与流程

文档序号:16390200发布日期:2018-12-22 11:18阅读:201来源:国知局
一种模拟器识别方法、识别设备及计算机可读介质与流程

本发明涉及通信技术领域,尤其涉及一种模拟器识别方法、识别设备及计算机可读介质。

背景技术

android模拟器是一个能在windows、linux等各种平台模拟出android系统的运行环境的应用,用户可以在个人计算机等终端中的android模拟器上运行android系统的应用。在使用android系统的应用时,对于某些业务,如需要进行风险监测的业务,并不希望它被运行在模拟器上,因此需要对终端是否运行于android模拟器环境进行识别。而目前风险识别设备对android模拟器的识别能力有限,无法有效识别出终端是否运行于模拟器环境。



技术实现要素:

本发明实施例提供一种模拟器识别方法、识别设备及计算机可读介质,有助于提升模拟器识别的准确性。

第一方面,本发明实施例提供了一种模拟器识别方法,包括:

获取目标终端连接的无线保真wi-fi热点的路由器信息,所述路由器信息包括路由器的名称和媒体访问控制(mediaaccesscontrol,mac)地址;

检测所述路由器的名称是否与预置的第一黑名单内的路由器名称相同,以及所述mac地址是否处于预置的第二黑名单内的mac地址集合;

当所述路由器的名称与所述第一黑名单内的任一路由器名称相同,且所述mac地址处于所述mac地址集合时,确定所述目标终端运行于模拟器环境。

可选的,在所述确定所述目标终端运行于模拟器环境之前,所述方法还包括:

获取所述目标终端的机型信息,所述机型信息包括所述目标终端的型号和/或品牌;

检测所述机型信息是否与预置的第三黑名单内的终端机型信息相同,所述第三黑名单中包括至少一组终端机型信息;

所述当所述路由器的名称与所述第一黑名单内的任一路由器名称相同,且所述mac地址处于所述mac地址集合时,确定所述目标终端运行于模拟器环境,包括:

当所述路由器的名称与所述第一黑名单内的任一路由器名称相同,所述mac地址处于所述mac地址集合,且所述机型信息与所述第三黑名单内的任一组终端机型信息相同时,确定所述目标终端运行于模拟器环境。

可选的,在所述确定所述目标终端运行于模拟器环境之前,所述方法还包括:

获取所述目标终端的中央处理器cpu的生产商标识;

检测所述cpu的生产商标识是否与预置的白名单中的生产商标识相同;

所述当所述路由器的名称与所述第一黑名单内的任一路由器名称相同,且所述mac地址处于所述mac地址集合时,确定所述目标终端运行于模拟器环境,包括:

当所述路由器的名称与所述第一黑名单内的任一路由器名称相同,所述mac地址处于所述mac地址集合,且所述cpu的生产商标识与所述白名单内的所有生产商标识均不相同时,确定所述目标终端运行于模拟器环境。

可选的,在所述确定所述目标终端运行于模拟器环境之前,所述方法还包括:

检测所述目标终端的设备信息是否满足预设规则,其中,所述目标终端的设备信息满足所述预设规则包括:

所述目标终端中未配置有预设模块,所述预设模块包括蓝牙模块、温度传感器、光线传感器中的一个或多个;和/或,

所述目标终端的内存空间值小于预设内存阈值;和/或,

所述目标终端安装的应用的第一数目小于预设的第一数目阈值;和/或,

所述目标终端存储的文件的第二数目小于预设的第二数目阈值;和/或,

所述目标终端使用的网络制式与预设的网络制式列表中的所有网络制式均不相同;和/或,

所述目标终端的系统中存在预设路径和名称的系统文件;和/或,

所述目标终端的运行状态为root状态;

所述当所述路由器的名称与所述第一黑名单内的任一路由器名称相同,且所述mac地址处于所述mac地址集合时,确定所述目标终端运行于模拟器环境,包括:

当所述路由器的名称与所述第一黑名单内的任一路由器名称相同,所述mac地址处于所述mac地址集合,且所述目标终端的设备信息满足所述预设规则时,确定所述目标终端运行于模拟器环境。

可选的,在所述检测所述路由器的名称是否与预置的第一黑名单内的路由器名称相同,以及所述mac地址是否处于预置的第二黑名单内的mac地址集合之前,所述方法还包括:

获取所述路由器信息对应的目标函数的flag值,并根据所述flag值确定所述目标函数是否被hook;

当确定所述目标函数被hook时,从所述目标函数的内存中获取所述目标函数对应的目标函数指针;

根据预先存储的各函数指针和函数的对应关系,确定出所述目标函数指针对应的原始函数,并根据所述原始函数确定出原始路由器信息;

所述检测所述路由器的名称是否与预置的第一黑名单内的路由器名称相同,以及所述mac地址是否处于预置的第二黑名单内的mac地址集合,包括:

检测所述原始路由器信息包括的路由器的名称是否与预置的第一黑名单内的路由器名称相同,以及所述原始路由器信息包括的mac地址是否处于预置的第二黑名单内的mac地址集合。

可选的,所述根据所述flag值确定所述目标函数是否被hook,包括:

将所述flag值中的预设位置处的字符与预设的固定字符进行比较,所述预设位置处的字符的字符数与所述固定字符的字符数相同;

当比较得到所述预设位置处的字符与所述固定字符不同时,确定所述目标函数被hook。

可选的,所述根据所述flag值确定所述目标函数是否被hook,包括:

按照预设的逻辑算法对所述flag值进行逻辑运算,以得到运算结果值,其中,所述逻辑算法是根据预设字符串和系统中的原生函数执行时的跳转地址确定的;

当所述运算结果值为正整数时,确定所述目标函数被hook。

第二方面,本发明实施例提供了一种识别设备,该识别设备包括用于执行上述第一方面的方法的单元。

第三方面,本发明实施例提供了另一种识别设备,包括处理器、用户接口、通信接口和存储器,所述处理器、用户接口、通信接口和存储器相互连接,其中,所述存储器用于存储支持识别设备执行上述方法的计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述第一方面的方法。

第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的方法。

本发明实施例能够通过获取终端连接的wi-fi热点的路由器信息,并对该路由器信息如路由器的名称和mac地址进行检测分析,在检测到该路由器的名称与预设黑名单内的任一路由器名称相同,且该mac地址处于预设的mac地址集合时,即可确定该终端运行于模拟器环境。本发明实施例能够根据wi-fi热点的路由器信息来进行模拟器识别,这就有助于提升模拟器识别的准确性。

附图说明

为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种模拟器识别方法的流程示意图;

图2是本发明实施例提供的另一种模拟器识别方法的流程示意图;

图3是本发明实施例提供的一种识别设备的结构示意图;

图4是本发明实施例提供的另一种识别设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本申请的技术方案可应用于识别设备中,该识别设备可包括各种终端、服务器或与终端连接的风险识别产品(设备)等等,用于对终端中的模拟器行为进行识别(简称“模拟器识别”),以识别终端(或终端中的应用,如识别植入sdk的应用)是否运行于模拟器环境,或者称为识别终端是否使用模拟器登录。在本申请中,模拟器可以是指android模拟器或其他模拟器。本申请涉及的终端可以是手机、电脑、平板、个人计算机、智能手表等,本申请不做限定。

具体的,本申请可通过获取终端的各种设备信息,比如连接的wi-fi热点信息、机型信息、cpu的生产商信息、模块配置信息、内存空间信息、安装的应用的数目、存储的文件的数目、使用的网络制式、系统文件异常信息、运行状态等信息中的一项或多项,来进行模拟器识别,从而能够提升模拟器识别的准确性。以下分别详细说明。

请参见图1,图1是本发明实施例提供的一种模拟器识别方法的流程示意图。具体的,如图1所示,该模拟器识别方法可以包括以下步骤:

101、获取目标终端连接的wi-fi热点的路由器信息,该路由器信息包括路由器的名称和mac地址。

其中,该目标终端可以是指需要进行模拟器识别的任一终端,比如与风险识别产品连接的终端,或者处于特定风控场景下的终端,或者触发(比如通过预设按键或手势或预设的其他触发方式)了模拟器识别的终端,等等,本申请不做限定。该风控场景可以包括登录场景、交易场景、app优惠领域场景等等。

具体的,在需要对某一终端进行模拟器识别时,识别设备可获取该终端连接的wi-fi热点的路由器信息如路由器的名称及其mac地址等,以便于根据该路由器的名称和mac地址确定该终端是否运行于模拟器环境。

102、检测该路由器的名称是否与预置的第一黑名单内的路由器名称相同,以及该mac地址是否处于预置的第二黑名单内的mac地址集合。

其中,该第一黑名单包括一个或多个路由器名称,该第一个或多个路由器名称可以是历史数据中识别为模拟器的终端(即识别为运行在模拟器环境的终端)所连接的wi-fi的路由器的名称;该第二黑名单可包括一个或多个mac地址集合和/或一个或多个mac地址,该一个或多个mac地址为历史数据中识别为模拟器的终端所连接的路由器的mac地址,该一个或多个mac地址集合是根据历史数据中识别为模拟器的终端所连接的路由器的mac地址统计出的。可选的,该第一黑名单和第二黑名单可以相同(即各路由器名称和mac地址集合可以配置于一个黑名单中),也可以不同(即分别独立配置)。检测mac地址是否处于预置的第二黑名单内的mac地址集合还可以称为检测mac地址是否与预置的第二黑名单内的mac地址集合中的mac地址相同;相应的,mac地址处于mac地址集合可以是指mac地址与该mac地址集合中的任一mac地址相同。

可选的,该第一黑名单包括历史数据中识别为模拟器的终端所连接的路由器的名称中统计次数较多的名称,比如统计次数最多的前m(m为大于0的整数,如取10)个名称,或者统计次数大于预设数目阈值(第一阈值)的名称;该第二黑名单包括历史数据中识别为模拟器的终端所连接的路由器的mac地址中统计次数较多的mac地址或者由该mac地址组成的mac地址集合,比如统计次数最多的前n(n为大于0的整数,如取50)个mac地址,或者统计次数大于预设数目阈值(第二阈值)的mac地址,或者由这些mac地址确定的mac地址集合,等等,本申请不做限定。其中,该第一阈值和第二阈值可以预先设置得到,该第一阈值和第二阈值可以相同,比如均设置为80;或者,两者也可以不同,比如第一阈值为80,第二阈值为60,反之亦可,此处不赘述。

103、当该路由器的名称与该第一黑名单内的任一路由器名称相同,且该mac地址处于该mac地址集合时,确定该目标终端运行于模拟器环境。

具体的,识别设备可通过将目标终端对应的路由器的名称和上述的第一黑名单中的路由器名称进行匹配,并将目标终端对应的路由器的mac地址和上述的第二黑名单中的mac地址或mac地址集合进行匹配。当在该第一黑名单中匹配得到与该目标终端对应的路由器的名称相同的路由器名称,以及在该第二黑名单中匹配得到该目标终端对应的路由器的mac地址所处的mac地址集合(或匹配得到与该目标终端对应的路由器的mac地址相同的mac地址),则可识别为该目标终端是运行于模拟器环境的。

在本发明实施例中,识别设备能够通过获取终端连接的wi-fi热点的路由器信息,并对该路由器信息如路由器的名称和mac地址进行检测分析,在检测到该路由器的名称与预设黑名单内的任一路由器名称相同,且该mac地址处于预设的mac地址集合时,即可确定该目标终端运行于模拟器环境。本发明实施例能够根据终端连接的wi-fi热点的路由器信息来进行模拟器识别,这就有助于提升模拟器识别的准确性。

请参见图2,图2是本发明实施例提供的另一种模拟器识别方法的流程示意图。具体的,如图2所示,该模拟器识别方法可以包括以下步骤:

201、获取目标终端连接的wi-fi热点的路由器信息,该路由器信息包括路由器的名称和mac地址。

具体的,该步骤201的描述请参照上述图1所示实施例中步骤101的相关描述,此处不赘述。

可选的,在进行模拟器识别时,识别设备可通过获取目标终端的设备底层多项设备信息,比如该设备信息可包括以下一项或多项:连接的wi-fi热点的路由器信息(包括路由器名称(或wi-fi名称)如wi-fi服务集标识(servicesetidentifier,ssid),路由器mac地址(或wi-fimac地址)如wi-fi基本服务集标识(basicservicesetidentifier,bssid)等)、机型(型号和/或品牌)、cpu生产商信息、蓝牙信息、传感器信息、用户使用痕迹信息如内存空间值、使用的网络制式、android状态(或称为运行状态,如是否处于root状态)、系统文件异常信息(如是否存在预设路径和名称的系统文件)、安装的应用的数目、存储的文件的数目、接入app的包名、接入app的版本号、sdk的版本号、操作系统类型、操作系统版本、设备唯一标识码(udid)、是否已经越狱(比如1代表已越狱,0代表未越狱)、经纬度信息、网络类型、指定app是否安装(比如1代表已安装,0代表未安装)、是否安装了阿里小号、是否安装了v8插件、当前时间戳(比如精度为毫秒)、广告标示符、vendor标识符、设备型号、主机名、cpu核心数、cpu类型、cpu子类型、屏幕分辨率、存储总空间、存储剩余空间、时区、语言、电量、电池状态、运营商名称、国家iso、启动时间、键盘列表、did被抹掉或篡改、localfile中存储的did、是否打开gps开关(比如0代表关闭,1代表开启)、gps授权状态、app加载的动态链接库列表等等,来进行模拟器识别。具体的,识别设备可通过获取多项设备信息来进行模拟器识别,以提升识别的可靠性。而且,该识别设备可按照预设的模拟器识别规则使用该获取的设备信息项中的部分信息用于模拟器识别,使得非法分子无法确定具体使用哪些信息来进行模拟器识别的,这就有助于防止非法分子了解到某一识别规则后篡改相关设备信息导致无法及时识别模拟器的情况的发生,即防止识别规则被破解,使得进一步提升了模拟器识别的可靠性。

202、获取该路由器信息对应的目标函数的flag值,并根据该flag值确定该目标函数是否被hook。

可选的,在根据设备信息识别是否为模拟器之前,识别设备能够通过检测设备信息对应的函数是否被篡改,并在检测到被篡改时及时地获取真实的设备信息,以基于真实的设备信息进行模拟器识别,由此提升了模拟器识别的准确性和可靠性。此外,可选的,本申请可采用android底层源生api采集设备信息,使得设备信息不容易被篡改。

其中,该flag值可用于标记所述目标函数的状态,该状态可以是指是否被篡改的状态,或者可以是指读写状态、阻塞与非阻塞状态、退出进程或程序的状态和/或更改文件的内容的状态等等,从而能够根据该flag值确定出该目标函数是否被hook。具体的,每一个函数都有对应的flag,该flag为一个变量,当某一函数被篡改时,该函数对应的flag会发生改变。由此,识别设备可通过检测函数的flag是否发生改变,来确定该函数是否被hook,也即该函数对应的设备信息是否被篡改。其中,该flag的值可以是存储于该目标函数对应的内存中。在本发明实施例中,如果该路由器的名称和mac地址对应同一个函数,则识别设备可将该函数作为目标函数进行hook检测;如果该路由器的名称和mac地址对应不同的函数,则识别设备可以分别针对该路由器的名称对应的函数和mac地址对应的函数进行hook检测,也即分别将该路由器的名称对应的函数和mac地址对应的函数作为目标函数以实现真实设备信息的还原。

可选的,在根据该flag值确定该目标函数是否被hook时,识别设备可以将该flag值中的预设位置处的字符与预设的固定字符进行比较;当比较得到该预设位置处的字符与该固定字符不同时,确定该目标函数被hook。其中,该预设位置处的字符的字符数与该固定字符的字符数相同,以便于匹配比较。也就是说,该flag发生改变可以是指该flag值的一位或多位发生改变,且该一位或多位可以是指flag的预设位置处的一位或多位。从而识别设备可以通过将获取的flag值预设位置处的一位或多位与未被篡改时的固定字符进行比较,如果flag值的该一位或多位发生改变,即flag值的一位或多位与该固定字符不同,则表明该目标函数被hook,即该目标函数对应的设备信息被篡改。

例如,针对android版本在4.4以上及5.0以下的系统,有的xposed插件对某函数进行hook时,会将该函数的flag值的固定位置处的1位(bit)设置为1;而正常未被篡改的函数,flag值的该位是0(即上述的固定字符)。因此,可通过检测函数的flag值的该固定位是否是0,就可以知道该函数是否被xposed插件进行了hook。也即,如果该测函数的flag值的该固定位不为0,即可表明该函数被hook,该函数被篡改。

可选的,在根据该flag值确定该目标函数是否被hook时,识别设备还可以按照预设的逻辑算法对该flag值进行逻辑运算,以得到运算结果值;当该运算结果值为正整数时,确定该目标函数被hook。其中,该逻辑算法可以是根据预设字符串和系统中的原生函数执行时的跳转地址确定的。也就是说,还可将按照预设逻辑算法对flag处理后的值与未被篡改时的固定字符如0进行比较,如果处理后的该值发生改变,即不为0,比如为某一正整数时,则表明该函数被hook。

例如,针对android版本在5.0及其以上的系统,如果按照逻辑算法如逻辑算式entrypointfromjni&&accessflags&0x10000000结果等于正整数,则可表明该函数被篡改;如果该逻辑算式结果等于0(即为固定字符),则可表明该函数未被篡改。其中,该entrypointfromjni可以是指原生函数如native函数执行时的跳转地址,accessflags即为上述的flag。

进一步可选的,识别设备在根据该flag值确定该目标函数是否被hook之前,还可确定该目标终端目标使用的系统版本,进而根据该目标终端的系统版本去选择根据该flag值确定该目标函数是否被hook的方式,以提升hook检测的效率。其中,该系统版本和hook检测的方式的对应关系可预先设置得到。

203、当确定该目标函数被hook时,从该目标函数的内存中获取该目标函数对应的目标函数指针。

其中,该函数指针和被hook的函数是存储于同一块内存的不同字段中的,且不同函数指针和原始函数存在映射关系,或者说不同函数指针和原始函数的存储地址存在映射关系。该目标函数被hook可以是指该路由器的名称和mac地址对应的函数被hook;或者,该路由器的名称对应的函数被hook和/或该mac地址对应的函数被hook。

可选的,在确定该目标函数被hook之后,还可对该被hook的目标函数进行还原,以便于确定出该目标函数对应的真实设备信息。具体的,在确定某一函数如该目标函数被hook之后,可从其内存中快速获取该目标函数对应的函数指针,即上述的目标函数指针,以便于根据该目标函数指针确定出该目标函数对应的原始函数如原生api,即未被hook的真实函数。

204、根据预先存储的各函数指针和函数的对应关系,确定出该目标函数指针对应的原始函数,并根据该原始函数确定出原始路由器信息。

在确定出该目标函数对应的内存中的目标函数指针之后,即可进一步确定出该目标函数指针对应的原始函数,即真实的method。进而可通过该原始函数替换该目标函数,实现对被hook的函数的还原。从而识别设备可通过该原始函数确定出该目标终端对应的真实路由器信息,以基于真实路由器信息进行模拟器识别。具体的,如果该路由器的名称和mac地址对应的函数被hook,即可还原得到真实的原始路由器的名称和mac地址;如果该路由器的名称对应的函数被hook,即可还原得到真实的原始路由器的名称;如果该mac地址对应的函数被hook,即可还原得到真实的原始mac地址。

应理解,该内存中存储的原始函数指针是不会被篡改的,根据xposed插件的工作原理,在篡改目标函数之前,会将函数的原始信息备份下来,并保存在内存中的特定地址,即该目标函数指针指向的地址。而一旦这些备份信息也被篡改,那xposed插件将无法正常工作。因此,在该目标函数指针指向的特定地址获取到的原始函数,一定是正确的函数,其不会被篡改。

205、检测该原始路由器信息包括的路由器的名称是否与预置的第一黑名单内的路由器名称相同,以及该原始路由器信息包括的mac地址是否处于预置的第二黑名单内的mac地址集合。

206、当该路由器的名称与该第一黑名单内的任一路由器名称相同,且该mac地址处于该mac地址集合时,确定该目标终端运行于模拟器环境。

具体的,该步骤205-206的描述请参照上述图1所示实施例中步骤102-103的相关描述,此处不赘述。

可选的,在其他实施例中,识别设备还可结合其他设备信息来进一步识别该目标终端是否运行于模拟器环境。例如,在一些实施例中,识别设备还可获取该目标终端的机型信息,该机型信息包括该目标终端的型号和/或品牌;检测该机型信息是否与预置的第三黑名单内的终端机型信息相同,该第三黑名单中包括至少一组终端机型信息。进一步的,当该路由器的名称与该第一黑名单内的任一路由器名称相同,该mac地址处于该mac地址集合,且该机型信息与该第三黑名单内的任一组终端机型信息相同时,识别设备可确定该目标终端运行于模拟器环境。该机型信息与该第三黑名单内的任一组终端机型信息相同包括:当该机型信息为型号时,该型号与该第三黑名单内的任一终端型号相同;当该机型信息为品牌时,该品牌与该第三黑名单内的任一终端品牌相同;当该机型信息包括型号和品牌时,该型号与该第三黑名单内的任一终端型号相同,且该品牌与该第三黑名单内的任一终端品牌相同。可选的,该第三黑名单中包括一组或多组终端机型信息,该一组或多组终端机型信息可以是历史数据中识别为模拟器的终端的机型信息,比如统计次数最多的前l(l为大于0的整数,如取8)组机型信息,或者统计次数大于预设数目阈值(第三阈值)的机型信息等等,此处不赘述。也就是说,识别设备可结合终端连接的wi-fi热点的路由器信息和终端的机型信息来进行模拟器识别,这就进一步提升了模拟器识别的可靠性。

又如,在一些实施例中,识别设备还可获取该目标终端的cpu的生产商标识,检测该cpu的生产商标识是否与预置的白名单中的生产商标识相同,进而当该路由器的名称与该第一黑名单内的任一路由器名称相同,该mac地址处于该mac地址集合,且该cpu的生产商标识与该白名单内的所有生产商标识均不相同时,确定该目标终端运行于模拟器环境。其中,该白名单中可包括一个或多个合法的cpu生产商的标识。也就是说,识别设备可结合终端连接的wi-fi热点的路由器信息和终端的cpu生产商信息来进行模拟器识别,以提升模拟器识别的可靠性。

又如,在一些实施例中,识别设备还可结合终端连接的wi-fi热点的路由器信息、终端的机型信息来进行模拟器识别,以提升模拟器识别的可靠性,此处不赘述。

又如,在一些实施例中,识别设备还可检测该目标终端的设备信息是否满足预设规则,其中,目标终端的设备信息满足该预设规则可以是指满足以下任一项或多项规则:

1)目标终端中未配置有预设模块,预设模块包括蓝牙模块、温度传感器、光线传感器中的一个或多个;

该预设模块为根据历史数据统计的识别为模拟器的终端中没有配置的模块,如蓝牙模块、温度传感器、光线传感器。因此如果识别到终端没有配置该预设模块,则可能为模拟器。

2)目标终端的内存空间值小于预设内存阈值;

3)目标终端安装的应用的第一数目小于预设的第一数目阈值;

4)目标终端存储的文件的第二数目小于预设的第二数目阈值;

其中,该第一数目阈值和第二数目阈值可以预先设置得到。

5)目标终端使用的网络制式与预设的网络制式列表中的所有网络制式均不相同;

可选的,识别设备可以结合目标终端所在的目标区域确定哪些是正常的网络制式,比如通过预先配置不同区域及其对应的网络制式列表,来确定与该目标区域对应的网络制式列表,该网络制式列表中的网络制式即为该目标区域的正常网络制式。如果检测到该目标终端使用的网络制式不为其对应的网络制式列表中的网络制式,则该目标终端可能运行于模拟器环境,因为模拟器可能篡改网络制式信息。

6)目标终端的系统中存在预设路径和名称的系统文件;

如果目标终端中存在异常的系统文件,则可能为模拟器。例如,该异常的系统文件可包括以下路径和名称的系统文件:/dev/qemu_pipe、/dev/socket/qemud、/system/lib/libc_malloc_debug_qemu.so、/sys/qemu_trace、/proc/tty/drivers/goldfish等等。

7)目标终端处于root状态等等。如果检测到目标终端处于androidroot状态,则可能为模拟器。

在一些实施例中,当该路由器的名称与该第一黑名单内的任一路由器名称相同,该mac地址处于该mac地址集合,且该目标终端的设备信息满足该预设规则时,识别设备可确定该目标终端运行于模拟器环境。也就是说,识别设备可结合终端连接的wi-fi热点的路由器信息、模块配置信息、内存空间信息、安装的应用的数目、存储的文件的数目、使用的网络制式、系统文件异常信息、运行状态等信息来进行模拟器识别,以进一步提升模拟器识别的可靠性。

又如,在一些实施例中,识别设备还可根据上述的终端连接的wi-fi热点的路由器信息、机型信息、cpu生产商信息、模块配置信息、内存空间信息、安装的应用的数目、存储的文件的数目、使用的网络制式、系统文件异常信息、运行状态等信息中的任一项或多项进行模拟器识别,此处不赘述。

可选的,在根据目标终端的机型信息、cpu生产商信息、模块配置信息、内存空间信息、安装的应用的数目、存储的文件的数目、使用的网络制式、系统文件异常信息、运行状态等设备信息中的任一项或多项进行模拟器识别之前,还可检测用于进行模拟器识别的设备信息是否被篡改,如果被篡改,即可还原真实的设备信息后再基于真实的设备信息进行模拟器识别。其中,检测设备信息是否被篡改及其还原方式可参照上述步骤202-204中检测路由器信息是否被篡改及其还原方式的相关描述,此处不赘述。

进一步可选的,如果确定目标终端运行在模拟器环境中,识别设备可生成告警信息。例如,该告警信息可以包括:风险等级、用户信息、设备恶意行为中的一项或多项。其中,该风险等级可以根据终端的目标风控场景确定出,具体可预先设置得到不同风控场景和风险等级的对应关系;或者,该风险等级可以根据终端目标运行的应用确定出,具体可预先设置得到不同应用和风险等级的对应关系;或者,该风险等级还可根据终端被hook的函数的数目确定出,具体可预先设置得到不同hook数目和风险等级的对应关系;或者,该风险等级还可根据终端被篡改的设备信息的优先级确定出,具体可预先设置得到不同设备信息的优先级,以及各优先级和风险等级的对应关系,等等,本申请不做限定。例如,该风险等级可以分为高危、中危、低危,或者一级、二级、三级等等。该用户信息可包括用户标识(useridentification,uid)、手机号码、身份证号码(如果注册应用时采集到的话)等。该恶意行为可包括篡改mac地址、篡改cpu生产商、篡改手机型号及品牌、篡改手机号码等等,具体可通过上述的hook检测确定出。

此外,可选的,识别设备还可根据该告警信息,向目标终端下发指令,以对目标终端(如终端上运行的app客户端)上的操作进行控制。例如,如果识别设备确定该风险等级为低危,识别设备可以下发指令指示客户端输出提示,要求用户输入验证信息,验证方式包括但不限于短信验证码、图片验证码等方式。如果验证未通过则无法进行后续操作。又如,如果识别设备确定该风险等级为中危,识别设备可以下发指令指示客户端禁止用户在目标风控场景(例如登录、领取红包、兑换优惠券、消费、转账等等)的请求访问操作。又如,如果识别设备确定该风险等级为高危,识别设备可以下发指令指示客户端禁止用户一切请求访问操作,等等,此处不一一列举。

例如,对于某些手机游戏,使用模拟器可以获得比手机更强的性能(实际上属于游戏作弊),本申请能够通过上述的识别规则识别出游戏应用是否运行在模拟器环境中,能够及时的发现运行于模拟器中的游戏行为,进而可制止该行为,防止作弊给用户带来的损失。

又如,某一金融机构推出的小额贷款的风控策略是仅允许特定区域的用户如北上广的用户贷款,非法用户可能使用模拟器修改gps定位,达到绕过风控策略的目的,骗取贷款。由此,本申请可通过上述的识别规则识别出设备是否运行于模拟器环境,并在确定设备运行于模拟器环境之后,拒绝该用户的贷款请求。进一步的,本申请还可采用上述的hook检测方式对该gps定位进行还原,以获取得到用户的真实定位信息。

又如,非法分子通过在模拟器中设置手机型号、品牌、厂商等信息,实现一个模拟器软件模拟多台不同安卓手机的目的,从而创建假身份骗取优惠活动、注册奖励等等。通过本申请,能够根据上述的hook检测方式确定手机型号、品牌、厂商等信息被篡改后,还原真实的手机型号、品牌、厂商等信息并进行模拟器识别,进而能够及时地识别出设备操作是否运行在模拟器环境中,并在识别出运行在模拟器环境中时能够及时地制止该行为,避免给合法用户造成损失。

在本发明实施例中,识别设备可通过采集多项设备信息,比如终端连接的wi-fi热点的路由器信息等设备信息来进行模拟器识别,使得提升了模拟器识别的准确性,而且,在根据设备信息识别终端是否运行于模拟器环境之前,能够通过识别设备信息是否被篡改,并在检测到被篡改时及时地还原真实的设备信息,以基于真实的设备信息进行模拟器识别,这就进一步提升了模拟器识别的准确性。

上述方法实施例都是对本申请的模拟器识别方法的举例说明,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

请参见图3,图3是本发明实施例提供的一种识别设备的结构示意图。本发明实施例的识别设备包括用于执行上述模拟器识别方法的单元。具体的,本实施例的识别设备300可包括:获取单元301和识别单元302。其中,

获取单元301,用于获取目标终端连接的无线保真wi-fi热点的路由器信息,所述路由器信息包括路由器的名称和媒体访问控制mac地址;

识别单元302,用于检测所述路由器的名称是否与预置的第一黑名单内的路由器名称相同,以及所述mac地址是否处于预置的第二黑名单内的mac地址集合;

所述识别单元302,还用于当所述路由器的名称与所述第一黑名单内的任一路由器名称相同,且所述mac地址处于所述mac地址集合时,确定所述目标终端运行于模拟器环境。

可选的,所述获取单元301,还用于获取所述目标终端的机型信息,所述机型信息包括所述目标终端的型号和/或品牌;

所述识别单元302,还用于检测所述机型信息是否与预置的第三黑名单内的终端机型信息相同,所述第三黑名单中包括至少一组终端机型信息;

所述识别单元302,具体用于当所述路由器的名称与所述第一黑名单内的任一路由器名称相同,所述mac地址处于所述mac地址集合,且所述机型信息与所述第三黑名单内的任一组终端机型信息相同时,确定所述目标终端运行于模拟器环境。

可选的,所述获取单元301,还用于获取所述目标终端的中央处理器cpu的生产商标识;

所述识别单元302,还用于检测所述cpu的生产商标识是否与预置的白名单中的生产商标识相同;

所述识别单元302,具体用于当所述路由器的名称与所述第一黑名单内的任一路由器名称相同,所述mac地址处于所述mac地址集合,且所述cpu的生产商标识与所述白名单内的所有生产商标识均不相同时,确定所述目标终端运行于模拟器环境。

可选的,所述识别单元302,还用于检测所述目标终端的设备信息是否满足预设规则,其中,所述目标终端的设备信息满足所述预设规则包括:

所述目标终端中未配置有预设模块,所述预设模块包括蓝牙模块、温度传感器、光线传感器中的一个或多个;和/或,

所述目标终端的内存空间值小于预设内存阈值;和/或,

所述目标终端安装的应用的第一数目小于预设的第一数目阈值;和/或,

所述目标终端存储的文件的第二数目小于预设的第二数目阈值;和/或,

所述目标终端使用的网络制式与预设的网络制式列表中的所有网络制式均不相同;和/或,

所述目标终端的系统中存在预设路径和名称的系统文件;和/或,

所述目标终端的运行状态为root状态;

所述识别单元302,具体用于当所述路由器的名称与所述第一黑名单内的任一路由器名称相同,所述mac地址处于所述mac地址集合,且所述目标终端的设备信息满足所述预设规则时,确定所述目标终端运行于模拟器环境。

可选的,所述识别设备还包括:hook检测单元303和还原单元304;

所述获取单元301,还用于获取所述路由器信息对应的目标函数的flag值;

hook检测单元303,用于根据所述flag值确定所述目标函数是否被hook;

所述获取单元301,还用于当确定所述目标函数被hook时,从所述目标函数的内存中获取所述目标函数对应的目标函数指针;

还原单元304,用于根据预先存储的各函数指针和函数的对应关系,确定出所述目标函数指针对应的原始函数,并根据所述原始函数确定出原始路由器信息;

所述识别单元302,具体用于检测所述原始路由器信息包括的路由器的名称是否与预置的第一黑名单内的路由器名称相同,以及所述原始路由器信息包括的mac地址是否处于预置的第二黑名单内的mac地址集合。

可选的,所述hook检测单元303,具体用于将所述flag值中的预设位置处的字符与预设的固定字符进行比较,所述预设位置处的字符的字符数与所述固定字符的字符数相同;当比较得到所述预设位置处的字符与所述固定字符不同时,确定所述目标函数被hook。

可选的,所述hook检测单元303,具体用于按照预设的逻辑算法对所述flag值进行逻辑运算,以得到运算结果值,其中,所述逻辑算法是根据预设字符串和系统中的原生函数执行时的跳转地址确定的;当所述运算结果值为正整数时,确定所述目标函数被hook。

具体的,该识别设备可通过上述单元实现上述图1至图2所示实施例中的模拟器识别方法中的部分或全部步骤。应理解,本发明实施例是对应方法实施例的装置实施例,对方法实施例的描述,也适用于本发明实施例。

在本发明实施例中,识别设备能够通过获取终端连接的wi-fi热点的路由器信息,并对该路由器信息如路由器的名称和mac地址进行检测分析,在检测到该路由器的名称与预设黑名单内的任一路由器名称相同,且该mac地址处于预设的mac地址集合时,即可确定该目标终端运行于模拟器环境。本发明实施例能够根据终端连接的wi-fi热点的路由器信息来进行模拟器识别,这就有助于提升模拟器识别的准确性。

请参见图4,图4是本发明实施例提供的另一种识别设备的结构示意图。该识别设备用于执行上述的方法。如图4所示,本实施例中的识别设备400可以包括:一个或多个处理器401和存储器402。可选的,该识别设备还可包括一个或多个用户接口403,和/或,一个或多个通信接口404。上述处理器401、用户接口403、通信接口404和存储器402可通过总线405连接,或者可以通过其他方式连接,图4中以总线方式进行示例说明。其中,存储器402用于存储计算机程序,所述计算机程序包括程序指令,处理器401用于执行存储器402存储的程序指令。

其中,处理器401可用于调用所述程序指令执行以下步骤:获取目标终端连接的无线保真wi-fi热点的路由器信息,所述路由器信息包括路由器的名称和媒体访问控制mac地址;检测所述路由器的名称是否与预置的第一黑名单内的路由器名称相同,以及所述mac地址是否处于预置的第二黑名单内的mac地址集合;当所述路由器的名称与所述第一黑名单内的任一路由器名称相同,且所述mac地址处于所述mac地址集合时,确定所述目标终端运行于模拟器环境。

可选的,处理器401在调用所述程序指令执行所述确定所述目标终端运行于模拟器环境之前,还用于执行以下步骤:获取所述目标终端的机型信息,所述机型信息包括所述目标终端的型号和/或品牌;检测所述机型信息是否与预置的第三黑名单内的终端机型信息相同,所述第三黑名单中包括至少一组终端机型信息;

处理器401在调用所述程序指令执行所述当所述路由器的名称与所述第一黑名单内的任一路由器名称相同,且所述mac地址处于所述mac地址集合时,确定所述目标终端运行于模拟器环境时,具体执行以下步骤:当所述路由器的名称与所述第一黑名单内的任一路由器名称相同,所述mac地址处于所述mac地址集合,且所述机型信息与所述第三黑名单内的任一组终端机型信息相同时,确定所述目标终端运行于模拟器环境。

可选的,处理器401在调用所述程序指令执行所述确定所述目标终端运行于模拟器环境之前,还用于执行以下步骤:获取所述目标终端的中央处理器cpu的生产商标识;检测所述cpu的生产商标识是否与预置的白名单中的生产商标识相同;

处理器401在调用所述程序指令执行所述当所述路由器的名称与所述第一黑名单内的任一路由器名称相同,且所述mac地址处于所述mac地址集合时,确定所述目标终端运行于模拟器环境时,具体执行以下步骤:当所述路由器的名称与所述第一黑名单内的任一路由器名称相同,所述mac地址处于所述mac地址集合,且所述cpu的生产商标识与所述白名单内的所有生产商标识均不相同时,确定所述目标终端运行于模拟器环境。

可选的,处理器401在调用所述程序指令执行所述确定所述目标终端运行于模拟器环境之前,还用于执行以下步骤:检测所述目标终端的设备信息是否满足预设规则,其中,所述目标终端的设备信息满足所述预设规则包括:所述目标终端中未配置有预设模块,所述预设模块包括蓝牙模块、温度传感器、光线传感器中的一个或多个;和/或,所述目标终端的内存空间值小于预设内存阈值;和/或,所述目标终端安装的应用的第一数目小于预设的第一数目阈值;和/或,所述目标终端存储的文件的第二数目小于预设的第二数目阈值;和/或,所述目标终端使用的网络制式与预设的网络制式列表中的所有网络制式均不相同;和/或,所述目标终端的系统中存在预设路径和名称的系统文件;和/或,所述目标终端的运行状态为root状态;

处理器401在调用所述程序指令执行所述当所述路由器的名称与所述第一黑名单内的任一路由器名称相同,且所述mac地址处于所述mac地址集合时,确定所述目标终端运行于模拟器环境,具体执行以下步骤:当所述路由器的名称与所述第一黑名单内的任一路由器名称相同,所述mac地址处于所述mac地址集合,且所述目标终端的设备信息满足所述预设规则时,确定所述目标终端运行于模拟器环境。

可选的,处理器401在调用所述程序指令执行所述检测所述路由器的名称是否与预置的第一黑名单内的路由器名称相同,以及所述mac地址是否处于预置的第二黑名单内的mac地址集合之前,还用于执行以下步骤:获取所述路由器信息对应的目标函数的flag值,并根据所述flag值确定所述目标函数是否被hook;当确定所述目标函数被hook时,从所述目标函数的内存中获取所述目标函数对应的目标函数指针;根据预先存储的各函数指针和函数的对应关系,确定出所述目标函数指针对应的原始函数,并根据所述原始函数确定出原始路由器信息;

处理器401在调用所述程序指令执行所述检测所述路由器的名称是否与预置的第一黑名单内的路由器名称相同,以及所述mac地址是否处于预置的第二黑名单内的mac地址集合时,具体执行以下步骤:检测所述原始路由器信息包括的路由器的名称是否与预置的第一黑名单内的路由器名称相同,以及所述原始路由器信息包括的mac地址是否处于预置的第二黑名单内的mac地址集合。

可选的,处理器401在调用所述程序指令执行所述根据所述flag值确定所述目标函数是否被hook时,具体执行以下步骤:将所述flag值中的预设位置处的字符与预设的固定字符进行比较,所述预设位置处的字符的字符数与所述固定字符的字符数相同;当比较得到所述预设位置处的字符与所述固定字符不同时,确定所述目标函数被hook。

可选的,处理器401在调用所述程序指令执行所述根据所述flag值确定所述目标函数是否被hook时,具体执行以下步骤:按照预设的逻辑算法对所述flag值进行逻辑运算,以得到运算结果值,其中,所述逻辑算法是根据预设字符串和系统中的原生函数执行时的跳转地址确定的;当所述运算结果值为正整数时,确定所述目标函数被hook。

其中,所述处理器401可以是中央处理单元(centralprocessingunit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

用户接口403可包括输入设备和输出设备,输入设备可以包括触控板、麦克风等,输出设备可以包括显示器(lcd等)、扬声器等。

通信接口404可包括接收器和发射器,用于与其他设备进行通信。

存储器402可以包括只读存储器和随机存取存储器,并向处理器401提供指令和数据。存储器402的一部分还可以包括非易失性随机存取存储器。例如,存储器402还可以存储上述的函数指针和函数的对应关系等等。

具体实现中,本发明实施例中所描述的处理器401等可执行上述图1至图3所示的方法实施例中所描述的实现方式,也可执行本发明实施例图4所描述的各单元的实现方式,此处不赘述。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现图1至图2所对应实施例中描述的模拟器识别方法中的部分或全部步骤,也可实现本发明图3或图4所示实施例的识别设备的功能,此处不赘述。

本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述方法中的部分或全部步骤。

所述计算机可读存储介质可以是前述任一实施例所述的识别设备的内部存储单元,例如识别设备的硬盘或内存。所述计算机可读存储介质也可以是所述识别设备的外部存储设备,例如所述识别设备上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。

在本申请中,术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

以上所述,仅为本发明的部分实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。

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