模拟器的检测方法、装置、设备以及计算机存储介质

文档序号:190187 发布日期:2021-11-02 浏览:36次 >En<

阅读说明:本技术 模拟器的检测方法、装置、设备以及计算机存储介质 (Simulator detection method, device, equipment and computer storage medium ) 是由 蒲天豪 于 2021-08-09 设计创作,主要内容包括:本发明实施例涉及计算机处理技术领域,公开了一种模拟器的检测方法、装置、设备以及计算机可读存储介质,该方法包括:获取待检测应用的环境配置文件;对环境配置文件进行识别,确定待检测应用的运行环境所对应的架构特征信息;当架构特征信息满足待检测模拟器对应的目标架构条件时,确定运行环境为待检测模拟器。通过上述方式,本发明实施例提高了模拟器的检测准确率。(The embodiment of the invention relates to the technical field of computer processing, and discloses a detection method, a device, equipment and a computer readable storage medium of a simulator, wherein the method comprises the following steps: acquiring an environment configuration file of an application to be detected; identifying the environment configuration file, and determining the architecture characteristic information corresponding to the operating environment of the application to be detected; and when the architecture characteristic information meets the target architecture condition corresponding to the simulator to be detected, determining the operating environment as the simulator to be detected. Through the mode, the detection accuracy of the simulator is improved.)

模拟器的检测方法、装置、设备以及计算机存储介质

技术领域

本发明实施例涉及计算机处理技术领域,具体涉及一种模拟器的检测方法、装置、设备以及计算机存储介质。

背景技术

当前的安卓应用中,出于刷游戏、作弊以及其它人为目的,经常出现在模拟器环境中运行安卓应用的情况,以实现长期挂机、执行脚本操作等。因此需要对安卓应用所运行的环境是否为模拟器环境进行检测。

目前,现有对模拟器进行检测的一般采用的是对检测传感器进行硬件检测、加载特定文件或在内存地址执行特定二进制代码等。

发明人在实施本发明的过程中发现,现有的模拟器检测方案存在准确性和兼容性较低的问题。

发明内容

鉴于上述问题,本发明实施例提供了一种模拟器的检测方法、装置、设备以及计算机存储介质,用于解决现有技术中存在的模拟器检测的准确性和兼容性较低的问题。

根据本发明实施例的一个方面,提供了一种模拟器的检测方法,所述方法包括:

获取待检测应用的环境配置文件;

对所述环境配置文件进行识别,确定所述待检测应用的运行环境所对应的架构特征信息;

当所述架构特征信息满足待检测模拟器对应的目标架构条件时,确定所述运行环境为所述待检测模拟器。

在一种可选的方式中,当所述待检测应用为安卓系统中的应用时,所述方法基于所述安卓系统的native层实现;所述环境配置文件包括多个二进制库文件;所述架构特征信息包括各个所述二进制库文件的架构字段值;所述方法包括:

分别将各个所述架构字段值与所述待检测模拟器对应的目标字段值进行匹配;

当存在所述架构字段值与所述目标字段值匹配时,确定所述运行环境为所述待检测模拟器。

在一种可选的方式中,所述环境配置文件包括多个二进制库文件;所述架构特征信息包括各个所述二进制库文件的库文件类型;所述方法包括:

分别将各个所述库文件类型与所述待检测模拟器对应的特征库文件类型进行匹配;

当存在所述库文件类型与所述特征库文件类型匹配时,确定所述运行环境为所述待检测模拟器。

在一种可选的方式中,所述环境配置文件包括系统配置文件;所述架构特征信息包括所述系统配置文件对应的文件解释模式;所述方法包括:

根据所述系统配置文件确定解释器配置信息;

根据所述解释器配置信息确定所述文件解释模式;

当所述文件解释模式为混合二进制模式时,确定所述运行环境为所述待检测模拟器。

在一种可选的方式中,所述环境配置文件包括系统配置文件;所述架构特征信息包括所述系统配置文件对应的文件注册标识;所述方法包括:

根据所述系统配置文件确定解释器配置信息;

根据所述解释器配置信息确定所述文件注册标识;

获取所述待检测应用的原生架构对应的目标注册标识;

当所述文件注册标识与所述目标注册标识匹配时,确定所述运行环境为所述待检测模拟器。

在一种可选的方式中,所述环境配置文件包括系统配置文件;所述架构特征信息包括所述系统配置文件对应的指令识别程序配置信息;所述指令识别程序用于将所述待检测模拟器的架构下的指令转换为所述待检测应用的原生架构下的指令;所述方法包括:

当所述指令识别程序配置信息为非空时,确定所述运行环境为所述待检测模拟器。

在一种可选的方式中,所述环境配置文件包括系统配置文件及多个二进制库文件;所述架构特征信息包括各个所述二进制库文件的库文件类型、架构字段值和所述系统配置文件对应的文件解释模式、文件注册标识以及指令识别程序配置信息;所述方法包括:

当所述二进制库文件满足第一预设条件时,若所述系统配置文件满足第二预设条件,确定所述运行环境为所述待检测模拟器;其中,所述第一预设条件为存在所述架构字段值与目标字段值匹配并且存在所述库文件类型与特征库文件类型匹配;所述第二预设条件为所述文件解释模式为混合二进制模式、所述文件注册标识与目标注册标识匹配以及所述指令识别程序配置信息为非空的至少一项。

根据本发明实施例的另一方面,提供了一种模拟器的检测装置,包括:

获取模块,用于获取待检测应用对应的环境配置文件;

识别模块,用于对所述环境配置文件进行识别,确定所述待检测应用的运行环境所对应的架构特征信息;

确定模块,用于当所述架构特征信息满足待检测模拟器对应的目标架构条件时,确定所述运行环境为所述待检测模拟器。

根据本发明实施例的另一方面,提供了一种模拟器的检测设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如所述的模拟器的检测方法的操作。

根据本发明实施例的又一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使模拟器的检测设备执行以下所述的模拟器的检测方法的操作。

本发明实施例首先通过获取待检测应用的环境配置文件;对所述环境配置文件进行识别,确定所述待检测应用的运行环境所对应的架构特征信息;当所述架构特征信息满足待检测模拟器对应的目标架构条件时,确定所述运行环境为所述待检测模拟器。

区别于现有技术中采取的对检测传感器等硬件在系统中的接口,模拟器容易伪造、加载特定文件来检测的读取信息容易被修改导致检测的准确率较低、在内存地址执行特定二进制代码容易触发应用进程崩溃且难以保证的兼容性问题,本发明实施例能够通过获取待检测应用的环境配置文件,识别出环境配置文件中包括的架构特征信息,通过将该架构特征信息与待检测模拟器对应的目标架构条件进行匹配,从而完成待检测模拟器的检测,并且上述检测在系统底层完成,由此无需加载特定的文件或者代码、并且读取到的信息不容易被修改,从而提高了模拟器检测的准确率和兼容性。

上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的

具体实施方式

附图说明

附图仅用于示出实施方式,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了本发明实施例提供的模拟器的检测方法的流程示意图;

图2示出了本发明实施例提供的待检测模拟器的结构示意图;

图3示出了本发明另一个实施例提供的模拟器的检测方法的流程示意图;

图4示出了本发明实施例提供的模拟器的检测装置的结构示意图;

图5示出了本发明实施例提供的模拟器的检测设备的结构示意图。

具体实施方式

下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。

在进行本发明实施例的模拟器的检测方法的说明之前,对相关名词进行解释:

ARM:Advanced RISC Machine,进阶精简指令集机器,是一个32位精简指令集(RISC)处理器架构,其广泛地使用在许多嵌入式系统设计。由于节能的特点,ARM架构的处理器非常适用于移动通讯领域,符合其主要设计目标为低耗电的特性。安卓系统采取的架构一般为ARM。

X86:X86架构(The X86 architecture)是微处理器执行的计算机语言指令集,指一个Intel通用计算机系列的标准编号缩写,也标识一套通用的计算机指令集合。目前的PC架构绝大多数都是Intel的X86架构。一般的安卓模拟器的架构采取X86,一个X86架构的安卓模拟器的结构可以参考图2。

ARM interpreter:ARM解释器,安卓模拟器需要运行正常的安卓程序,需要通过ARM解释器来解释桥接安卓应用自带的ARM C库。ARM的二进制库文件运行于ARM解释器上,从模拟器在运行时通过调用ARM解释器来获取ARM库文件的信息。

binfmt_misc:即Miscellaneous Binary Format(binfmt_misc),混合二进制格式。指在Linux平台上通过要打开文件的特性来选择使用何种程序来打开的文件解释模式。它可以通过文件的扩展名或者文件开始位置的特殊字节来确定需要打开文件的类型和方式。

Native Bridge:在X86架构的系统中运行异构CPU(如ARM)的代码时,用于将ARM机器码识别为X86指令的程序。

Houdini:Intel提供的用于将ARM指令转换为X86指令的ARM Binary Translation库,它能够执行从ARM指令转换为X86指令的二进制翻译。安卓系统中也提供了对native代码进行hook的native bridge。

Libnativehelper:安卓启动开始于Zygote进程,而Zygote进程在加载时需要初始化一些动态库,初始化工作由libnativehelper完成。libnativehelper会从/system/etc/public.libraries.txt中来加载需要的动态库,从而后续从Zygote进程孵化出来的进程无需重新加载。

Magic Number:魔数,这是放在linux的目录中的文件信息块中的一个标识符,一般为前数个字节,如在ELF文件的头部为前4个字节,用来标识该ELF文件的文件类型、可以被使用的应用等。

e_machine:用于标识二进制库文件所属的CPU体系架构的字段,存在于Linux的二进制库文件的ELF文件头中,若被非法篡改,操作系统会无法识别该二进制库文件。

下面以待检测应用所在的目标操作系统为安卓系统,待检测模拟器的架构为X86架构的实施例为例进行本模拟器的检测方法的说明。

图1示出了本发明实施例提供的模拟器的检测方法的流程图,该方法由计算机处理设备执行。计算机处理设备可以包括手机、笔记本电脑等。如图1所示,该方法包括以下步骤:

步骤101:获取待检测应用的环境配置文件。

在本发明的一个实施例中,待检测应用可以是目标操作系统中的应用,目标操作系统可以为安卓系统、鸿蒙系统以及IOS系统等。环境配置文件可以是为了使得待检测应用能够在目标系统中正确运行所需要的配置文件,如各种二进制库文件、待检测应用的架构兼容工具的系统配置文件等。

其中,二进制库文件指的是非ARM架构的模拟器要在ARM架构的系统中运行所需带有的一些基础运行库文件,如前述Houdini库文件、Libnativehelper库文件等。

架构兼容工具可以包括如ARM interpreter以及native bridge等工具,ARMinterpreter用于在模拟器中桥接待检测应用自带的ARM C库;native bridge用于将ARM架构下的二进制代码转译为X86指令集,使得可以在X86架构的CPU上执行的工具。

在本发明的再一个实施例中,环境配置文件中的二进制库文件可以包括/system/lib/ARM目录下包括的so文件,系统配置文件可以包括/proc/self/mountinfo目录下包括的文件以及default.prop配置文件。

在本发明的再一个实施例中,当目标操作系统为安卓系统时,所述方法可以基于所述安卓系统的native层实现。由于native层的逆向难度大于java层,因此通过native层获取到的数据难以被待检测模拟器捕获和篡改,由此保证了环境配置文件的真实性,从而提高了模拟器检测的准确度。

步骤102:对所述环境配置文件进行识别,确定所述待检测应用的运行环境所对应的架构特征信息。

考虑到模拟器的运行原理如下:

一方面,非ARM架构(如X86架构)模拟器会自带ARM架构下运行所需要的一些特定的基础二进制库文件,这些特定的基础二进制库文件可以通过文件类型或文件名进行识别。

并且由于模拟器的架构为非ARM架构,因此在模拟器的二进制库文件中可以读取到两种不同的CPU架构信息,而架构信息包含在二进制库文件的ELF文件头中。

因此,在本发明的一个实施例中,当环境配置文件为二进制库文件时,架构特征信息可以包括二进制库文件的ELF文件头中的架构字段值,以及二进制库文件的文件类型。

另一方面,模拟器需要运行正常的应用程序,需要通过ARM interpreter来解释桥接应用自带的ARM C库(参考图2),而ARM interperter的配置文件如其他系统文件一样,需要在Linux内核中进行注册,而为了使得非ARM架构的二进制文件能够成功注册和加载,其中需要包含ARM架构对应的文件注册标识。

并且,根据Linux的系统二进制文件识别注册原理,ARM架构的文件注册标识与非ARM架构的标识格式不相同,因此,ARM interperter需要被配置为binfmt_misc(即混合二进制解释模式)。

此外,若要在非ARM架构的模拟器系统中运行异构CPU(如ARM)的代码指令,必须要在模拟器系统中配置ARM架构下的二进制指令的识别解释程序,如native bridge。

因此,在本发明的再一个实施例中,当环境配置文件为系统配置文件时,架构特征信息可以包括如系统配置文件中包含的文件解释模式信息、文件注册标识以及指令识别程序配置信息等。

步骤103:当所述架构特征信息满足待检测模拟器对应的目标架构条件时,确定所述运行环境为所述待检测模拟器。

在本发明的一个实施例中,所述环境配置文件包括多个二进制库文件;所述架构特征信息包括各个所述二进制库文件的架构字段值。

具体地,架构字段值指的是二进制库文件的ELF Header(ELF文件头)中的e_machine字段,该字段用于标识CPU架构信息,如可以是X86或ARM等。

由于模拟器和原生系统对应不同的CPU,因此其架构字段值不同,而对该字段进行非法篡改,操作系统会无法识别,导致系统无法正常启动,因此,可以根据e_machine字段来识别待检测模拟器。

因此,步骤103包括:步骤1031:分别将各个所述架构字段值与所述待检测模拟器对应的目标字段值进行匹配。

分别读取出各个二进制库文件的ELF Header(ELF文件头)中的e_machine字段下的架构字段值,将其与目标字段值进行匹配。目标字段值为模拟器架构对应的架构字段值。

步骤1032:当存在所述架构字段值与所述目标字段值匹配时,确定所述运行环境为所述待检测模拟器。

在架构字段值中包括目标字段值时,即将两者视作匹配。

如某二进制库文件的ELF文件头中包含的架构字段值为Advanced Micro DevicesX86-64,其中包括目标字段值X86,因此存在匹配,确定运行环境为CPU架构为X86的待检测模拟器。

在本发明的再一个实施例中,所述环境配置文件包括多个二进制库文件;所述架构特征信息包括各个所述二进制库文件的库文件类型;

步骤103还包括:步骤1033:分别将各个所述库文件类型与所述待检测模拟器对应的特征库文件类型进行匹配。

在本发明的一个实施例中,特征库文件是待检测模拟器在ARM架构下运行所需的基础库文件,可以包括/system/lib/ARM/houdini、/system/lib/ARM/libhoudini.so、/system/lib/ARM/libnativebridge.so、/system/li b/ARM/libnativehelper.so、/system/lib/ARM/linker、/system/lib/ARM/libstdc++.so、/system/lib/ARM/libz.so以及/system/lib/ARM/lib安卓.so中的至少一个。

可以是将各个二进制库文件的文件名作为其库文件类型,将特征库文件的文件名作为特征库文件类型,将两者进行匹配。

步骤1034:当存在所述库文件类型与所述特征库文件类型匹配时,确定所述运行环境为所述待检测模拟器。

在本发明的一个实施例中,当存在至少一个二进制库文件对应的库文件类型与特征库文件类型相同时,视作两者匹配。

在本发明的再一个实施例中,所述环境配置文件包括系统配置文件;所述架构特征信息包括所述系统配置文件对应的文件解释模式。

步骤103包括:步骤1035:根据所述系统配置文件确定解释器配置信息。

在本发明的一个实施例中,获取当前系统进程的mount信息,读取/proc/self/mountinfo目录文件,通过读取/proc/self/mountinfo目录文件下的/proc/sys/fs/binfmt_misc信息,作为解释器配置信息。

步骤1036:根据所述解释器配置信息确定所述文件解释模式。

在本发明的一个实施例中,当proc/sys/fs/binfmt_misc信息为非空时,即表明存在binfmt_misc的配置相关信息,因此将文件解释模式确定为Miscellaneous BinaryFormat(binfmt_misc),即混合二进制模式。

在本发明的再一个实施例中,当proc/sys/fs/binfmt_misc信息为空时,则确定文件解释模式为非混合二进制模式。

步骤1037:当所述文件解释模式为混合二进制模式时,确定所述运行环境为所述待检测模拟器。

在本发明的再一个实施例中,所述环境配置文件包括系统配置文件;所述架构特征信息包括所述系统配置文件对应的文件注册标识;文件注册标识可以包括linux系统中的magic number,即魔数。

步骤103包括:步骤1038:根据所述系统配置文件确定解释器配置信息;根据所述解释器配置信息确定所述文件注册标识。

在本发明的一个实施例中,/proc/sys/fs/binfmt_misc信息为解释器配置信息,通过读取/proc/sys/fs/binfmt_misc信息中的内容,查找是否存在ARM_dyn文件以及ARM_exe文件。

当存在ARM_dyn文件以及ARM_exe文件时,从ARM_dyn文件以及ARM_exe文件中读取magic字段下的字段值作为文件注册标识。其中,ARM_dyn文件以及ARM_exe文件用于保存当前二进制文件的文件基础信息。在本发明的再一个实施例中,ARM_dyn文件中可以包括如下内容:

enabled

interpreter/system/lib/ARM/houdini

flags:P

offset 0

magic 7f454c46010101000000000000000000030028

其中,magic标志magic number,即文件注册标识。

步骤1039:获取所述待检测应用的原生架构对应的目标注册标识。

在本发明的一个实施例中,目标注册标识即为ARM架构下的文件系统在内核中进行注册得到的魔数,一般包括7f454c46010101000000000000000000030028和/或7f454c46010101000000000000000000020028。

步骤1040:当所述文件注册标识与所述目标注册标识匹配时,确定所述运行环境为所述待检测模拟器。

根据Linux的原理可知,二进制文件的加载过程中需要检查二进制文件的magicnumber是否为文件系统注册成功时得到的标识值,如果不能找到ARM架构的文件系统对应的注册标识,则二进制文件无法加载。因此,为了在模拟器中能够识别和加载出ARM架构下的二进制文件,需要将ARM相关文件(即包含文件注册标识的文件)放置在混合二进制解释脚本下进行解释。

因此,当在/proc/sys/fs/binfmt_misc的目录下的ARM_dyn文件以及ARM_exe文件中查找到的文件注册标识与目标注册标识相同时,将两者视作匹配。

在本发明的再一个实施例中,所述环境配置文件包括系统配置文件;所述架构特征信息包括所述系统配置文件对应的指令识别程序配置信息;所述指令识别程序用于将所述待检测模拟器的架构下的指令转换为所述待检测应用的原生架构下的指令;在本发明的一个实施例中,指令识别程序可以包括NativeBridge。

步骤103包括:步骤1041:当所述指令识别程序配置信息为非空时,确定所述运行环境为所述待检测模拟器。

在本发明的一个实施例中,通过查询系统的default.prop配置文件中的ro.dalvik.vm.native.bridge配置项,查看该配置项是否有值,如果有值,使用dlopen指令打开对应的目录文件,使用dlsym查找是否存在NativeBridgeItf符号,当存在所述NativeBridgeItf符号时,则确定指令识别程序配置信息为非空。

在本发明的再一个实施例中,当ro.dalvik.vm.native.bridge配置项中没有值或者对应的目录下不存在NativeBridgeItf标识符时,则确定大概指令识别程序配置信息为空。

在本发明的再一个实施例中,考虑到二进制库文件表征的是更为基础的环境运行上的配置信息,只有在将二进制库文件配置完成的情况下,前述架构兼容工具才可以运行,从而完成模拟器指令与原生系统指令之间的解释和识别。因此,为了进一步提高模拟器检测的准确率,在本发明的再一个实施例中,步骤103还可以为图3中所示出的流程:

参考图3,当所述二进制库文件满足第一预设条件时,若所述系统配置文件满足第二预设条件,确定所述运行环境为所述待检测模拟器;

其中,所述第一预设条件为存在所述架构字段值与目标字段值匹配并且存在所述库文件类型与特征库文件类型匹配。其中,目标字段值为步骤1031中所述的,特征库文件类型为步骤1033中所述的。

所述第二预设条件为所述文件解释模式为混合二进制模式、所述文件注册标识与目标注册标识匹配以及所述指令识别程序配置信息为非空的至少一项。其中,目标注册标识为步骤1039中所述的。

需要说明的是,判断是否存在所述架构字段值与所述目标字段值匹配以及判断存在所述库文件类型与所述特征库文件类型匹配的执行次序并限定为图3中所示出的,该执行次序可以调换,并不影响本发明实施例的模拟器的检测的效果。

区别于现有技术中采取的对检测传感器等硬件在系统中的接口,模拟器容易伪造、加载特定文件来检测的读取信息容易被修改导致检测的准确率较低、在内存地址执行特定二进制代码容易触发应用进程崩溃且难以保证的兼容性问题,本发明实施例提供的模拟器的检测方法能够通过获取待检测应用的环境配置文件,识别出环境配置文件中包括的架构特征信息,通过将该架构特征信息与待检测模拟器对应的目标架构条件进行匹配,从而完成待检测模拟器的检测,并且上述检测在系统底层完成,由此无需加载特定的文件或者代码、并且读取到的信息不容易被修改,从而提高了模拟器检测的准确率和兼容性。

图4示出了本发明实施例提供的模拟器的检测装置的结构示意图。如图2所示,该装置200包括:获取模块201、识别模块202以及确定模块203。

其中,获取模块201,用于获取待检测应用对应的环境配置文件;

识别模块202,用于对所述环境配置文件进行识别,确定所述待检测应用的运行环境所对应的架构特征信息;

确定模块203,用于当所述架构特征信息满足待检测模拟器对应的目标架构条件时,确定所述运行环境为所述待检测模拟器

在一种可选的方式中,当所述待检测应用为安卓系统中的应用时,所述方法基于所述安卓系统的native层实现;所述环境配置文件包括多个二进制库文件;所述架构特征信息包括各个所述二进制库文件的架构字段值;

确定模块203还用于:分别将各个所述架构字段值与所述待检测模拟器对应的目标字段值进行匹配;

当存在所述架构字段值与所述目标字段值匹配时,确定所述运行环境为所述待检测模拟器。

在一种可选的方式中,所述环境配置文件包括多个二进制库文件;所述架构特征信息包括各个所述二进制库文件的库文件类型;

确定模块203还用于:分别将各个所述库文件类型与所述待检测模拟器对应的特征库文件类型进行匹配;

当存在所述库文件类型与所述特征库文件类型匹配时,确定所述运行环境为所述待检测模拟器。

在一种可选的方式中,所述环境配置文件包括系统配置文件;所述架构特征信息包括所述系统配置文件对应的文件解释模式;确定模块203还用于:

根据所述系统配置文件确定解释器配置信息;

根据所述解释器配置信息确定所述文件解释模式;

当所述文件解释模式为混合二进制模式时,确定所述运行环境为所述待检测模拟器。

在一种可选的方式中,所述环境配置文件包括系统配置文件;所述架构特征信息包括所述系统配置文件对应的文件注册标识;确定模块203还用于:

根据所述系统配置文件确定解释器配置信息;

根据所述解释器配置信息确定所述文件注册标识;

获取所述待检测应用的原生架构对应的目标注册标识;

当所述文件注册标识与所述目标注册标识匹配时,确定所述运行环境为所述待检测模拟器。

在一种可选的方式中,所述环境配置文件包括系统配置文件;所述架构特征信息包括所述系统配置文件对应的指令识别程序配置信息;所述指令识别程序用于将所述待检测模拟器的架构下的指令转换为所述待检测应用的原生架构下的指令;确定模块203还用于:

当所述指令识别程序配置信息为非空时,确定所述运行环境为所述待检测模拟器。

在一种可选的方式中,所述环境配置文件包括系统配置文件及多个二进制库文件;所述架构特征信息包括各个所述二进制库文件的库文件类型、架构字段值和所述系统配置文件对应的文件解释模式、文件注册标识以及指令识别程序配置信息;确定模块203还用于:

当所述二进制库文件满足第一预设条件时,若所述系统配置文件满足第二预设条件,确定所述运行环境为所述待检测模拟器;其中,所述第一预设条件为存在所述架构字段值与目标字段值匹配并且存在所述库文件类型与特征库文件类型匹配;所述第二预设条件为所述文件解释模式为混合二进制模式、所述文件注册标识与目标注册标识匹配以及所述指令识别程序配置信息为非空的至少一项。

本发明实施例提供的模拟器的检测装置的实现原理与前述实施例中模拟器的检测方法的步骤相同,不再赘述。

区别于现有技术中采取的对检测传感器等硬件在系统中的接口,模拟器容易伪造、加载特定文件来检测的读取信息容易被修改导致检测的准确率较低、在内存地址执行特定二进制代码容易触发应用进程崩溃且难以保证的兼容性问题,本发明实施例提供的模拟器的检测装置能够通过获取待检测应用的环境配置文件,识别出环境配置文件中包括的架构特征信息,通过将该架构特征信息与待检测模拟器对应的目标架构条件进行匹配,从而完成待检测模拟器的检测,并且上述检测在系统底层完成,由此无需加载特定的文件或者代码、并且读取到的信息不容易被修改,从而提高了模拟器检测的准确率和兼容性。

图5示出了本发明实施例提供的模拟器的检测设备的结构示意图,本发明具体实施例并不对模拟器的检测设备的具体实现做限定。

如图5所示,该模拟器的检测设备可以包括:处理器(processor)302、通信接口(Communications Interface)304、存储器(memory)306、以及通信总线308。

其中:处理器302、通信接口304、以及存储器306通过通信总线308完成相互间的通信。通信接口304,用于与其它设备比如客户端或其它服务器等的网元通信。处理器302,用于执行程序310,具体可以执行上述用于模拟器的检测方法实施例中的相关步骤。

具体地,程序310可以包括程序代码,该程序代码包括计算机可执行指令。

处理器302可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。模拟器的检测设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。

存储器306,用于存放程序310。存储器306可能包含高速RAM存储器,也可能包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。

程序310具体可以被处理器302调用使模拟器的检测设备执行以下操作:

获取待检测应用的环境配置文件;

对所述环境配置文件进行识别,确定所述待检测应用的运行环境所对应的架构特征信息;

当所述架构特征信息满足待检测模拟器对应的目标架构条件时,确定所述运行环境为所述待检测模拟器。

在一种可选的方式中,当所述待检测应用为安卓系统中的应用时,所述方法基于所述安卓系统的native层实现;所述环境配置文件包括多个二进制库文件;所述架构特征信息包括各个所述二进制库文件的架构字段值;所述程序310被处理器302调用使模拟器的检测设备执行以下操作:

分别将各个所述架构字段值与所述待检测模拟器对应的目标字段值进行匹配;

当存在所述架构字段值与所述目标字段值匹配时,确定所述运行环境为所述待检测模拟器。

在一种可选的方式中,所述环境配置文件包括多个二进制库文件;所述架构特征信息包括各个所述二进制库文件的库文件类型;所述程序310被处理器302调用使模拟器的检测设备执行以下操作:

分别将各个所述库文件类型与所述待检测模拟器对应的特征库文件类型进行匹配;

当存在所述库文件类型与所述特征库文件类型匹配时,确定所述运行环境为所述待检测模拟器。

在一种可选的方式中,所述环境配置文件包括系统配置文件;所述架构特征信息包括所述系统配置文件对应的文件解释模式;所述程序310被处理器302调用使模拟器的检测设备执行以下操作:

根据所述系统配置文件确定解释器配置信息;

根据所述解释器配置信息确定所述文件解释模式;

当所述文件解释模式为混合二进制模式时,确定所述运行环境为所述待检测模拟器。

在一种可选的方式中,所述环境配置文件包括系统配置文件;所述架构特征信息包括所述系统配置文件对应的文件注册标识;所述程序310被处理器302调用使模拟器的检测设备执行以下操作:

根据所述系统配置文件确定解释器配置信息;

根据所述解释器配置信息确定所述文件注册标识;

获取所述待检测应用的原生架构对应的目标注册标识;

当所述文件注册标识与所述目标注册标识匹配时,确定所述运行环境为所述待检测模拟器。

在一种可选的方式中,所述环境配置文件包括系统配置文件;所述架构特征信息包括所述系统配置文件对应的指令识别程序配置信息;所述指令识别程序用于将所述待检测模拟器的架构下的指令转换为所述待检测应用的原生架构下的指令;所述程序310被处理器302调用使模拟器的检测设备执行以下操作:

当所述指令识别程序配置信息为非空时,确定所述运行环境为所述待检测模拟器。

在一种可选的方式中,所述环境配置文件包括系统配置文件及多个二进制库文件;所述架构特征信息包括各个所述二进制库文件的库文件类型、架构字段值和所述系统配置文件对应的文件解释模式、文件注册标识以及指令识别程序配置信息;所述程序310被处理器302调用使模拟器的检测设备执行以下操作:

当所述二进制库文件满足第一预设条件时,若所述系统配置文件满足第二预设条件,确定所述运行环境为所述待检测模拟器;其中,所述第一预设条件为存在所述架构字段值与目标字段值匹配并且存在所述库文件类型与特征库文件类型匹配;所述第二预设条件为所述文件解释模式为混合二进制模式、所述文件注册标识与目标注册标识匹配以及所述指令识别程序配置信息为非空的至少一项。

本发明实施例提供的模拟器的检测设备的实现原理与前述实施例中模拟器的检测方法的步骤相同,不再赘述。

区别于现有技术中采取的对检测传感器等硬件在系统中的接口,模拟器容易伪造、加载特定文件来检测的读取信息容易被修改导致检测的准确率较低、在内存地址执行特定二进制代码容易触发应用进程崩溃且难以保证的兼容性问题,本发明实施例提供的模拟器的检测设备能够通过获取待检测应用的环境配置文件,识别出环境配置文件中包括的架构特征信息,通过将该架构特征信息与待检测模拟器对应的目标架构条件进行匹配,从而完成待检测模拟器的检测,并且上述检测在系统底层完成,由此无需加载特定的文件或者代码、并且读取到的信息不容易被修改,从而提高了模拟器检测的准确率和兼容性。

本发明实施例提供了一种计算机可读存储介质,所述存储介质存储有至少一可执行指令,该可执行指令在模拟器的检测设备上运行时,使得所述模拟器的检测设备执行上述任意方法实施例中的模拟器的检测方法。

可执行指令具体可以用于使得模拟器的检测设备执行以下操作:

获取待检测应用的环境配置文件;

对所述环境配置文件进行识别,确定所述待检测应用的运行环境所对应的架构特征信息;

当所述架构特征信息满足待检测模拟器对应的目标架构条件时,确定所述运行环境为所述待检测模拟器。

在一种可选的方式中,当所述待检测应用为安卓系统中的应用时,所述方法基于所述安卓系统的native层实现;所述环境配置文件包括多个二进制库文件;所述架构特征信息包括各个所述二进制库文件的架构字段值;所述可执行指令使所述模拟器的检测设备执行以下操作:

分别将各个所述架构字段值与所述待检测模拟器对应的目标字段值进行匹配;

当存在所述架构字段值与所述目标字段值匹配时,确定所述运行环境为所述待检测模拟器。

在一种可选的方式中,所述环境配置文件包括多个二进制库文件;所述架构特征信息包括各个所述二进制库文件的库文件类型;所述可执行指令使所述模拟器的检测设备执行以下操作:

分别将各个所述库文件类型与所述待检测模拟器对应的特征库文件类型进行匹配;

当存在所述库文件类型与所述特征库文件类型匹配时,确定所述运行环境为所述待检测模拟器。

在一种可选的方式中,所述环境配置文件包括系统配置文件;所述架构特征信息包括所述系统配置文件对应的文件解释模式;所述可执行指令使所述模拟器的检测设备执行以下操作:

根据所述系统配置文件确定解释器配置信息;

根据所述解释器配置信息确定所述文件解释模式;

当所述文件解释模式为混合二进制模式时,确定所述运行环境为所述待检测模拟器。

在一种可选的方式中,所述环境配置文件包括系统配置文件;所述架构特征信息包括所述系统配置文件对应的文件注册标识;所述可执行指令使所述模拟器的检测设备执行以下操作:

根据所述系统配置文件确定解释器配置信息;

根据所述解释器配置信息确定所述文件注册标识;

获取所述待检测应用的原生架构对应的目标注册标识;

当所述文件注册标识与所述目标注册标识匹配时,确定所述运行环境为所述待检测模拟器。

在一种可选的方式中,所述环境配置文件包括系统配置文件;所述架构特征信息包括所述系统配置文件对应的指令识别程序配置信息;所述指令识别程序用于将所述待检测模拟器的架构下的指令转换为所述待检测应用的原生架构下的指令;所述可执行指令使所述模拟器的检测设备执行以下操作:

当所述指令识别程序配置信息为非空时,确定所述运行环境为所述待检测模拟器。

在一种可选的方式中,所述环境配置文件包括系统配置文件及多个二进制库文件;所述架构特征信息包括各个所述二进制库文件的库文件类型、架构字段值和所述系统配置文件对应的文件解释模式、文件注册标识以及指令识别程序配置信息;所述可执行指令使所述模拟器的检测设备执行以下操作:

当所述二进制库文件满足第一预设条件时,若所述系统配置文件满足第二预设条件,确定所述运行环境为所述待检测模拟器;其中,所述第一预设条件为存在所述架构字段值与目标字段值匹配并且存在所述库文件类型与特征库文件类型匹配;所述第二预设条件为所述文件解释模式为混合二进制模式、所述文件注册标识与目标注册标识匹配以及所述指令识别程序配置信息为非空的至少一项。

本发明实施例提供的计算机存储介质的实现原理与前述实施例中模拟器的检测方法的步骤相同,不再赘述。

区别于现有技术中采取的对检测传感器等硬件在系统中的接口,模拟器容易伪造、加载特定文件来检测的读取信息容易被修改导致检测的准确率较低、在内存地址执行特定二进制代码容易触发应用进程崩溃且难以保证的兼容性问题,本发明实施例提供的计算机存储介质能够通过获取待检测应用的环境配置文件,识别出环境配置文件中包括的架构特征信息,通过将该架构特征信息与待检测模拟器对应的目标架构条件进行匹配,从而完成待检测模拟器的检测,并且上述检测在系统底层完成,由此无需加载特定的文件或者代码、并且读取到的信息不容易被修改,从而提高了模拟器检测的准确率和兼容性。

本发明实施例提供一种模拟器的检测装置,用于执行上述模拟器的检测方法。

本发明实施例提供了一种计算机程序,所述计算机程序可被处理器调用使模拟器的检测设备执行上述任意方法实施例中的模拟器的检测方法。

本发明实施例提供了一种计算机程序产品,计算机程序产品包括存储在计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令在计算机上运行时,使得所述计算机执行上述任意方法实施例中的模拟器的检测方法。

在此提供的算法或显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。

本领域技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。

20页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:硬盘错误的检测方法、装置、存储介质和电子装置

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!