首页 / 专利库 / 信号处理 / 信号 / 识别Android模拟器的方法及相关设备

识别Android模拟器的方法及相关设备

阅读:906发布:2023-05-29

专利汇可以提供识别Android模拟器的方法及相关设备专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种识别Android 模拟器 的方法及相关设备,该方法包括:检测被识别机器是否存在预设特征文件,其中,被识别机器安装有Android 操作系统 ,对检测结果进行判定得到识别结果,如果检测到存在预设特征文件,则判定被识别机器为模拟器,否则判定被识别机器为真机。该方法通过检测被识别机器是否存在预设的特征文件,来判断被识别机器是否为真机或模拟器,克服了 现有技术 中通过读取CPU的架构信息无法识别被识别机器为真机或模拟器的技术问题,能够准确判定被识别机器为真机还是模拟器。,下面是识别Android模拟器的方法及相关设备专利的具体信息内容。

1.一种识别Android模拟器的方法,其特征在于,包括:
检测被识别机器是否存在预设特征文件,其中,所述被识别机器安装有Android操作系统,所述预设特征文件为多个特征文件中的任意一个;
对检测结果进行判定得到识别结果,如果检测到存在所述预设特征文件,则判定所述被识别机器为模拟器,否则判定所述被识别机器为真机。
2.根据权利要求1所述的方法,其特征在于,还包括:对所述被识别机器进行备选检测,所述备选检测指按照随机顺序从备选检测方案中选择一种或多种检测方案进行识别得到备选识别结果;
当所述被识别机器在所述识别结果和所述备选识别结果中,至少存在两次被识别为模拟器,则判定所述被识别机器为模拟器,否则判定所述被识别机器为真机;
所述备选检测方案包括:CPU架构识别、传感器识别、机器码识别、硬件识别。
3.根据权利要求2所述的方法,其特征在于,所述CPU架构识别具体为:
加载一个不存在的库文件,从系统抛出的异常信息中获取所述被识别机器的CPU架构类型;
如果所述CPU架构类型为X86 CPU,则判定所述被识别机器为模拟器,否则判定所述被识别机器为真机。
4.根据权利要求2所述的方法,其特征在于,所述传感器识别具体为:
检测所述被识别机器上是否存在以下三种传感器:计步传感器、光线传感器以及距离传感器;
如果检测到存在所述三种传感器,则判定所述被识别机器为真机,否则判定所述被识别机器为模拟器。
5.根据权利要求2所述的方法,其特征在于,所述机器码识别具体为:
在所述被识别机器上执行位于特定内存地址的机器码指令;
如果执行返回值等于预定值,则判定所述被识别机器为真机;反之,则判定所述被识别机器为模拟器。
6.根据权利要求2所述的方法,其特征在于,所述硬件识别具体为:
获取所述被识别机器的硬件配置信息;
如果所述硬件配置信息符合预定的目标值,则判定所述被识别机器为真机,否则判定所述被识别机器为模拟器;
其中,所述硬件配置信息包括以下至少一种配置信息:电池电量、手机信号量、位置信息、IMEI值、IMSI值及Build.prop值。
7.一种识别Android模拟器的装置,其特征在于,包括:
第一检测模,用于检测被识别机器是否存在预设特征文件,其中,所述被识别机器安装有Android操作系统,所述预设特征文件为多个特征文件中的任意一个;
识别模块,用于对检测结果进行判定得到识别结果,如果检测到存在所述预设特征文件,则判定所述被识别机器为模拟器,否则判定所述被识别机器为真机。
8.一种识别Android模拟器的设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至6任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如权利要求1至6任一项所述的方法。
10.一种识别Android模拟器的系统,其特征在于,包括终端和服务器
所述终端安装有Android操作系统,所述终端具有处理器,所述处理器用于执行如权利要求1至6任一项所述的方法,并将所述方法的判定结果上传至所述服务器;
所述服务器用于接收所述判定结果,并根据所述判定结果判定所述终端为真机还是模拟器。

说明书全文

识别Android模拟器的方法及相关设备

技术领域

[0001] 本发明涉及Android应用软件技术领域,尤其是涉及一种识别Android模拟器的方法及相关设备。

背景技术

[0002] 现在社会存在各种各样的“羊毛党”,他们通过刷用户量、下载量、阅读量、评论量、广告等进行盈利。因此,APP应用商家有必要对自身的APP进行改进,以防止来自“羊毛党”的侵蚀。
[0003] 其中一个重要预防措施,就是识别用户的操作设备是真机还是模拟器,来识别出作弊用户。然而,“羊毛党”的作弊手段也越来越高明,普通的识别方法,比如通过读取设备文件/proc/cpuinfo来获取操作设备的CPU架构信息,由于作弊用户可以改写该设备文件的参数值,导致读取的CPU架构信息无法真实反映该操作设备的CPU架构。因此,有必要提出一种切实可靠的方法来进行判断APP的操作设备是真机还是模拟器。

发明内容

[0004] 本发明实施例旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明实施例的一个目的是提供一种识别Android模拟器的方法及相关设备。
[0005] 本发明实施例所采用的技术方案是:
[0006] 第一方面,本发明实施例提供一种识别Android模拟器的方法,包括:
[0007] 检测被识别机器是否存在预设特征文件,其中,所述被识别机器安装有Android操作系统,所述预设特征文件为多个特征文件中的任意一个;
[0008] 对检测结果进行判定得到识别结果,如果检测到存在所述预设特征文件,则判定所述被识别机器为模拟器,否则判定为真机。
[0009] 进一步地,对所述被识别机器进行备选检测,所述备选检测指按照随机顺序从备选检测方案中选择一种或多种检测方案进行识别得到备选识别结果;
[0010] 当所述被识别机器在所述识别结果和所述备选识别结果中,至少存在两次被识别为模拟器,则判定所述被识别机器为模拟器,否则判定所述被识别机器为真机;
[0011] 所述备选检测方案包括:CPU架构识别、传感器识别、机器码识别、硬件识别。
[0012] 进一步地,所述CPU架构识别具体为:加载一个不存在的库文件,从系统抛出的异常信息中获取所述被识别机器的CPU架构类型;如果所述CPU架构类型为X86 CPU,则判定所述被识别机器为模拟器,否则为真机。
[0013] 进一步地,所述传感器识别具体为:检测所述被识别机器上是否存在以下三种传感器:计步传感器、光线传感器以及距离传感器;如果检测到存在所述三种传感器,则判定所述被识别机器为真机,否则为模拟器。
[0014] 进一步地,所述机器码识别具体为:在所述被识别机器上执行位于特定内存地址的机器码指令;如果执行返回值等于预定值,则判定所述被识别机器为真机;反之,则判定所述被识别机器为模拟器。
[0015] 进一步地,所述硬件识别具体为:获取所述被识别机器的硬件配置信息;如果所述硬件配置信息符合预定的目标值,则判定所述被识别机器为真机,否则为模拟器;
[0016] 其中,所述硬件配置信息包括以下至少一种配置信息:电池电量、手机信号量、位置信息、IMEI值、IMSI值及Build.prop值。
[0017] 第二方面,本发明还提供一种识别Android模拟器的装置,包括:
[0018] 第一检测模,用于检测被识别机器是否存在预设特征文件,其中,所述被识别机器安装有Android操作系统,所述预设特征文件为多个特征文件中的任意一个;
[0019] 识别模块,用于对检测结果进行判定得到识别结果,如果检测到存在所述预设特征文件,则判定所述被识别机器为模拟器,否则判定为真机。
[0020] 第三方面,本发明实施例提供一种识别Android模拟器的设备,该设备包括:至少一个处理器;以及,与该至少一个处理器通信连接的存储器;其中,该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行如上述的方法。
[0021] 第四方面,本发明实施例提供一种计算机可读存储介质,其中,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令用于使计算机执行如上述的方法。
[0022] 第五方面,本发明实施例提供一种识别Android模拟器的系统,其中,包括终端和服务器;该终端安装有Android操作系统,该终端具有处理器,该处理器用于执行如上述的方法,并将该方法的判定结果上传至该服务器;该服务器用于接收该判定结果,并根据该判定结果判定该终端为真机还是模拟器。
[0023] 本发明实施例在安装有Android操作系统的被识别机器上,检测是否存在预设的特征文件,来判断被识别机器是否为真机或模拟器,克服了现有技术中通过读取CPU的架构信息无法识别被识别机器为真机或模拟器的技术问题,能够准确判定被识别机器为真机还是模拟器。
[0024] 进一步地,本发明实施例对被识别机器进行备选检测,其中,备选检测指按照随机顺序从备选检测方案中选择一种或多种检测方案进行识别得到备选识别结果;
[0025] 当被识别机器在第一次检测的所述识别结果和备选检测的多大胡备选识别结果中,至少存在两次被识别为模拟器,则判定被识别机器为模拟器,否则判定被识别机器为真机,具体的备选检测方案包括:CPU架构识别、传感器识别、机器码识别、硬件识别。
[0026] 进一步地,本发明实施例通过在被识别机器上加载特定的库文件是否成功,能够更加准确判定被识别机器为真机还是模拟器。
[0027] 进一步地,本发明实施例通过在被识别机器上加载一个不存在的库文件,从系统抛出的异常堆栈信息中获取该被识别机器的CPU架构类型,从而判定该被识别机器为真机还是模拟器,增强判定的准确度。
[0028] 进一步地,本发明实施例通过在被识别机器上检测是否存在三种指定的传感器,来判定该被识别机器为真机还是模拟器,增强判定的准确度。
[0029] 进一步地,本发明实施例通过在被识别机器上执行位于特定内存地址的机器码指令,通过比对执行结果是否与预定值相同,来判定该被识别机器为真机还是模拟器,进一步提高判定的准确度。
[0030] 此外,本发明实施例还获取被识别机器的硬件配置信息,通过判断该硬件配置信息是否符合预期值,来判定该被识别机器为真机还是模拟器,进一步提高判定的准确度。附图说明
[0031] 图1是本发明识别Android模拟器的方法的第一实施例的流程示意图;
[0032] 图2是本发明识别Android模拟器的方法的第三实施例的流程示意图;
[0033] 图3是本发明识别Android模拟器的方法的第四实施例的流程示意图;
[0034] 图4是本发明识别Android模拟器的方法的第五实施例的流程示意图;
[0035] 图5是本发明识别Android模拟器的方法的第六实施例的流程示意图;
[0036] 图6是本发明识别Android模拟器的装置的第一实施例的结构示意图;
[0037] 图7是本发明识别Android模拟器的装置的第三实施例的结构示意图;
[0038] 图8是本发明识别Android模拟器的装置的第四实施例的结构示意图;
[0039] 图9是本发明识别Android模拟器的装置的第五实施例的结构示意图;
[0040] 图10是本发明识别Android模拟器的装置的第六实施例的结构示意图。

具体实施方式

[0041] 需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。以下实施例中,库文件指的是可加载于Android操作系统上的so文件。实际应用场景可以为:用户登陆APP,然后在APP上执行如下实施例三、或者实施例三和其他实施例组合的判定方法,并将执行的判定结果上传至服务器,服务器对判定结果进行综合分析,得出最终判定结果:该被识别机器为真机还是模拟器。
[0042] 实施例一:
[0043] 请参阅图1,图1是本发明识别Android模拟器的方法的第一实施例的流程示意图。如图1所示,该流程包括如下步骤:
[0044] S11:进行第一检测,具体是,检测被识别机器是否存在预设特征文件,其中,被识别机器安装有Android操作系统,预设特征文件为多个特征文件中的任意一个;
[0045] S12:对检测结果进行判定得到识别结果,如果检测到存在预设特征文件,则判定被识别机器为模拟器,否则判定被识别机器为真机。
[0046] 该方法的判定依据为:不同类型模拟器对应的特征文件不同,如果被识别机器为某类型模拟器,则被识别机器必然存在该类型模拟器对应的特征文件。
[0047] 其中,本实施例中,经过实际模拟得出的特征文件总数量为186个,覆盖度高,检测识别准确率提高,该预设特征文件可选的为该186个特征文件中的任意一个,下表给出了可识别的模拟器种类和判定该模拟器种类的特征文件数量。
[0048]
[0049]
[0050]
[0051]
[0052]
[0053] 实施例二:
[0054] 由于单一方式进行模拟器检测其有一定的误判概率,例如将真机误判为模拟器,或者将模拟器误判为真机,因此本实施例还进行备选检测,具体为:
[0055] 对被识别机器进行备选检测,其中,备选检测指按照随机顺序从备选检测方案中选择一种或多种检测方案进行识别得到备选识别结果,可以理解的是,这里一种或多种指可以随机选择一种检测方案进行识别,也可以选择一种以上的检测方案均进行识别以得到更准确的判定识别结果,例如利用全部的备选检测方案均识别一遍得到对应多个备选识别结果,进行汇总判断。
[0056] 判定标准为:当被识别机器在一次检测得到的识别结果和备选检测得到的备选识别结果中,至少存在两次被识别为模拟器,则判定被识别机器为模拟器,否则判定被识别机器为真机;
[0057] 本实施例中,备选检测方案包括:CPU架构识别、预设特征文件识别、传感器识别、机器码识别、硬件识别。
[0058] 实施例三:
[0059] 本实施例中,以选择CPU架构识别作为备选检测方案为例进行说明。
[0060] 请参阅图2,图2是本发明识别Android模拟器的方法的第三实施例的流程示意图。如图2所示,该流程包括如下步骤:
[0061] S21:加载一个不存在的库文件,从系统抛出的异常信息中获取该识别机器的CPU架构类型;
[0062] S22:如果该CPU架构类型为X86 CPU,则判定该被识别机器为模拟器。
[0063] 以下具体介绍上述步骤。
[0064] 在步骤S21中,不存在的库文件指的是,该库文件在被识别机器的系统中不存在,如加载一个不存在的“a.so”文件,系统加载失败,并抛出异常堆栈信息。可以从异常堆栈信息中查找匹配各CPU类型的特征字符,比如,从异常堆栈信息的nativeLibraryDirectories路径中查找与cpu架构模式相关的关键字,比如“arm64”、“arm32”,如果从该异常堆栈信息中获取到“arm”关键字,则判定CPU的架构为ARM CPU,判定被识别设备为模拟器;反之,如果从该异常堆栈信息中无法获取关键字,则进一步从lib/x86路径中寻找so文件,如果存在so文件,则判定CPU的架构是X86 CPU或MIPS CPU,通过步骤S22,输出该被识别机器为模拟器。
[0065] 这里要指出的是,在某些情况下,比如,被识别机器为夜神模拟器,无法从异常堆栈信息中获取有用的信息,以判定该识别机器的CPU架构类型。此种情况下,仅仅通过本实施例的方法无法对被识别机器的类型进行识别。
[0066] 实施例四:
[0067] 本实施例中,以选择传感器识别作为备选检测方案为例进行说明。
[0068] 请参阅图3,图3是本发明识别Android模拟器的方法的第四实施例的流程示意图。如图3所示,该流程包括如下步骤:
[0069] S31:检测该被识别机器上是否存在以下三种传感器:计步传感器、光线传感器以及距离传感器;
[0070] 在步骤S41中,可以从Android系统的JNI层获取当前系统运行的参数信息,从该参数信息中获取是否存在以下三种传感器:计步传感器、光线传感器以及距离传感器。
[0071] S32:如果检测到存在该三种传感器,则判定该被识别机器为真机。
[0072] 在步骤S32中,如果检测存在至少3种传感器,且传感器类型包括:计步传感器、光线传感器以及距离传感器,则判定该被识别机器为真机。
[0073] 实施例五:
[0074] 本实施例中,以选择机器码识别作为备选检测方案为例进行说明。
[0075] 请参阅图4,图4是本发明识别Android模拟器的方法的第五实施例的流程示意图。如图4所示,该流程包括如下步骤:
[0076] S41:在该被识别机器上执行位于特定内存地址的机器码指令;
[0077] S42:如果执行返回值为预定值,则判定该被识别机器为真机;反之,则判定该被识别机器为模拟器。
[0078] 该方法的判定依据为:真机和模拟器的cache设计不同,真机的cache为一级,模拟器的cache为两级,即指令cache和数据cache分开,因此在真机和模拟器中分别将一段相同的机器码在特定地址的内存中赋值,得到的结果是不相同的。
[0079] 实施例六:
[0080] 本实施例中,以选择硬件识别作为备选检测方案为例进行说明。
[0081] 请参阅图5,图5是本发明识别Android模拟器的方法的第六实施例的流程示意图。如图5所示,该流程包括如下步骤:
[0082] S51:获取该被识别机器的硬件配置信息;
[0083] 在步骤S51中,该硬件配置信息包括以下至少一种配置信息:电池电量、手机信号量、位置信息、IMEI值、IMSI值及Build.prop值。
[0084] 其中,可以通过读取API接口函数,获取该硬件配置信息。
[0085] S52:如果该硬件配置信息为预定的目标值,则判定该被识别机器为真机。
[0086] 其中,硬件配置信息和预定的目标值见如下表格:
[0087]硬件配置信息 目标值
电池电量 >0
手机信号量 >0
信息位置 >0
IMEI值 15~17位数,符合IMEI校验算法
IMSI值 15位,符合奇偶校验算法
Build.prop值 市场常见类型
[0088] 实施例七:
[0089] 请参阅图6,图6是本发明识别Android模拟器的装置的第一实施例的结构示意图。如图6所示,该装置的结构包括:
[0090] 第一检测模块61,用于进行第一检测,具体是,检测被识别机器是否存在预设特征文件,其中,被识别机器安装有Android操作系统,预设特征文件为多个特征文件中的任意一个;
[0091] 识别模块62:用于对检测结果进行判定得到识别结果,如果检测到存在所述预设特征文件,则判定所述被识别机器为模拟器,否则判定所述被识别机器为真机。
[0092] 结合实施例二,还包括第二检测模块63:
[0093] 用于对被识别机器进行备选检测,其中备选检测指按照随机顺序从备选检测方案中选择一种或多种检测方案进行识别得到备选识别结果,当被识别机器在一次检测和备选检测中,至少存在两次被识别为模拟器,则判定被识别机器为模拟器,否则判定被识别机器为真机。其中,备选检测方案包括:CPU架构识别、传感器识别、机器码识别、硬件识别。
[0094] 实施例八:
[0095] 请参阅图7,图7是本发明识别Android模拟器的装置的第三实施例的结构示意图。如图7所示,第二检测模块可以是库文件加载判定模块,库文件加载判定模块包括库文件加载单元71和库文件判定单元72。
[0096] 库文件加载单元71,用于加载一个不存在的库文件,从系统抛出的异常堆栈信息中获取该识别机器的CPU架构类型。
[0097] 库文件判定单元72,用于如果该CPU架构类型为X86 CPU,则判定该被识别机器为模拟器。
[0098] 具体地,库文件加载单元71或库文件判定单元72的工作方法和步骤与实施例二相同,在此不再赘述。
[0099] 实施例九:
[0100] 请参阅图8,图8是本发明识别Android模拟器的装置的第四实施例的结构示意图。如图8所示,第二检测模块可以是传感器检测判定模块,该传感器检测判定模块包括传感器检测单元81和传感器判定单元82。
[0101] 传感器检测单元81,用于检测该被识别机器上是否存在以下三种传感器:计步传感器、光线传感器以及距离传感器。
[0102] 传感器判定单元82,用于如果检测到存在该三种传感器,则判定该被识别机器为真机。
[0103] 具体地,传感器检测单元81和传感器判定单元82的工作方法和步骤与实施例四相同,在此不再赘述。
[0104] 实施例十:
[0105] 请参阅图9,图9是本发明识别Android模拟器的装置的第五实施例的结构示意图。如图9所示,第二检测模块可以是机器码指令执行判定模块,该机器码指令执行模块包括机器码指令执行单元91和机器码指令判定单元92。
[0106] 机器码指令执行单元91,用于在该被识别机器上执行位于特定内存地址的机器码指令。
[0107] 机器码指令判定单元92,用于如果返回值为预定的第一值,则判定该被识别机器为真机;反之,则判定该被识别机器为模拟器。
[0108] 具体地,机器码指令执行单元91和机器码指令判定单元92的工作方法和步骤与实施例五相同,在此不再赘述。
[0109] 实施例十一:
[0110] 请参阅图10,图10是本发明识别Android模拟器的装置的第六实施例的结构示意图。如图10所示,第二检测模块可以是硬件配置信息获取判定模块,该硬件配置信息获取判定模块包括硬件配置信息获取单元101和硬件配置信息判定单元102。
[0111] 硬件配置信息获取单元101,用于获取该被识别机器的硬件配置信息。
[0112] 硬件配置信息判定单元102,用于如果该硬件配置信息符合预定的目标值,则判定该被识别机器为真机。
[0113] 具体地,硬件配置信息获取单元101和硬件配置信息判定单元102的工作方法和步骤与实施例六相同,在此不再赘述。
[0114] 实施例十二:
[0115] 本实施例提供了识别Android模拟器的系统,该系统包括终端(不限定数量)和服务器。
[0116] 终端安装有Android操作系统,可以理解的是,终端具有处理器,该处理器用于执行如实施例一或者实施例二的方法,并将该方法的判定结果上传至服务器。
[0117] 服务器用于接收该判定结果,并根据该判定结果判定终端为真机还是模拟器。例如,服务器获取两项或两项以上的判定结果为模拟器,那么,可判定终端的判定结果为模拟器。例如,服务器获取上述全部方法实施例的六项判定结果,若有三项及三项以上的判定结果为模拟器,则判定终端为模拟器;反之,则判定终端为真机,具体判定规则可自行设定。
[0118] 商家在服务器上可以对多个终端进行识别,如果识别终端为模拟器,则判断该终端为作弊终端,从而对该作弊终端采取相关措施,防止APP商家受到损失。
[0119] 实施例十三:
[0120] 本发明还提供一种识别Android模拟器的设备,该设备包括:至少一个处理器;以及,与该至少一个处理器通信连接的存储器;其中,该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行如实施例一或者实施例二的方法。
[0121] 实施例十四:
[0122] 本发明实施例提供一种计算机可读存储介质,其中,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令用于使计算机执行如实施例一或者实施例二的方法。
[0123] 以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈