CN109144665B - 一种模拟器识别方法、识别设备及计算机可读介质 - Google Patents

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

Info

Publication number
CN109144665B
CN109144665B CN201810851413.9A CN201810851413A CN109144665B CN 109144665 B CN109144665 B CN 109144665B CN 201810851413 A CN201810851413 A CN 201810851413A CN 109144665 B CN109144665 B CN 109144665B
Authority
CN
China
Prior art keywords
target
simulator
preset
target terminal
identification
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810851413.9A
Other languages
English (en)
Other versions
CN109144665A (zh
Inventor
李骁
董晓琼
胡定耀
王智浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN201810851413.9A priority Critical patent/CN109144665B/zh
Priority to PCT/CN2018/107746 priority patent/WO2020019483A1/zh
Publication of CN109144665A publication Critical patent/CN109144665A/zh
Application granted granted Critical
Publication of CN109144665B publication Critical patent/CN109144665B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45537Provision of facilities of other operating environments, e.g. WINE
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint

Abstract

本发明实施例公开了一种模拟器识别方法、识别设备及计算机可读介质,其中,该方法包括:识别目标终端所处的目标风控场景;根据预设的不同风控场景和模拟器识别规则的对应关系,从预设的多个模拟器识别规则中确定出与所述目标风控场景对应的目标模拟器识别规则,所述多个模拟器识别规则是根据历史记录中运行于模拟器环境的终端的设备信息确定出的;获取所述目标终端的设备信息,并检测所述目标终端的设备信息是否命中所述目标模拟器识别规则;当命中所述目标模拟器识别规则时,确定所述目标终端运行于模拟器环境。采用本发明实施例,有助于提升模拟器识别的灵活性和准确性。

Description

一种模拟器识别方法、识别设备及计算机可读介质
技术领域
本发明涉及通信技术领域,尤其涉及一种模拟器识别方法、识别设备及计算机可读介质。
背景技术
Android模拟器是一个能在Windows、Linux等各种平台模拟出Android系统的运行环境的应用,用户可以在个人计算机等终端中的Android模拟器上运行Android系统的应用。在使用Android系统的应用时,对于某些业务,如需要进行风险监测的业务,并不希望它被运行在模拟器上,因此需要对终端是否运行于Android模拟器环境进行识别。而目前风险识别设备对Android模拟器的识别能力有限,无法有效识别出终端是否运行于模拟器环境。
发明内容
本发明实施例提供一种模拟器识别方法、识别设备及计算机可读介质,有助于提升模拟器识别的灵活性和准确性。
第一方面,本发明实施例提供了一种模拟器识别方法,包括:
识别目标终端所处的目标风控场景;
根据预设的不同风控场景和模拟器识别规则的对应关系,从预设的多个模拟器识别规则中确定出与所述目标风控场景对应的目标模拟器识别规则,所述多个模拟器识别规则是根据历史记录中运行于模拟器环境的终端的设备信息确定出的;
获取所述目标终端的设备信息,并检测所述目标终端的设备信息是否命中所述目标模拟器识别规则;
当所述目标终端的设备信息命中所述目标模拟器识别规则时,确定所述目标终端运行于模拟器环境。
可选的,所述检测所述目标终端的设备信息是否命中所述目标模拟器识别规则,包括:
当与所述目标风控场景对应的目标模拟器识别规则存在多个时,按照预设的时间间隔和预设的多个所述目标模拟器识别规则的优先级,依次检测所述目标终端的设备信息是否命中多个所述目标模拟器识别规则;
所述当命中所述目标模拟器识别规则时,确定所述目标终端运行于模拟器环境,包括:
当命中多个所述目标模拟器识别规则中任一目标模拟器识别规则时,停止检测,并确定所述目标终端运行于模拟器环境。
可选的,所述目标终端的设备信息包括所述目标终端连接的无线保真Wi-Fi热点的路由器的名称、所述路由器的媒体访问控制MAC地址、所述目标终端的型号、品牌、中央处理器CPU的生产商标识、内存空间值、安装的应用的第一数目、存储的文件的第二数目、使用的网络制式、运行状态中的任一项或多项,且所述目标模拟器识别规则对应的设备信息为所述目标终端的设备信息中的部分信息;或者,
所述目标终端的设备信息为所述目标模拟器识别规则对应的设备信息。
可选的,所述目标终端的设备信息命中所述目标模拟器识别规则,包括:
所述终端连接的Wi-Fi热点的路由器的名称与预置的第一黑名单内的路由器名称相同;或者,
所述目标终端连接的Wi-Fi热点的路由器的MAC地址处于预置的第二黑名单内的MAC地址集合;或者,
所述目标终端的型号与预置的第三黑名单内的任一终端型号相同;或者,
所述目标终端的品牌与预置的第四黑名单内的任一终端品牌相同;或者,
所述目标终端的中央处理器CPU的生产商标识与预置的白名单中的所有生产商标识均不相同;或者,
所述目标终端中未配置有预设模块,所述预设模块包括蓝牙模块、温度传感器、光线传感器中的一个或多个;或者,
所述目标终端的内存空间值小于预设内存阈值;或者,
所述目标终端安装的应用的第一数目小于预设的第一数目阈值;或者,
所述目标终端存储的文件的第二数目小于预设的第二数目阈值;或者,
所述目标终端使用的网络制式与预设的网络制式列表中的所有网络制式均不相同;或者,
所述目标终端的系统中存在预设路径和名称的系统文件;或者,
所述目标终端的运行状态为root状态。
可选的,在所述获取所述目标终端的设备信息之后,以及所述检测所述目标终端的设备信息是否命中所述目标模拟器识别规则之前,所述方法还包括:
获取所述目标终端的设备信息对应的目标函数的flag值,并根据所述flag值确定所述目标函数是否被hook;
当确定所述目标函数被hook时,从所述目标函数的内存中获取所述目标函数对应的目标函数指针;
根据预先存储的各函数指针和函数的对应关系,确定出所述目标函数指针对应的原始函数,并根据所述原始函数确定出原始设备信息;
所述检测所述目标终端的设备信息是否命中所述目标模拟器识别规则,包括:
检测所述原始设备信息是否命中所述目标模拟器识别规则。
可选的,所述根据所述flag值确定所述目标函数是否被hook,包括:
将所述flag值中的预设位置处的字符与预设的固定字符进行比较,所述预设位置处的字符的字符数与所述固定字符的字符数相同;
当比较得到所述预设位置处的字符与所述固定字符不同时,确定所述目标函数被hook。
可选的,所述根据所述flag值确定所述目标函数是否被hook,包括:
按照预设的逻辑算法对所述flag值进行逻辑运算,以得到运算结果值,其中,所述逻辑算法是根据预设字符串和系统中的原生函数执行时的跳转地址确定的;
当所述运算结果值为正整数时,确定所述目标函数被hook。
第二方面,本发明实施例提供了一种识别设备,该识别设备包括用于执行上述第一方面的方法的单元。
第三方面,本发明实施例提供了另一种识别设备,包括处理器、用户接口、通信接口和存储器,所述处理器、用户接口、通信接口和存储器相互连接,其中,所述存储器用于存储支持识别设备执行上述方法的计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述第一方面的方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的方法。
本发明实施例能够通过获取终端所处的风控场景,进而根据预设的不同风控场景和模拟器识别规则的对应关系,确定出与该终端所处的风控场景对应的模拟器识别规则并获取该终端的设备信息后,通过检测该设备信息是否命中该确定出的模拟器识别规则以进行模拟器识别,使得能够结合不同风控场景进行模拟器识别,有助于防止非法分子了解到某一识别规则后篡改相关设备信息导致无法及时识别模拟器的情况的发生,提升了模拟器识别的灵活性和准确性。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种模拟器识别方法的流程示意图;
图2是本发明实施例提供的另一种模拟器识别方法的流程示意图;
图3是本发明实施例提供的又一种模拟器识别方法的流程示意图;
图4是本发明实施例提供的一种识别设备的结构示意图;
图5是本发明实施例提供的另一种识别设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的技术方案可应用于识别设备中,该识别设备可包括各种终端、服务器或与终端连接的风险识别产品(设备)等等,用于对终端中的模拟器行为进行识别(简称“模拟器识别”),以识别终端(或终端中的应用,如识别植入SDK的应用)是否运行于模拟器环境,或者称为识别终端是否使用模拟器登录。在本申请中,模拟器可以是指Android模拟器或其他模拟器。本申请涉及的终端可以是手机、电脑、平板、个人计算机、智能手表等,本申请不做限定。
具体的,本申请可通过确定目标终端所处的风控场景,以根据该风控场景来确定用于进行模拟器识别的模拟器识别规则,进而通过获取终端的设备信息,比如连接的Wi-Fi热点信息、机型信息、CPU的生产商信息、模块配置信息、内存空间信息、安装的应用的数目、存储的文件的数目、使用的网络制式、系统文件异常信息、运行状态等信息中的一项或多项,进而根据该模拟器识别规则和该设备信息来进行模拟器识别,从而能够提升模拟器识别的灵活性和准确性。以下分别详细说明。
请参见图1,图1是本发明实施例提供的一种模拟器识别方法的流程示意图。具体的,如图1所示,该模拟器识别方法可以包括以下步骤:
101、识别目标终端所处的目标风控场景。
其中,该目标终端可以是指需要进行模拟器识别的任一终端,比如与风险识别产品连接的终端,或者处于特定风控场景下的终端,或者触发(比如通过预设按键或手势或预设的其他触发方式)了模拟器识别的终端,等等,本申请不做限定。
可选的,该风控场景可以包括登录场景、交易场景、APP优惠领域场景等等;或者,可选的,该风控场景还可根据APP的类型确定,该风控场景可以包括各种类型的APP对应的风控场景,等等。对于风控场景的划分方式,本申请不做限定。进一步可选的,识别设备可以通过获取该目标终端的风控场景信息,根据该风控场景信息识别出该目标风控场景。其中,该风控场景信息可以包括风控场景标识和/或场景描述信息等等,用于指示终端所在的风控场景。例如,该风控场景标识可以包括登录标识、交易标识等等;又如,该场景描述信息可以包括终端处于登录状态的描述信息、终端处于交易状态的描述信息等等,此处不一一列举。
102、根据预设的不同风控场景和模拟器识别规则的对应关系,从预设的多个模拟器识别规则中确定出与该目标风控场景对应的目标模拟器识别规则。
其中,该多个模拟器识别规则可以是根据历史记录中运行于模拟器环境的终端的设备信息确定出的,以提升模拟器识别的效率和可靠性。
具体的,识别设备可根据各个类型的Android模拟器的共性特征生成多个模拟器识别规则,并分别确定出不同风控场景下使用的模拟器规则,将各模拟器识别规则及其对应的风控场景信息进行关联存储。进而识别设备可结合终端实际所处的风控场景来确定终端目标使用的模拟器识别规则,进而基于该模拟器识别规则进行模拟器识别。可选的,不同的风控场景下的模拟器识别规则可以不同,以便于识别设备根据具体的风控场景进行模拟器识别,以提升模拟器识别的可靠性。
例如,该多个模拟器识别规则可以包括以下至少两项:
规则1:待识别终端连接的Wi-Fi热点的路由器的名称与预置的第一黑名单内的路由器名称相同;
规则2:待识别终端连接的Wi-Fi热点的路由器的MAC地址处于预置的第二黑名单内的MAC地址集合;
其中,检测MAC地址是否处于预置的MAC地址集合还可以称为检测MAC地址是否与该MAC地址集合中的MAC地址相同;相应的,MAC地址处于MAC地址集合可以是指该MAC地址与该MAC地址集合中的任一MAC地址相同。
规则3:待识别终端的型号与预置的第三黑名单内的任一终端型号相同;
规则4:待识别终端的品牌与预置的第四黑名单内的任一终端品牌相同;
可选的,上述的黑名单如第一黑名单、第二黑名单、第三黑名单、第四黑名单等包括的设备信息可以是历史数据中识别为模拟器的终端(即识别为运行在模拟器环境的终端)对应的设备信息,比如统计次数最多的前L(L为大于0的整数,如取8)个设备信息(路由器名称、MAC地址、型号或品牌等等),或者统计次数大于预设阈值的设备信息等等,此处不赘述。
例如,该第一黑名单包括历史数据中识别为模拟器的终端所连接的路由器的名称中统计次数较多的名称,比如统计次数最多的前M(M为大于0的整数,如取10)个名称,或者统计次数大于预设数目阈值(第一阈值)的名称;又如,该第二黑名单包括历史数据中识别为模拟器的终端所连接的路由器的MAC地址中统计次数较多的MAC地址或者由该MAC地址组成的MAC地址集合,比如统计次数最多的前N(N为大于0的整数,如取50)个MAC地址,或者统计次数大于预设数目阈值(第二阈值)的MAC地址,或者由这些MAC地址确定的MAC地址集合,等等,本申请不做限定。其中,该第一阈值和第二阈值可以预先设置得到。
规则5:待识别终端的中央处理器CPU的生产商标识与预置的白名单中的所有生产商标识均不相同;
其中,该白名单中可包括一个或多个合法的CPU生产商的标识。
规则6:待识别终端中未配置有预设模块,该预设模块包括蓝牙模块、温度传感器、光线传感器中的一个或多个;
其中,该预设模块可以为根据历史数据统计的识别为模拟器的终端中没有配置的模块,如蓝牙模块、温度传感器、光线传感器。因此如果识别到终端没有配置该预设模块,则可能为模拟器。
规则7:待识别终端的内存空间值小于预设内存阈值;
规则8:待识别终端安装的应用的第一数目小于预设的第一数目阈值;
规则9:待识别终端存储的文件的第二数目小于预设的第二数目阈值;
其中,该第一数目阈值和第二数目阈值可以预先设置得到。
规则10:待识别终端使用的网络制式与预设的网络制式列表中的所有网络制式均不相同;
可选的,识别设备可以结合待识别终端如目标终端所在的目标区域确定哪些是正常的网络制式,比如通过预先配置不同区域及其对应的网络制式列表,来确定与该目标区域对应的网络制式列表,该网络制式列表中的网络制式即为该目标区域的正常网络制式。如果检测到该目标终端使用的网络制式不为其对应的网络制式列表中的网络制式,则该目标终端可能运行于模拟器环境,因为模拟器可能篡改网络制式信息。
规则11:待识别终端的系统中存在预设路径和名称的系统文件;
如果目标终端中存在异常的系统文件,则可能为模拟器。例如,该异常的系统文件可包括以下路径和名称的系统文件:/dev/qemu_pipe、/dev/socket/qemud、/system/lib/libc_malloc_debug_qemu.so、/sys/qemu_trace、/proc/tty/drivers/goldfish等等。
规则12:待识别终端的运行状态为root状态。如果检测到目标终端处于Androidroot状态,则可能为模拟器。
其中,该待识别终端即为需要通过确定其设备信息命中的模拟器识别规则以进行模拟器识别的终端,如上述的目标终端。例如,对于登录场景,设置的模拟器识别规则可以是单一的模拟器识别规则如上述的规则3或4,以快速识别是否为模拟器。又如,对于APP优惠领取等场景,设置的模拟器识别规则可以是单一的模拟器识别规则如上述的规则1或2,以便于在快速识别是否为模拟器的同时,确保识别可靠性,等等,此处不一一列举。
103、获取该目标终端的设备信息,并检测该目标终端的设备信息是否命中该目标模拟器识别规则。
其中,设备信息命中模拟器识别规则也可以称为设备信息满足模拟器识别规则或符合模拟器识别规则等等,此处不一一列举。
可选的,该获取的目标终端的设备信息可包括该目标终端连接的Wi-Fi热点的路由器的名称、该路由器的MAC地址、该目标终端的型号、品牌、CPU的生产商标识、内存空间值、安装的应用的第一数目、存储的文件的第二数目、使用的网络制式、运行状态中的任一项或多项,且该目标模拟器识别规则对应的设备信息为该目标终端的设备信息中的部分信息。例如,在进行模拟器识别时,识别设备可通过获取目标终端的设备底层多项设备信息,比如该设备信息可包括以下一项或多项:连接的Wi-Fi热点的路由器信息(包括路由器名称(或Wi-Fi名称)如Wi-Fi ssid,路由器MAC地址(或Wi-Fi MAC地址)如Wi-Fi 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加载的动态链接库列表等等。该识别设备可根据该目标模拟器识别规则使用该获取的设备信息项中与该目标模拟器识别规则对应的部分信息用于模拟器识别,即获取的设备信息项多于需要使用到的设备信息项,使得非法分子无法确定具体使用哪些信息来进行模拟器识别的,这就有助于防止非法分子了解到某一识别规则后篡改相关设备信息导致无法及时识别模拟器的情况的发生,即防止识别规则被破解,使得提升了模拟器识别的可靠性。
或者,可选的,该目标终端的设备信息为该目标模拟器识别规则对应的设备信息。也就是说,识别设备可仅获取用于进行模拟器识别的设备信息,即该目标模拟器识别规则对应的设备信息,以进行模拟器识别,而不必获取其他的设备信息,这就节省了设备开销。
104、当该目标终端的设备信息命中该目标模拟器识别规则时,确定该目标终端运行于模拟器环境。
在确定出目标终端所处的目标风控场景对应的目标模拟器识别规则并获取设备信息之后,即可检测该设备信息是否命中该目标模拟器识别规则,如果命中,则可识别为模拟器,即目标终端运行于模拟器环境中。例如,假设预先设置的风控场景1如APP优惠领取场景对应的模拟器识别规则为上述的规则5,风控场景2如交易场景对应的模拟器识别规则为上述的规则2,风控场景3如登录场景对应的模拟器识别规则为上述的规则3。如果检测到目标终端所处的目标风控场景为登录场景,则可获取该规则3对应的设备信息即包括该目标终端的型号的设备信息,进而可检测该目标终端的型号是否与该第三黑名单中的终端型号相同。如果该目标终端的型号与该第三黑名单的任一终端型号相同,即该设备信息命中该目标模拟器识别规则时,即可确定该目标终端运行于模拟器环境。
在本发明实施例中,识别设备能够通过获取终端所处的风控场景,进而根据预设的不同风控场景和模拟器识别规则的对应关系,确定出与该终端所处的风控场景对应的模拟器识别规则并获取该终端的设备信息后,通过检测该设备信息是否命中该确定出的模拟器识别规则以进行模拟器识别。本发明实施例能够结合不同风控场景进行模拟器识别,有助于防止非法分子了解到某一识别规则后篡改相关设备信息导致无法及时识别模拟器的情况的发生,提升了模拟器识别的灵活性和准确性。
请参见图2,图2是本发明实施例提供的另一种模拟器识别方法的流程示意图。具体的,如图2所示,该模拟器识别方法可以包括以下步骤:
201、获取目标终端所处的目标风控场景。
202、根据预设的不同风控场景和模拟器识别规则的对应关系,从预设的多个模拟器识别规则中确定出与该目标风控场景对应的目标模拟器识别规则。
具体的,该步骤201-202的描述可参照上述图1所示实施例中步骤101-102的相关描述,此处不赘述。
可选的,在设置不同风控场景对应的模拟器识别规则时,每一风控场景对应的模拟器识别规则可以设置为一个或多个,即可预先设置得到每一风控场景和一个或多个模拟器识别规则的对应关系。从而在某些风控场景下,比如风险等级较高的风控场景,或者比较重要的风控场景如预设的特定APP下的风控场景,通过为其设置的多个模拟器识别规则来进行模拟器识别,则能够进一步提升模拟器识别的可靠性,避免非法分子了解到某一识别规则后篡改相关设备信息导致无法及时识别模拟器的情况的发生。
进一步可选的,如果为一风控场景设置了多个模拟器识别规则,还可进一步设置该多个模拟器识别规则的切换条件,比如按照预设的时间间隔在该多个模拟器识别规则中随机切换。进一步的,还可设置该多个模拟器识别规则的切换顺序,比如预先设置该多个模拟器识别规则的优先级,在切换模拟器识别规则时,按照优先级由高到低切换或者由低到高进行切换等等。从而能够进一步提升模拟器识别的可靠性。
203、获取该目标终端的设备信息。
其中,该获取的设备信息包括该目标模拟器识别规则对应的设备信息(可以仅包括这部分信息,也可以获取包括其他信息,此处不赘述),即使用该目标模拟器识别需用到的设备信息。可选的,与该目标风控场景对应的目标模拟器识别规则可以为一个或多个。
204、当与该目标风控场景对应的目标模拟器识别规则存在多个时,按照预设的时间间隔和预设的多个该目标模拟器识别规则的优先级,依次检测该目标终端的设备信息是否命中多个该目标模拟器识别规则。
在进行模拟器识别时,在目标终端所处的目标风控场景对应多个目标模拟器识别规则时,识别设备可按照预设的时间间隔切换目标模拟器识别规则以实现模拟器识别。该切换可以是随机切换或者按照特定切换顺序切换。例如,识别设备可按照预设的该多个目标模拟器识别规则的优先级来进行切换,以进行模拟器识别,使得模拟器识别可靠性较高。
可选的,当存在多个目标模拟器识别规则时,每个目标模拟器识别规则对应的设备信息可以确定该目标风控场景对应的多个目标模拟器识别规则之后一起获取,或者,也可以分别获取,比如在达到一目标模拟器识别规则的使用条件之后再获取,本申请不做限定。
205、当该目标终端的设备信息命中任一目标模拟器识别规则时,停止检测,并确定该目标终端运行于模拟器环境。
具体的,当存在多个目标模拟器识别规则,并在该多个目标模拟器识别规则进行切换以进行模拟器识别,检测到对应的设备信息命中该多个目标该模拟器识别规则中的任一目标模拟器识别规则时,即可确定该目标终端运行于模拟器环境中,并可停止执行检测该目标终端的设备信息是否命中多个该目标模拟器识别规则的步骤,以减小设备开销。或者,为了进一步提升模拟器识别的可靠性,还可以在检测到该设备信息命中该多个目标该模拟器识别规则中的F(F为大于1的正整数)个目标模拟器识别规则时,再确定该目标终端运行于模拟器环境,并可停止检测,此处不赘述。例如,目标终端的设备信息命中该目标模拟器识别规则,包括:该终端连接的Wi-Fi热点的路由器的名称与预置的第一黑名单内的路由器名称相同;或者,该目标终端连接的Wi-Fi热点的路由器的MAC地址处于预置的第二黑名单内的MAC地址集合;或者,该目标终端的型号与预置的第三黑名单内的任一终端型号相同;或者,该目标终端的品牌与预置的第四黑名单内的任一终端品牌相同;或者,该目标终端的中央处理器CPU的生产商标识与预置的白名单中的所有生产商标识均不相同;或者,该目标终端中未配置有预设模块,该预设模块包括蓝牙模块、温度传感器、光线传感器中的一个或多个;或者,该目标终端的内存空间值小于预设内存阈值;或者,该目标终端安装的应用的第一数目小于预设的第一数目阈值;或者,该目标终端存储的文件的第二数目小于预设的第二数目阈值;或者,该目标终端使用的网络制式与预设的网络制式列表中的所有网络制式均不相同;或者,该目标终端的系统中存在预设路径和名称的系统文件;或者,该目标终端的运行状态为root状态,此处不赘述。
举例来说,假设预先设置了上述的12个模拟器识别规则,预设的与风控场景1如APP优惠领取场景对应的模拟器识别规则为规则1、7、9,预设的与风控场景2如登录场景对应的模拟器识别规则为规则3,预设的与风控场景3如交易场景对应的模拟器识别规则为规则3、4、5、6。如果目标终端所处的目标风控场景为交易场景,则识别设备可按照预设的时间间隔如10min在该规则3、4、5、6中动态地随机切换模拟器识别规则,检测目标终端的设备信息是否命中对应的规则,比如依次采用规则3、规则4、规则5、规则6进行模拟器识别。或者,假设预先设置该规则3的优先级高于规则5的优先级,规则5的优先级高于规则4的优先级,规则4的优先级高于规则6的优先级,则识别设备可依次采用规则3、规则5、规则4、规则6进行模拟器识别,此处不赘述。
在其他可选的实施例中,识别设备还可仅按照预设时间间隔动态变换识别规则,通过动态变换模拟器识别规则的方式,可以进一步提升模拟器识别的可靠性,避免非法分子了解到某一识别规则后篡改相关设备信息导致无法及时识别模拟器的情况的发生。
在本发明实施例中,在进行模拟器识别时,识别设备能够通过获取终端所处的风控场景,进而根据预设的不同风控场景和模拟器识别规则的对应关系,确定出与该终端所处的风控场景对应的模拟器识别规则,如果确定出的模拟器识别规则存在多个,识别设备还可动态的变换识别规则,比如按照预设时间间隔和规则的优先级进行动态变换,这就提升了模拟器识别的可靠性,有助于防止非法分子了解到某一识别规则后篡改相关设备信息导致无法及时识别模拟器的情况的发生。
请参见图3,图3是本发明实施例提供的又一种模拟器识别方法的流程示意图。具体的,如图3所示,该模拟器识别方法可以包括以下步骤:
301、获取目标终端所处的目标风控场景。
302、根据预设的不同风控场景和模拟器识别规则的对应关系,从预设的多个模拟器识别规则中确定出与该目标风控场景对应的目标模拟器识别规则。
具体的,该步骤301-302的描述可参照上述图1所示实施例中步骤101-102、图2所示实施例中步骤201-202的相关描述,此处不赘述。
303、获取该目标终端的设备信息。
其中,获取的设备信息的相关描述可参照上述实施例的相关描述,此处不赘述。
304、获取该目标终端的设备信息对应的目标函数的flag值,并根据该flag值确定该目标函数是否被hook。
可选的,在该获取该目标终端的设备信息之后,以及检测该目标终端的设备信息是否命中该目标模拟器识别规则之前,即在根据设备信息进行模拟器识别之前,识别设备还可检测用于进行模拟器识别的设备信息是否被篡改,以确保基于真实的设备信息进行模拟器识别。其中,该检测是否被篡改的设备信息可以仅为该目标模拟器识别规则对应的设备信息,以减小设备开销。
具体的,识别设备能够通过检测设备信息对应的函数是否被hook来识别该篡改行为。其中,该flag值可用于标记所述目标函数的状态,该状态可以是指是否被篡改的状态,或者可以是指读写状态、阻塞与非阻塞状态、退出进程或程序的状态和/或更改文件的内容的状态等等,从而能够根据该flag值确定出该目标函数是否被hook。每一个函数都有对应的flag,该flag为一个变量,当某一函数被hook时,该函数对应的flag会发生改变。由此,识别设备可通过检测函数的flag是否发生改变,来确定该函数是否被hook,也即该函数对应的设备信息是否被篡改。其中,该flag的值可以是存储于该目标函数对应的内存中。
可选的,在根据该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检测的方式的对应关系可预先设置得到。
305、当确定该目标函数被hook时,从该目标函数的内存中获取该目标函数对应的目标函数指针。
其中,该函数指针和被hook的函数是存储于同一块内存的不同字段中的,且不同函数指针和原始函数存在映射关系,或者说不同函数指针和原始函数的存储地址存在映射关系。
可选的,在确定该目标函数被hook之后,还可对该被hook的目标函数进行还原,以便于确定出该目标函数对应的真实设备信息。具体的,在确定某一函数如该目标函数被hook之后,可从其内存中快速获取该目标函数对应的函数指针,即上述的目标函数指针,以便于根据该目标函数指针确定出该目标函数对应的原始函数如原生API,即未被hook的真实函数。
306、根据预先存储的各函数指针和函数的对应关系,确定出该目标函数指针对应的原始函数,并根据该原始函数确定出原始设备信息。
在确定出该目标函数对应的内存中的目标函数指针之后,即可进一步确定出该目标函数指针对应的原始函数,即真实的Method。进而可通过该原始函数替换该目标函数,实现对被hook的函数的还原。从而识别设备可通过该原始函数确定出该目标终端对应的真实设备信息,以基于真实设备信息进行模拟器识别,也就是说,本发明实施例可在检测到设备信息被篡改时及时地获取真实的设备信息,以基于真实的设备信息进行模拟器识别,由此提升了模拟器识别的准确性和可靠性。
应理解,该内存中存储的原始函数指针是不会被篡改的,根据Xposed插件的工作原理,在篡改目标函数之前,会将函数的原始信息备份下来,并保存在内存中的特定地址,即该目标函数指针指向的地址。而一旦这些备份信息也被篡改,那Xposed插件将无法正常工作。因此,在该目标函数指针指向的特定地址获取到的原始函数,一定是正确的函数,其不会被篡改。
307、检测该原始设备信息是否命中该目标模拟器识别规则。
308、当该目标终端的设备信息命中该目标模拟器识别规则时,确定该目标终端运行于模拟器环境。
在确定出真实的原始设备信息之后,即可确定该原始设备信息是否命中对应的目标模拟器识别规则,进而根据命中结果来进行模拟器识别,识别方式与上述根据设备信息和目标模拟器识别规则进行模拟器识别的方式类似,具体请参照上述图1所示实施例中步骤103-104以及图2所示实施例中步骤204-205的相关描述,此处不赘述。
例如,假设确定出目标终端所处的目标风控场景对应的模拟器识别规则为上述的规则1,该设备信息包括该路由器的名称。如果检测到该路由器的名称对应的函数被hook,即可还原得到真实的原始路由器的名称,进而可以基于该真实的原始路由器的名称以进行模拟器识别。即检测该原始路由器的名称是否与该第一黑名单内的路由器名称相同,如果相同,则可确定命中该规则1,确定该目标终端运行于模拟器环境。
可选的,如果确定目标终端运行在模拟器环境中,识别设备可生成告警信息,以进行风控。例如,该告警信息可以包括:风险等级、用户信息、设备恶意行为中的一项或多项。其中,该风险等级可以根据终端的目标风控场景确定出,具体可预先设置得到不同风控场景和风险等级的对应关系;或者,该风险等级可以根据终端目标运行的应用确定出,具体可预先设置得到不同应用和风险等级的对应关系;或者,该风险等级还可根据终端被hook的函数的数目确定出,具体可预先设置得到不同hook数目和风险等级的对应关系;或者,该风险等级还可根据终端被篡改的设备信息的优先级确定出,具体可预先设置得到不同设备信息的优先级,以及各优先级和风险等级的对应关系,等等,本申请不做限定。例如,该风险等级可以分为高危、中危、低危,或者一级、二级、三级等等。该用户信息可包括用户标识(UserIdentification,UID)、手机号码、身份证号码(如果注册应用时采集到的话)等。该恶意行为可包括篡改MAC地址、篡改CPU生产商、篡改手机型号及品牌、篡改手机号码等等,具体可通过上述的hook检测确定出。
此外,可选的,识别设备还可根据该告警信息,向目标终端下发指令,以对目标终端(如终端上运行的APP客户端)上的操作进行控制。例如,如果识别设备确定该风险等级为低危,识别设备可以下发指令指示客户端输出提示,要求用户输入验证信息,验证方式包括但不限于短信验证码、图片验证码等方式。如果验证未通过则无法进行后续操作。又如,如果识别设备确定该风险等级为中危,识别设备可以下发指令指示客户端禁止用户在目标风控场景(例如登录、领取红包、兑换优惠券、消费、转账等等)的请求访问操作。又如,如果识别设备确定该风险等级为高危,识别设备可以下发指令指示客户端禁止用户一切请求访问操作,等等,此处不一一列举。
例如,对于某些手机游戏,使用模拟器可以获得比手机更强的性能(实际上属于游戏作弊),本申请能够通过上述的识别方式识别出游戏应用是否运行在模拟器环境中,能够及时的发现运行于模拟器中的游戏行为,进而可制止该行为,防止作弊给用户带来的损失。
又如,某一金融机构推出的小额贷款的风控策略是仅允许特定区域的用户如北上广的用户贷款,非法用户可能使用模拟器修改GPS定位,达到绕过风控策略的目的,骗取贷款。由此,本申请可通过上述的识别方式识别出设备是否运行于模拟器环境,并在确定设备运行于模拟器环境之后,拒绝该用户的贷款请求。进一步的,本申请还可采用上述的hook检测方式对该GPS定位进行还原,以获取得到用户的真实定位信息。
又如,非法分子通过在模拟器中设置手机型号、品牌、厂商等信息,实现一个模拟器软件模拟多台不同安卓手机的目的,从而创建假身份骗取优惠活动、注册奖励等等。通过本申请,能够根据上述的hook检测方式确定手机型号、品牌、厂商等信息被篡改后,还原真实的手机型号、品牌、厂商等信息并进行模拟器识别,进而能够及时地识别出设备操作是否运行在模拟器环境中,并在识别出运行在模拟器环境中时能够及时地制止该行为,避免给合法用户造成损失。
在本发明实施例中,识别设备能够通过获取终端所处的风控场景,进而根据预设的不同风控场景和模拟器识别规则的对应关系,确定出与该终端所处的风控场景对应的模拟器识别规则并获取该终端的设备信息后,通过识别设备信息是否被篡改,并在检测到被篡改时及时地还原真实的设备信息,以基于真实的设备信息和该确定出的模拟器识别规则进行模拟器识别,这就提升了模拟器识别的准确性。
上述方法实施例都是对本申请的模拟器识别方法的举例说明,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
请参见图4,图4是本发明实施例提供的一种识别设备的结构示意图。本发明实施例的识别设备包括用于执行上述模拟器识别方法的单元。具体的,本实施例的识别设备400可包括:获取单元401和处理单元402。其中,
获取单元401,用于获取识别目标终端所处的目标风控场景;
处理单元402,用于根据预设的不同风控场景和模拟器识别规则的对应关系,从预设的多个模拟器识别规则中确定出与所述目标风控场景对应的目标模拟器识别规则,所述多个模拟器识别规则是根据历史记录中运行于模拟器环境的终端的设备信息确定出的;
获取单元401,还用于获取所述目标终端的设备信息;
所述处理单元402,用于检测所述目标终端的设备信息是否命中所述目标模拟器识别规则,并在所述目标终端的设备信息命中所述目标模拟器识别规则时,确定所述目标终端运行于模拟器环境。
可选的,所述处理单元402,具体用于当与所述目标风控场景对应的目标模拟器识别规则存在多个时,按照预设的时间间隔和预设的多个所述目标模拟器识别规则的优先级,依次检测所述目标终端的设备信息是否命中多个所述目标模拟器识别规则;当所述目标终端的设备信息命中多个所述目标模拟器识别规则中任一目标模拟器识别规则时,停止检测,并确定所述目标终端运行于模拟器环境。
可选的,所述目标终端的设备信息包括所述目标终端连接的无线保真Wi-Fi热点的路由器的名称、所述路由器的媒体访问控制MAC地址、所述目标终端的型号、品牌、中央处理器CPU的生产商标识、内存空间值、安装的应用的第一数目、存储的文件的第二数目、使用的网络制式、运行状态中的任一项或多项,且所述目标模拟器识别规则对应的设备信息为所述目标终端的设备信息中的部分信息;或者,所述目标终端的设备信息为所述目标模拟器识别规则对应的设备信息。
可选的,所述目标终端的设备信息命中所述目标模拟器识别规则,包括:
所述终端连接的Wi-Fi热点的路由器的名称与预置的第一黑名单内的路由器名称相同;或者,
所述目标终端连接的Wi-Fi热点的路由器的MAC地址处于预置的第二黑名单内的MAC地址集合;或者,
所述目标终端的型号与预置的第三黑名单内的任一终端型号相同;或者,
所述目标终端的品牌与预置的第四黑名单内的任一终端品牌相同;或者,
所述目标终端的中央处理器CPU的生产商标识与预置的白名单中的所有生产商标识均不相同;或者,
所述目标终端中未配置有预设模块,所述预设模块包括蓝牙模块、温度传感器、光线传感器中的一个或多个;或者,
所述目标终端的内存空间值小于预设内存阈值;或者,
所述目标终端安装的应用的第一数目小于预设的第一数目阈值;或者,
所述目标终端存储的文件的第二数目小于预设的第二数目阈值;或者,
所述目标终端使用的网络制式与预设的网络制式列表中的所有网络制式均不相同;或者,
所述目标终端的系统中存在预设路径和名称的系统文件;或者,
所述目标终端的运行状态为root状态。
可选的,所述识别设备还包括:hook检测单元403和还原单元404;
所述获取单元401,还用于在所述获取所述目标终端的设备信息之后,获取所述目标终端的设备信息对应的目标函数的flag值;
hook检测单元403,用于根据所述flag值确定所述目标函数是否被hook;
所述获取单元401,还用于当确定所述目标函数被hook时,从所述目标函数的内存中获取所述目标函数对应的目标函数指针;
还原单元404,用于根据预先存储的各函数指针和函数的对应关系,确定出所述目标函数指针对应的原始函数,并根据所述原始函数确定出原始设备信息;
所述处理单元402,具体用于检测所述原始设备信息是否命中所述目标模拟器识别规则。
可选的,所述hook检测单元403,具体用于将所述flag值中的预设位置处的字符与预设的固定字符进行比较,所述预设位置处的字符的字符数与所述固定字符的字符数相同;当比较得到所述预设位置处的字符与所述固定字符不同时,确定所述目标函数被hook。
可选的,所述hook检测单元403,具体用于按照预设的逻辑算法对所述flag值进行逻辑运算,以得到运算结果值,其中,所述逻辑算法是根据预设字符串和系统中的原生函数执行时的跳转地址确定的;当所述运算结果值为正整数时,确定所述目标函数被hook。
具体的,该识别设备可通过上述单元实现上述图1至图3所示实施例中的模拟器识别方法中的部分或全部步骤。应理解,本发明实施例是对应方法实施例的装置实施例,对方法实施例的描述,也适用于本发明实施例。
在本发明实施例中,识别设备能够通过获取终端所处的风控场景,进而根据预设的不同风控场景和模拟器识别规则的对应关系,确定出与该终端所处的风控场景对应的模拟器识别规则并获取该终端的设备信息后,通过检测该设备信息是否命中该确定出的模拟器识别规则以进行模拟器识别,使得能够结合不同风控场景进行模拟器识别,有助于防止非法分子了解到某一识别规则后篡改相关设备信息导致无法及时识别模拟器的情况的发生,提升了模拟器识别的灵活性和准确性。
请参见图5,图5是本发明实施例提供的另一种识别设备的结构示意图。该识别设备用于执行上述的方法。如图5所示,本实施例中的识别设备500可以包括:一个或多个处理器501和存储器502。可选的,该识别设备还可包括一个或多个用户接口503,和/或,一个或多个通信接口504。上述处理器501、用户接口503、通信接口504和存储器502可通过总线505连接,或者可以通过其他方式连接,图5中以总线方式进行示例说明。其中,存储器502用于存储计算机程序,所述计算机程序包括程序指令,处理器501用于执行存储器502存储的程序指令。
其中,处理器501可用于调用所述程序指令执行以下步骤:识别目标终端所处的目标风控场景;根据预设的不同风控场景和模拟器识别规则的对应关系,从预设的多个模拟器识别规则中确定出与所述目标风控场景对应的目标模拟器识别规则,所述多个模拟器识别规则是根据历史记录中运行于模拟器环境的终端的设备信息确定出的;获取所述目标终端的设备信息,并检测所述目标终端的设备信息是否命中所述目标模拟器识别规则;当所述目标终端的设备信息命中所述目标模拟器识别规则时,确定所述目标终端运行于模拟器环境。
可选的,处理器501调用所述程序指令执行所述检测所述目标终端的设备信息是否命中所述目标模拟器识别规则时,具体执行以下步骤:当与所述目标风控场景对应的目标模拟器识别规则存在多个时,按照预设的时间间隔和预设的多个所述目标模拟器识别规则的优先级,依次检测所述目标终端的设备信息是否命中多个所述目标模拟器识别规则;
处理器501调用所述程序指令执行所述当所述目标终端的设备信息命中所述目标模拟器识别规则时,确定所述目标终端运行于模拟器环境时,具体执行以下步骤:当所述目标终端的设备信息命中多个所述目标模拟器识别规则中任一目标模拟器识别规则时,停止检测,并确定所述目标终端运行于模拟器环境。
可选的,所述目标终端的设备信息包括所述目标终端连接的无线保真Wi-Fi热点的路由器的名称、所述路由器的媒体访问控制MAC地址、所述目标终端的型号、品牌、中央处理器CPU的生产商标识、内存空间值、安装的应用的第一数目、存储的文件的第二数目、使用的网络制式、运行状态中的任一项或多项,且所述目标模拟器识别规则对应的设备信息为所述目标终端的设备信息中的部分信息;或者,所述目标终端的设备信息为所述目标模拟器识别规则对应的设备信息。
可选的,所述目标终端的设备信息命中所述目标模拟器识别规则,包括:所述终端连接的Wi-Fi热点的路由器的名称与预置的第一黑名单内的路由器名称相同;或者,所述目标终端连接的Wi-Fi热点的路由器的MAC地址处于预置的第二黑名单内的MAC地址集合;或者,所述目标终端的型号与预置的第三黑名单内的任一终端型号相同;或者,所述目标终端的品牌与预置的第四黑名单内的任一终端品牌相同;或者,所述目标终端的中央处理器CPU的生产商标识与预置的白名单中的所有生产商标识均不相同;或者,所述目标终端中未配置有预设模块,所述预设模块包括蓝牙模块、温度传感器、光线传感器中的一个或多个;或者,所述目标终端的内存空间值小于预设内存阈值;或者,所述目标终端安装的应用的第一数目小于预设的第一数目阈值;或者,所述目标终端存储的文件的第二数目小于预设的第二数目阈值;或者,所述目标终端使用的网络制式与预设的网络制式列表中的所有网络制式均不相同;或者,所述目标终端的系统中存在预设路径和名称的系统文件;或者,所述目标终端的运行状态为root状态。
可选的,处理器501在调用所述程序指令执行所述获取所述目标终端的设备信息之后,以及执行所述检测所述目标终端的设备信息是否命中所述目标模拟器识别规则之前,还用于执行以下步骤:获取所述目标终端的设备信息对应的目标函数的flag值,并根据所述flag值确定所述目标函数是否被hook;当确定所述目标函数被hook时,从所述目标函数的内存中获取所述目标函数对应的目标函数指针;根据预先存储的各函数指针和函数的对应关系,确定出所述目标函数指针对应的原始函数,并根据所述原始函数确定出原始设备信息;
处理器501调用所述程序指令执行所述检测所述目标终端的设备信息是否命中所述目标模拟器识别规则时,具体执行以下步骤:检测所述原始设备信息是否命中所述目标模拟器识别规则。
可选的,处理器501在调用所述程序指令执行所述根据所述flag值确定所述目标函数是否被hook时,具体执行以下步骤:将所述flag值中的预设位置处的字符与预设的固定字符进行比较,所述预设位置处的字符的字符数与所述固定字符的字符数相同;当比较得到所述预设位置处的字符与所述固定字符不同时,确定所述目标函数被hook。
可选的,处理器501在调用所述程序指令执行所述根据所述flag值确定所述目标函数是否被hook时,具体执行以下步骤:按照预设的逻辑算法对所述flag值进行逻辑运算,以得到运算结果值,其中,所述逻辑算法是根据预设字符串和系统中的原生函数执行时的跳转地址确定的;当所述运算结果值为正整数时,确定所述目标函数被hook。
其中,所述处理器501可以是中央处理单元(Central Processing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
用户接口503可包括输入设备和输出设备,输入设备可以包括触控板、麦克风等,输出设备可以包括显示器(LCD等)、扬声器等。
通信接口504可包括接收器和发射器,用于与其他设备进行通信。
存储器502可以包括只读存储器和随机存取存储器,并向处理器501提供指令和数据。存储器502的一部分还可以包括非易失性随机存取存储器。例如,存储器502还可以存储上述的函数指针和函数的对应关系等等。
具体实现中,本发明实施例中所描述的处理器501等可执行上述图1至图3所示的方法实施例中所描述的实现方式,也可执行本发明实施例图4所描述的各单元的实现方式,此处不赘述。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现图1至图3所对应实施例中描述的模拟器识别方法中的部分或全部步骤,也可实现本发明图4或图5所示实施例的识别设备的流程或功能,此处不赘述。
本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述方法中的部分或全部步骤。
所述计算机可读存储介质可以是前述任一实施例所述的识别设备的内部存储单元,例如识别设备的硬盘或内存。所述计算机可读存储介质也可以是所述识别设备的外部存储设备,例如所述识别设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。
在本申请中,术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
以上所述,仅为本发明的部分实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。

Claims (10)

1.一种模拟器识别方法,其特征在于,包括:
识别目标终端所处的目标风控场景;
根据预设的不同风控场景和模拟器识别规则的对应关系,从预设的多个模拟器识别规则中确定出与所述目标风控场景对应的目标模拟器识别规则,所述多个模拟器识别规则是根据历史记录中运行于模拟器环境的终端的设备信息确定出的;
获取所述目标终端的设备信息,并检测所述目标终端的设备信息是否命中所述目标模拟器识别规则;所述目标终端的设备信息包括所述目标模拟器识别规则对应的设备信息;
当所述目标终端的设备信息命中所述目标模拟器识别规则时,确定所述目标终端运行于模拟器环境;
其中,风险等级高的风控场景或者特定的风控场景对应的目标模拟器识别规则的数量为多个,所述多个目标模拟器识别规则包括如下至少两个:
目标终端连接的Wi-Fi热点的路由器的名称与预置的第一黑名单内的路由器名称相同;
所述目标终端连接的Wi-Fi热点的路由器的MAC地址处于预置的第二黑名单内的MAC地址集合;
所述目标终端安装的应用的第一数目小于预设的第一数目阈值;
所述目标终端存储的文件的第二数目小于预设的第二数目阈值;
所述目标终端使用的网络制式与预设的网络制式列表中的所有网络制式均不相同;
所述目标终端的系统中存在预设路径和名称的系统文件;
所述目标终端的运行状态为root状态。
2.根据权利要求1所述的方法,其特征在于,所述检测所述目标终端的设备信息是否命中所述目标模拟器识别规则,包括:
当与所述目标风控场景对应的目标模拟器识别规则存在多个时,按照预设的时间间隔和预设的多个所述目标模拟器识别规则的优先级,依次检测所述目标终端的设备信息是否命中多个所述目标模拟器识别规则;
所述当所述目标终端的设备信息命中所述目标模拟器识别规则时,确定所述目标终端运行于模拟器环境,包括:
当所述目标终端的设备信息命中多个所述目标模拟器识别规则中任一目标模拟器识别规则时,停止检测,并确定所述目标终端运行于模拟器环境。
3.根据权利要求1所述的方法,其特征在于,
所述目标终端的设备信息包括所述目标终端连接的无线保真Wi-Fi热点的路由器的名称、所述路由器的媒体访问控制MAC地址、所述目标终端的型号、品牌、中央处理器CPU的生产商标识、内存空间值、安装的应用的第一数目、存储的文件的第二数目、使用的网络制式、运行状态中的任一项或多项,且所述目标模拟器识别规则对应的设备信息为所述目标终端的设备信息中的部分信息;或者,
所述目标终端的设备信息为所述目标模拟器识别规则对应的设备信息。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述目标终端的设备信息命中所述目标模拟器识别规则,还包括:
所述目标终端的型号与预置的第三黑名单内的任一终端型号相同;或者,
所述目标终端的品牌与预置的第四黑名单内的任一终端品牌相同;或者,
所述目标终端的中央处理器CPU的生产商标识与预置的白名单中的所有生产商标识均不相同;或者,
所述目标终端中未配置有预设模块,所述预设模块包括蓝牙模块、温度传感器、光线传感器中的一个或多个;或者,
所述目标终端的内存空间值小于预设内存阈值。
5.根据权利要求1所述的方法,其特征在于,在所述获取所述目标终端的设备信息之后,以及所述检测所述目标终端的设备信息是否命中所述目标模拟器识别规则之前,所述方法还包括:
获取所述目标终端的设备信息对应的目标函数的flag值,并根据所述flag值确定所述目标函数是否被hook;
当确定所述目标函数被hook时,从所述目标函数的内存中获取所述目标函数对应的目标函数指针;
根据预先存储的各函数指针和函数的对应关系,确定出所述目标函数指针对应的原始函数,并根据所述原始函数确定出原始设备信息;
所述检测所述目标终端的设备信息是否命中所述目标模拟器识别规则,包括:
检测所述原始设备信息是否命中所述目标模拟器识别规则。
6.根据权利要求5所述的方法,其特征在于,所述根据所述flag值确定所述目标函数是否被hook,包括:
将所述flag值中的预设位置处的字符与预设的固定字符进行比较,所述预设位置处的字符的字符数与所述固定字符的字符数相同;
当比较得到所述预设位置处的字符与所述固定字符不同时,确定所述目标函数被hook。
7.根据权利要求5所述的方法,其特征在于,所述根据所述flag值确定所述目标函数是否被hook,包括:
按照预设的逻辑算法对所述flag值进行逻辑运算,以得到运算结果值,其中,所述逻辑算法是根据预设字符串和系统中的原生函数执行时的跳转地址确定的;
当所述运算结果值为正整数时,确定所述目标函数被hook。
8.一种识别设备,其特征在于,包括用于执行如权利要求1-7任一项权利要求所述的方法的单元。
9.一种识别设备,其特征在于,包括处理器、用户接口、通信接口和存储器,所述处理器、用户接口、通信接口和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-7任一项所述的方法。
CN201810851413.9A 2018-07-27 2018-07-27 一种模拟器识别方法、识别设备及计算机可读介质 Active CN109144665B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201810851413.9A CN109144665B (zh) 2018-07-27 2018-07-27 一种模拟器识别方法、识别设备及计算机可读介质
PCT/CN2018/107746 WO2020019483A1 (zh) 2018-07-27 2018-09-26 一种模拟器识别方法、识别设备及计算机可读介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810851413.9A CN109144665B (zh) 2018-07-27 2018-07-27 一种模拟器识别方法、识别设备及计算机可读介质

Publications (2)

Publication Number Publication Date
CN109144665A CN109144665A (zh) 2019-01-04
CN109144665B true CN109144665B (zh) 2023-04-18

Family

ID=64799251

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810851413.9A Active CN109144665B (zh) 2018-07-27 2018-07-27 一种模拟器识别方法、识别设备及计算机可读介质

Country Status (2)

Country Link
CN (1) CN109144665B (zh)
WO (1) WO2020019483A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110248372B (zh) * 2019-04-25 2023-04-11 深圳壹账通智能科技有限公司 一种模拟器检测的方法、装置、存储介质及计算机设备
CN110213341B (zh) * 2019-05-13 2023-06-23 百度在线网络技术(北京)有限公司 应用程序的下载检测方法及装置
CN110334028A (zh) * 2019-07-08 2019-10-15 北京智游网安科技有限公司 一种安卓模拟器检测方法、计算机设备及存储介质
CN111338946B (zh) * 2020-02-24 2023-07-14 北京新氧科技有限公司 安卓模拟器检测方法及装置
CN113392685A (zh) * 2020-09-22 2021-09-14 腾讯科技(深圳)有限公司 图像识别方法、装置、图像识别设备及存储介质
CN112379967B (zh) * 2020-11-12 2023-11-03 抖音视界有限公司 模拟器检测方法、装置、设备及介质
CN112698581A (zh) * 2020-12-25 2021-04-23 东风汽车有限公司 一种车载信号模拟器
CN113282304B (zh) * 2021-05-14 2022-04-29 杭州云深科技有限公司 基于app安装列表识别虚拟机的系统
CN113238946A (zh) * 2021-05-18 2021-08-10 北京达佳互联信息技术有限公司 检测hook框架的方法、装置及电子设备
CN113722197B (zh) * 2021-08-31 2023-10-17 上海观安信息技术股份有限公司 移动终端异常识别方法、系统
CN113902458A (zh) * 2021-12-07 2022-01-07 深圳市活力天汇科技股份有限公司 一种恶意用户的识别方法、装置及计算机设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104134041A (zh) * 2014-07-31 2014-11-05 北京奇虎科技有限公司 终端模拟器系统的反检测方法和反检测装置
US9473522B1 (en) * 2015-04-20 2016-10-18 SafeBreach Ltd. System and method for securing a computer system against malicious actions by utilizing virtualized elements
CN107678834A (zh) * 2017-09-30 2018-02-09 北京梆梆安全科技有限公司 一种基于硬件配置的安卓模拟器检测方法及装置
CN107729749A (zh) * 2017-09-30 2018-02-23 北京梆梆安全科技有限公司 结合系统信息和硬件特性的安卓模拟器检测方法及装置
CN107729121A (zh) * 2017-09-30 2018-02-23 北京梆梆安全科技有限公司 模拟器检测方法及装置
CN108021805A (zh) * 2017-12-18 2018-05-11 上海众人网络安全技术有限公司 检测Android应用程序运行环境的方法、装置、设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106648835B (zh) * 2016-12-26 2020-04-10 武汉斗鱼网络科技有限公司 检测Android应用程序在安卓模拟器中运行的方法及系统
CN107102886A (zh) * 2017-04-14 2017-08-29 北京洋浦伟业科技发展有限公司 安卓模拟器的检测方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104134041A (zh) * 2014-07-31 2014-11-05 北京奇虎科技有限公司 终端模拟器系统的反检测方法和反检测装置
US9473522B1 (en) * 2015-04-20 2016-10-18 SafeBreach Ltd. System and method for securing a computer system against malicious actions by utilizing virtualized elements
CN107678834A (zh) * 2017-09-30 2018-02-09 北京梆梆安全科技有限公司 一种基于硬件配置的安卓模拟器检测方法及装置
CN107729749A (zh) * 2017-09-30 2018-02-23 北京梆梆安全科技有限公司 结合系统信息和硬件特性的安卓模拟器检测方法及装置
CN107729121A (zh) * 2017-09-30 2018-02-23 北京梆梆安全科技有限公司 模拟器检测方法及装置
CN108021805A (zh) * 2017-12-18 2018-05-11 上海众人网络安全技术有限公司 检测Android应用程序运行环境的方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN109144665A (zh) 2019-01-04
WO2020019483A1 (zh) 2020-01-30

Similar Documents

Publication Publication Date Title
CN109144665B (zh) 一种模拟器识别方法、识别设备及计算机可读介质
CN109117250B (zh) 一种模拟器识别方法、识别设备及计算机可读介质
CN109062667B (zh) 一种模拟器识别方法、识别设备及计算机可读介质
CN109561085B (zh) 一种基于设备识别码的身份验证方法、服务器及介质
CN107861814B (zh) 资源配置方法及设备
CN109492378A (zh) 一种基于设备识别码的身份验证方法、服务器及介质
CN109145590B (zh) 一种函数hook检测方法、检测设备及计算机可读介质
US8626125B2 (en) Apparatus and method for securing mobile terminal
EP3178011B1 (en) Method and system for facilitating terminal identifiers
CN110417778B (zh) 访问请求的处理方法和装置
CN103440456B (zh) 一种应用程序安全评估的方法及装置
CN109726067B (zh) 一种进程监控方法以及客户端设备
US9665465B1 (en) Automated determination of application permissions
US10623417B1 (en) Software development kit (SDK) fraud prevention and detection
CN108984339B (zh) 数据恢复方法及相关产品
CN106203092B (zh) 一种拦截恶意程序关机的方法、装置及电子设备
CN112700287A (zh) 一种应用程序的反作弊方法和装置
CN109815702B (zh) 软件行为的安全检测方法、装置及设备
CN110414218B (zh) 内核检测方法、装置、电子设备及存储介质
CN114282212A (zh) 流氓软件识别方法、装置、电子设备及存储介质
KR101874815B1 (ko) Dns 주소의 변조 진단 방법 및 이를 위한 단말 장치
CN112989323B (zh) 进程检测方法、装置、终端及存储介质
CN113596600A (zh) 直播嵌入程序的安全管理方法、装置、设备及存储介质
CN109167785B (zh) 一种虚拟可信根的调用方法和业务服务器
CN110597557A (zh) 一种系统信息获取方法、终端及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant