CN110334028A - 一种安卓模拟器检测方法、计算机设备及存储介质 - Google Patents

一种安卓模拟器检测方法、计算机设备及存储介质 Download PDF

Info

Publication number
CN110334028A
CN110334028A CN201910609775.1A CN201910609775A CN110334028A CN 110334028 A CN110334028 A CN 110334028A CN 201910609775 A CN201910609775 A CN 201910609775A CN 110334028 A CN110334028 A CN 110334028A
Authority
CN
China
Prior art keywords
android
information
feature
simulator
file
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.)
Pending
Application number
CN201910609775.1A
Other languages
English (en)
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.)
Beijing Zhiyouwang'an Technology Co Ltd
Original Assignee
Beijing Zhiyouwang'an Technology 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 Beijing Zhiyouwang'an Technology Co Ltd filed Critical Beijing Zhiyouwang'an Technology Co Ltd
Priority to CN201910609775.1A priority Critical patent/CN110334028A/zh
Publication of CN110334028A publication Critical patent/CN110334028A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • G06F16/152File search processing using file content signatures, e.g. hash values
    • 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
    • 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/45558Hypervisor-specific management and integration aspects
    • 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/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Library & Information Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供了一种安卓模拟器检测方法、计算机设备及存储介质,所述方法包括:获取安卓应用程序的签名文件,判断所述签名文件下是否存在与安卓模拟器匹配的第一特征信息;若否,则获取安卓***的***文件,提取所述***文件中与所述安卓模拟器匹配的第二特征信息,并计算所述第二特征信息所对应的风险特征值,判断所述风险特征值是否超出预设风险特征阈值;若是,则判定所述安卓应用程序在安卓模拟器上运行。本发明根据计算出的风险特征值的大小判定应用程序是否在安卓模拟器上运行,避免了安卓模拟器模拟真机的CPU类型信息等造成检测结果准确性差的问题,显著提高了检测准确性,进而在用户使用安卓应用程序时,保证了用户的财产安全。

Description

一种安卓模拟器检测方法、计算机设备及存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种安卓模拟器检测方法、计算机设备及存储介质。
背景技术
随着通信技术的发展,安卓模拟器(在电脑上模拟安卓操作***,并能安装、使用、卸载安卓应用程序的软件,即电脑上能够操作安卓***)已经广泛应用于社会之中。因为安卓模拟器能够修改各种移动终端配置参数,所以很多游戏玩家通过使用模拟器进行伪造多台终端用户,甚至还可以修改app的数据,达到篡改游戏数据的目的。因此为了保证安卓应用以及游戏的安全性使用者需要得知安卓应用程序的运行位置是在移动终端上,还是在电脑上的安卓模拟器中。
目前,检测安卓应用程序的运行位置的方法是通过JAVA层代码来判断移动终端中是否存在安卓模拟器特有的进程通信通道和IMEI信息,但是由于安卓模拟器可以修改进程通信信道以及手机的IMEI信息,所以大大的降低了安卓模拟器的检测准确性。
因此,现有技术有待于进一步的改进。
发明内容
鉴于上述现有技术中的不足之处,本发明的目的在于提供一种安卓模拟器检测方法、计算机设备及存储介质,克服现有技术中通过JAVA层代码来判断移动终端中是否存在安卓模拟器特有的进程通信通道和IMEI信息检测安卓应用程序的运行位置,由于安卓模拟器可以修改进程通信信道以及手机的IMEI信息,导致安卓模拟器的检测准确性低的缺陷。
本发明所公开的第一实施例为一种安卓模拟器检测方法,其中,包括以下步骤:
S1、获取安卓应用程序的签名文件,判断所述签名文件下是否存在与安卓模拟器匹配的第一特征信息,若否,则执行步骤S2;若是,则执行步骤S3;
S2、获取安卓***的***文件,提取所述***文件中与所述安卓模拟器匹配的第二特征信息,并计算所述第二特征信息所对应的风险特征值,判断所述风险特征值是否超出预设风险特征阈值,若是,则执行步骤S3;
S3、判定所述安卓应用程序在安卓模拟器上运行。
所述的安卓模拟器检测方法,其中,所述步骤S1之前,还包括:
预先设置用于判定所述安卓应用程序在安卓模拟器上运行的风险特征值,并将所述风险特征值初始化为0。
所述的安卓模拟器检测方法,其中,所述第一特征信息为与所述安卓模拟器所匹配签名文件中含有的具有唯一标识的字符串信息;
所述步骤S1中判断所述签名文件下是否存在与安卓模拟器匹配的第一特征信息的步骤包括:
判断所述安卓应用程序的签名文件中是否含有所述字符串信息。
所述的安卓模拟器检测方法,其中,步骤S2中,所述第二特征信息包括:属性文件信息和CPU类型信息中的一种或两种。
所述的安卓模拟器检测方法,其中,当所述第二特征信息为属性文件信息时,所述步骤S2中获取安卓***的***文件,提取所述***文件中与所述安卓模拟器匹配的第二特征信息的步骤包括:
获取安卓***的***文件,判断所述***文件中的属性文件信息是否与预设的第一模拟器信息相匹配,若是,则提取所述属性文件信息。
所述的安卓模拟器检测方法,其中,当所述第二特征信息为CPU类型信息时,所述步骤S2中获取安卓***的***文件,提取所述***文件中与所述安卓模拟器匹配的第二特征信息的步骤包括:
获取安卓***的***文件,判断所述***文件中的CPU类型信息是否与预设的第二模拟器信息相匹配,若是,则提取所述CPU类型信息。
所述的安卓模拟器检测方法,其中,步骤S2中计算所述第二特征信息所对应的风险特征值的步骤包括:
根据提取出的所述第二特征信息的个数计算所述风险特征值;其中所述风险特征值等于提取出的所述第二特征信息的个数。
所述的安卓模拟器检测方法,其中,所述根据提取出的所述第二特征信息的个数计算所述风险特征值的步骤之后,还包括:
判断安卓***下的应用程序个数是否超过预设的应用程序个数阈值,若是,则将所述风险特征值加1。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现所述方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现所述的方法的步骤。
有益效果,本发明提供了一种安卓模拟器检测方法、计算机设备及存储介质,通过获取安卓应用程序的签名文件,判断所述签名文件下是否存在与安卓模拟器匹配的第一特征信息;若否,则获取安卓***的***文件,提取所述***文件中与所述安卓模拟器匹配的第二特征信息,并计算所述第二特征信息所对应的风险特征值,判断所述风险特征值是否超出预设风险特征阈值;若是,则判定所述安卓应用程序在安卓模拟器上运行。本发明所述的方法、计算机设备及存储介质,通过提取安卓***文件中与安卓模拟器匹配的多个特征信息计算风险特征值,根据风险特征值与预设风险特征阈值比较判断安卓应用程序的运行位置,提高了检测的准确性,能够在用户使用安卓应用程序时,保护用户的财产安全。
附图说明
图1是本发明所提供的安卓模拟器检测方法的较佳实施例的流程图;
图2是本发明所提供的安卓模拟器检测方法的具体应用实施例的流程图;
图3是本发明的计算机设备的功能原理图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供的一种安卓模拟器检测方法,可以应用于终端中。其中,终端可以但不限于是各种个人计算机、笔记本电脑、手机、平板电脑、车载电脑和便携式可穿戴设备。本发明的终端采用多核处理器。其中,终端的处理器可以为中央处理器(Central ProcessingUnit,CPU),图形处理器(Graphics Processing Unit,GPU)、视频处理单元(VideoProcessing Unit,VPU)等中的至少一种。
为了解决现有技术中通过JAVA层代码来判断移动终端中是否存在安卓模拟器特有的进程通信通道和IMEI信息检测安卓应用程序的运行位置,由于安卓模拟器可以修改进程通信信道以及手机的IMEI信息,导致安卓模拟器的检测准确性低的问题,本发明提供了一种安卓模拟器检测方法。
请参照图1,图1是本发明提供的一种安卓模拟器检测方法的较佳实施例的流程图。
在实施例一中,所述安卓模拟器检测方法有三个步骤:
S1、获取安卓应用程序的签名文件,判断所述签名文件下是否存在与安卓模拟器匹配的第一特征信息,若否,则执行步骤S2;若是,则执行步骤S3。
现有技术中安卓应用程序在模拟器上运行时,所述安卓应用程序的签名文件下一般会含有与安卓模拟器相匹配的信息。因此本实施例中在判断安卓应用程序是否在模拟器上运行时会首先获取安卓应用程序的签名文件,获取安卓应用程序的签名文件的方法包括使用JAVA自带的API获取或者使用***隐藏的API进行获取。优选地,本实施例中使用JAVA自带的API如android.os.Build.FINGERPRINT获取安卓应用程序的签名文件,判断所述签名文件下是否存在与安卓模拟器匹配的第一特征信息。
在一具体实施例中,所述第一特征信息为与所述安卓模拟器所匹配签名文件中含有的具有唯一标识的字符串信息,所述字符串信息包括generic、keys、sdk和xbox中的一种或多种。只要在模拟器中运行的安卓应用程序,其签名文件中含有带有generic的字符串,表示自动生成被模拟的数据,sdk和xbox表示安卓模拟器的内核是由xbos模拟的,因此,当安卓应用程序的签名文件含有带有generic、keys、sdk或xbox的字符串信息,则代表所述安卓应用程序在安卓模拟器中运行。但由于安卓模拟器能够修改各种移动终端配置参数,为了防止安卓模拟器篡改安卓应用程序下的签名文件,因此本实施例中判断所述签名文件下不存在与安卓模拟器匹配的第一特征信息后,还进行后续检测。
下面回到图1,实施例1中步骤S1之后还包括步骤:
S2、获取安卓***的***文件,提取所述***文件中与所述安卓模拟器匹配的第二特征信息,并计算所述第二特征信息所对应的风险特征值,判断所述风险特征值是否超出预设风险特征阈值,若是,则执行步骤S3。
为了进一步确定所述安卓应用程序是否在安卓模拟器中运行,本实施例中进一步获取运行所述安卓应用程序的安卓***的***文件,提取所述***文件中与所述安卓模拟器匹配的第二特征信息。优选地,所述第二特征信息包括属性文件信息和CPU类型信息中的一种或两种。
具体实施时,当所述第二特征信息为属性文件信息时,需要获取所述安卓***的属性文件信息,判断所述安卓***的属性文件信息是否与所述安卓模拟器相匹配,若是,则将所述属性文件信息提取出来。由于读取属性文件信息的方法是私有的,不提供公开API,因此本实施例中调用指定class类利用JAVA反射机制对属性文件信息进行暴力反射加载获得所述属性文件信息。具体地,JAVA反射机制是在运动状态下,对于任意一个类,都能够知道这个类的所以属性和方法,要想解剖一个类,必须先要获取到该类的字节码文件对象,获取class文件对象的方法包括Object类的getClass()方法、静态属性class、Class类中静态方法forName()等。优选地,本实施例中通过反射获取无参构造方法并使用getDeclareMethods() 获取属性文件信息。
具体实施时,所述属性文件信息包括基带(baseband)信息、渠道(flavor)信息、主板(board)信息、平台(platform)信息和硬件(hardware)信息等。当获取到这些属性文件信息后,需要依次判断基带(baseband)信息、渠道(flavor)信息、主板(board)信息、平台(platform)信息和硬件(hardware)信息是否与第一模拟器信息相匹配,若匹配则将匹配的属性文件信息提取出来。例如:首先判断属性文件信息中的基带(baseband)信息是否与第一模拟器信息相匹配,若是,则提取基带(baseband)信息;再判断渠道(flavor)信息是否与第一模拟器信息相匹配,若否,则进一步判断主板(board)信息是否与第一模拟器信息相匹配,依次类推,将所述属性文件信息中与第一模拟器信息相匹配的所有子信息项提取出来。
具体实施时,本实施例中还预先设置了用于判断是否提取属性文件信息的第一模拟器信息,所述第一模拟器信息包括android_x86 或者vbox。android_x86即在Intel硬件基础上模拟和运行安卓应用程序的平台,当一个安卓应用程序运行在包含android_x86属性文件信息的安卓***上时,则判定该安卓应用程序运行在安卓模拟器上的风险较大。vbox是一种开源虚拟机,当一个安卓应用程序运行在包含vbox属性文件信息的安卓***上时,则判定该安卓应用程序运行在安卓模拟器上的风险较大。
具体实施时,由于安卓模拟器可能模拟真机的属性文件信息,为了增加模拟器检测的准确性,本实施例中在对***文件中的属性文件信息进行判定后,还进一步获取***文件中的CPU类型信息,判断所述CPU类型信息是否与预设的第二模拟器信息相匹配,若是,则提取所述CPU类型信息。
具体地,本实施例中通过安卓***的内建命令(shell命令)读取proc目录下的cpuinfo文件获取CPU类型信息。proc目录是一种内核和内核模块用来向进程(process)发送消息的机制,可以让用户能够和内核内部数据结构进行交互,获取有关进程状态信息等。proc目录下的文件包括/proc/cpuinfo- CPU信息 (型号, 家族, 缓存大小等);/proc/meminfo - 物理内存、交换空间等的信息;/proc/mounts - 已加载的文件***的列表等。本实施例中通过读取proc目录下的cpuinfo文件可以获取安卓***的CPU类型信息。
进一步地,安卓***的shell命令可以访问数据库、记录无线通讯日志,删除应用,使用一些linux命令,如ls//查看目录;date//打印或设置当前***时间;cat/proc/meminfo//查看内存信息;cat/proc/cpuinfo//查看CPU信息等,因此本实施例中通过安卓***的shell命令可以读取proc目录下的cpuinfo文件获取安卓***的CPU类型信息。安卓***执行外建命令时不但会触发磁盘I/O,还需要fork出一个单独的进程来执行,执行完成后再推出,而执行内建命令相当于调用当前shell进程的一个函数,安卓***的内建命令(shell命令)相对于安卓***的外建命令执行速度更快。
具体实施时,本实施例中还预先设置了用于判断是否提取CPU类型信息的第二模拟器信息,所述第二模拟器信息包括x86或dalvik.vm。市场上的PC机即桌面机常使用因特尔处理器,其属于x86架构,而手机则绝大部分属于ARM架构,当一个安卓应用程序运行在包含x86的CPU类型信息的安卓***上时,则判定该安卓应用程序运行在安卓模拟器上的风险较大。dalvik.vm是在安卓***上运行安卓程序的虚拟机,当一个安卓应用程序运行在包含dalvik.vm的CPU类型信息的安卓***上时,则判定该安卓应用程序运行在安卓模拟器上的风险较大。
具体实施时,为了判定所述安卓应用程序在安卓模拟器中运行的概率,本实施例中会预先设置一用于判定所述安卓应用程序在安卓模拟器上运行的风险特征值,并将所述风险特征值初始化为0。提取出与第一模拟器信息相匹配的属性文件信息和与第二模拟器信息相匹配的CPU类型信息后,根据提取出的属性文件信息和CPU类型信息的个数计算所述风险特征值。具体的计算方法为将提取出的属性文件信息和CPU类型信息的个数作为风险特征值。例如前述步骤中提到属性文件信息包括基带(baseband)信息、渠道(flavor)信息、主板(board)信息、平台(platform)信息和硬件(hardware)信息等5个子信息项,当提取出的与第一模拟器信息相匹配的子信息项包括基带(baseband)信息、渠道(flavor)信息、主板(board)信息,且提取出CPU类型信息时,则可确定提取出的属性文件信息和CPU类型信息的个数为4,则计算所述风险特征值也为4。
具体实施时,本实施例还预先设置了一风险特征阈值,当判断风险特征值大于风险特征阈值时,则判定安卓应用程序在安卓模拟器上运行,否则判定安卓应用程序不在安卓模拟器上运行。所述风险特征阈值可以根据用户需要自行设定,如设定1、2、3、4或5等。优选地,本实施例中设定所述风险特征阈值为3或4,如上述步骤中计算出的风险特征值为4,则若预设风险特征阈值为3,则判定安卓应用程序在模拟器上运行,若预设风险特征阈值为4,则判定安卓应用程序不在安卓模拟器上运行。
进一步地,安卓模拟器上的应用程序数量一般较少,而真机的应用程序一般较多。为了提高检测的准确性,本实施例中在提取出与模拟器信息相匹配的属性文件信息和CPU类型信息,并根据提取出的属性文件信息和CPU类型信息的个数计算出风险特征值后,还根据安卓***中应用程序个数对安卓应用程序是否在安卓模拟器上运行进行进一步判定。本实施例中设定了一应用程序个数阈值,当安卓***下的应用程序个数超过预设的应用程序个数阈值时,则将风险特征值加1;否则,风险特征值不变。最后根据风险特征值是否超过风险特征阈值判定应用程序是否在安卓模拟器中运行。例如,如前述步骤中所述根据提取出的属性文件信息和CPU类型信息的个数计算出所述风险特征值为4,假设风险特征阈值设定为4,若安卓***下的应用程序个数超过预设的应用程序个数阈值,则将风险特征值加1由4变为5,大于预设的风险特征阈值4,判定应用程序在安卓模拟器中运行;反之,若安卓***下的应用程序个数没有超过预设的应用程序个数阈值,则风险特征值不变仍然为4,没有超过预设的风险特征阈值,则判定应用程序不在安卓模拟器中运行。由于安卓模拟器中的应用程序的数量一般不会超过5个,优选地,本实施例中设定所述应用程序个数阈值为5。
下面回到图1,实施例1中步骤S2之后还包括步骤:
S3、判定所述安卓应用程序在安卓模拟器上运行。
具体实施时,若步骤S1中判定签名文件下存在于安卓模拟器匹配的第一特征信息,则判定安卓应用程序在安卓模拟器上运行。否则,进一步判定***文件下的属性文件信息和CPU类型信息是否与预设的模拟器信息匹配,根据提取出的与安卓模拟器匹配的属性文件信息和CPU类型信息个数计算风险特征值,若计算出的风险特征值大于预设的风险特征阈值,则判定安卓应用程序在安卓模拟器上运行;否则,判定应用程序未在安卓模拟器上运行。整个判定过程在安卓***框架下的一个***组件application类中进行加载,不会干扰应用程序的正常运行,且整个判定过程不是单纯依赖于CPU类型信息或者签名文件进行判定,而是根据计算出的风险特征值的大小进行判定,避免了安卓模拟器模拟真机的CPU类型信息等造成检测结果准确性差的问题。
为了更好地理解本发明的技术,本发明还提供一种具体的应用实施例,如图2中所示,具体包括如下步骤:
步骤201、获取安卓应用程序的签名文件;
步骤202、判断签名文件下是否存在第一特征信息,若是,则执行步骤211;若否,则执行步骤203;
步骤203、获取安卓***的***文件;
步骤204、提取***文件中与第一模拟器信息匹配的属性文件信息;
步骤205、提取***文件中与第二模拟器信息匹配的CPU类型信息;
步骤206、根据属性文件信息和CPU类型信息计算风险特征值;
步骤207、判断安卓***下的应用程序个数是否超过应用程序个数阈值,若是,则执行步骤208,若否,则执行步骤209;
步骤208、将风险特征值加1;
步骤209、风险特征值不变;
步骤210、判断风险特征值是否超过风险特征阈值,若是,则执行步骤211,若否,则执行步骤212;
步骤211、判定安卓应用程序在模拟器上运行;
步骤212、判定安卓应用程序不在模拟器上运行。
实施例2
基于上述实施例,本发明还提供了一种计算机设备,其原理框图可以如图3所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口、显示屏和温度传感器。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***和计算机程序。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种安卓模拟器检测方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的温度传感器是预先在计算机设备内部设置,用于检测内部设备的当前运行温度。
本领域技术人员可以理解,图3中示出的原理框图,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所述***应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时至少可以实现以下步骤:
S1、获取安卓应用程序的签名文件,判断所述签名文件下是否存在与安卓模拟器匹配的第一特征信息,若否,则执行步骤S2;若是,则执行步骤S3;
S2、获取安卓***的***文件,提取所述***文件中与所述安卓模拟器匹配的第二特征信息,并计算所述第二特征信息所对应的风险特征值,判断所述风险特征值是否超出预设风险特征阈值,若是,则执行步骤S3;
S3、判定所述安卓应用程序在安卓模拟器上运行。
在其中的一个实施例中,该处理器执行计算机程序时还可以实现:预先设置用于判定所述安卓应用程序在安卓模拟器上运行的风险特征值,并将所述风险特征值初始化为0。
在其中的一个实施例中,该处理器执行计算机程序时还可以实现:判断所述安卓应用程序的签名文件中是否含有所述字符串信息,若是,则判定安卓应用程序在安卓模拟器上运行。
在其中的一个实施例中,该处理器执行计算机程序时还可以实现:当所述第二特征信息为属性文件信息时,获取安卓***的***文件,判断所述***文件中的属性文件信息是否与预设的第一模拟器信息相匹配,若是,则提取所述属性文件信息。
在其中的一个实施例中,该处理器执行计算机程序时还可以实现:当所述第二特征信息为CPU类型信息时,获取安卓***的***文件,判断所述***文件中的CPU类型信息是否与预设的第二模拟器信息相匹配,若是,则提取所述CPU类型信息。
在其中的一个实施例中,该处理器执行计算机程序时还可以实现:根据提取出的所述第二特征信息的个数计算所述风险特征值;其中所述风险特征值等于提取出的所述第二特征信息的个数。
在其中的一个实施例中,该处理器执行计算机程序时还可以实现:判断安卓***下的应用程序个数是否超过预设的应用程序个数阈值,若是,则将所述风险特征值加1。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
综上所述,本发明提供一种安卓模拟器检测方法、计算机设备及存储介质,所述方法包括:获取安卓应用程序的签名文件,判断所述签名文件下是否存在与安卓模拟器匹配的第一特征信息;若否,则获取安卓***的***文件,提取所述***文件中与所述安卓模拟器匹配的第二特征信息,并计算所述第二特征信息所对应的风险特征值,判断所述风险特征值是否超出预设风险特征阈值;若是,则判定所述安卓应用程序在安卓模拟器上运行。本发明首先根据安卓应用程序中的签名文件判定安卓应用程序是否在安卓模拟器上运行;若否,则进一步根据提取出的***文件中与安卓模拟器匹配的第二特征信息计算风险特征值,根据计算出的风险特征值判定安卓应用程序是否在模拟器中运行,避免了安卓模拟器模拟真机的CPU类型信息等造成检测结果准确性差的问题,显著提高了检测准确性,进而在用户使用安卓应用程序时,保证了用户的财产安全。
应当理解的是,本发明的***应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

Claims (10)

1.一种安卓模拟器检测方法,其特征在于,包括以下步骤:
S1、获取安卓应用程序的签名文件,判断所述签名文件下是否存在与安卓模拟器匹配的第一特征信息,若否,则执行步骤S2;若是,则执行步骤S3;
S2、获取安卓***的***文件,提取所述***文件中与所述安卓模拟器匹配的第二特征信息,并计算所述第二特征信息所对应的风险特征值,判断所述风险特征值是否超出预设风险特征阈值,若是,则执行步骤S3;
S3、判定所述安卓应用程序在安卓模拟器上运行。
2.根据权利要求1所述的安卓模拟器检测方法,其特征在于,所述步骤S1之前,还包括:
预先设置用于判定所述安卓应用程序在安卓模拟器上运行的风险特征值,并将所述风险特征值初始化为0。
3.根据权利要求1所述的安卓模拟器检测方法,其特征在于,所述第一特征信息为与所述安卓模拟器所匹配签名文件中含有的具有唯一标识的字符串信息;
所述步骤S1中判断所述签名文件下是否存在与安卓模拟器匹配的第一特征信息的步骤包括:
判断所述安卓应用程序的签名文件中是否含有所述字符串信息。
4.根据权利要求1所述的安卓模拟器检测方法,其特征在于,步骤S2中,所述第二特征信息包括:属性文件信息和CPU类型信息中的一种或两种。
5.根据权利要求4所述的安卓模拟器检测方法,其特征在于,当所述第二特征信息为属性文件信息时,所述步骤S2中获取安卓***的***文件,提取所述***文件中与所述安卓模拟器匹配的第二特征信息的步骤包括:
获取安卓***的***文件,判断所述***文件中的属性文件信息是否与预设的第一模拟器信息相匹配,若是,则提取所述属性文件信息。
6.根据权利要求4所述的安卓模拟器检测方法,其特征在于,当所述第二特征信息为CPU类型信息时,所述步骤S2中获取安卓***的***文件,提取所述***文件中与所述安卓模拟器匹配的第二特征信息的步骤包括:
获取安卓***的***文件,判断所述***文件中的CPU类型信息是否与预设的第二模拟器信息相匹配,若是,则提取所述CPU类型信息。
7.根据权利要求1所述的安卓模拟器检测方法,其特征在于,步骤S2中计算所述第二特征信息所对应的风险特征值的步骤包括:
根据提取出的所述第二特征信息的个数计算所述风险特征值;其中所述风险特征值等于提取出的所述第二特征信息的个数。
8.根据权利要求7所述的安卓模拟器检测方法,其特征在于,所述根据提取出的所述第二特征信息的个数计算所述风险特征值的步骤之后,还包括:
判断安卓***下的应用程序个数是否超过预设的应用程序个数阈值,若是,则将所述风险特征值加1。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的方法的步骤。
CN201910609775.1A 2019-07-08 2019-07-08 一种安卓模拟器检测方法、计算机设备及存储介质 Pending CN110334028A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910609775.1A CN110334028A (zh) 2019-07-08 2019-07-08 一种安卓模拟器检测方法、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910609775.1A CN110334028A (zh) 2019-07-08 2019-07-08 一种安卓模拟器检测方法、计算机设备及存储介质

Publications (1)

Publication Number Publication Date
CN110334028A true CN110334028A (zh) 2019-10-15

Family

ID=68143351

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910609775.1A Pending CN110334028A (zh) 2019-07-08 2019-07-08 一种安卓模拟器检测方法、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN110334028A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111079149A (zh) * 2019-10-21 2020-04-28 厦门美柚股份有限公司 识别Android模拟器的方法及装置
CN111097175A (zh) * 2019-11-21 2020-05-05 腾讯科技(深圳)有限公司 一种模拟器的确定方法、装置及存储介质
CN111104337A (zh) * 2019-12-30 2020-05-05 杭州云缔盟科技有限公司 一种检测终端模拟器的方法
CN111338946A (zh) * 2020-02-24 2020-06-26 北京新氧科技有限公司 安卓模拟器检测方法及装置
CN112486517A (zh) * 2020-11-30 2021-03-12 展讯半导体(南京)有限公司 应用程序的安装方法、***、电子设备及存储介质
CN113282304A (zh) * 2021-05-14 2021-08-20 杭州云深科技有限公司 基于app安装列表识别虚拟机的***
CN113468541A (zh) * 2021-06-30 2021-10-01 北京达佳互联信息技术有限公司 运行环境识别方法、装置、电子设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013042802A1 (ko) * 2011-09-20 2013-03-28 주식회사 인프라웨어테크놀러지 안드로이드 앱의 행위정보 동적분석 에뮬레이터 및 이를 포함하는 행위정보 동적분석 시스템, 그리고 안드로이드 앱의 행위정보 동적분석 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
CN107729749A (zh) * 2017-09-30 2018-02-23 北京梆梆安全科技有限公司 结合***信息和硬件特性的安卓模拟器检测方法及装置
CN109144665A (zh) * 2018-07-27 2019-01-04 平安科技(深圳)有限公司 一种模拟器识别方法、识别设备及计算机可读介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013042802A1 (ko) * 2011-09-20 2013-03-28 주식회사 인프라웨어테크놀러지 안드로이드 앱의 행위정보 동적분석 에뮬레이터 및 이를 포함하는 행위정보 동적분석 시스템, 그리고 안드로이드 앱의 행위정보 동적분석 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
CN107729749A (zh) * 2017-09-30 2018-02-23 北京梆梆安全科技有限公司 结合***信息和硬件特性的安卓模拟器检测方法及装置
CN109144665A (zh) * 2018-07-27 2019-01-04 平安科技(深圳)有限公司 一种模拟器识别方法、识别设备及计算机可读介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CSDN用户: "Android判断模拟器还是真机的方法", 《CSDN,网址:HTTPS://BLOG.CSDN.NET/TIANSHUAI4317618/ARTICLE/DETAILS/78834683/》 *
简书用户:普通的程序员: "一行代码帮你检测Android模拟器(更新至1.1.0)", 《简书,网址:HTTPS://WWW.JIANSHU.COM/P/434B3075B5DD》 *
简书用户:道阻且长_行则将至: "Android检测虚拟机的方法", 《简书,网址,HTTPS://WWW.JIANSHU.COM/P/2991477697B5 1/》 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111079149A (zh) * 2019-10-21 2020-04-28 厦门美柚股份有限公司 识别Android模拟器的方法及装置
CN111097175A (zh) * 2019-11-21 2020-05-05 腾讯科技(深圳)有限公司 一种模拟器的确定方法、装置及存储介质
CN111097175B (zh) * 2019-11-21 2021-09-14 腾讯科技(深圳)有限公司 一种模拟器的确定方法、装置及存储介质
CN111104337A (zh) * 2019-12-30 2020-05-05 杭州云缔盟科技有限公司 一种检测终端模拟器的方法
CN111338946A (zh) * 2020-02-24 2020-06-26 北京新氧科技有限公司 安卓模拟器检测方法及装置
CN111338946B (zh) * 2020-02-24 2023-07-14 北京新氧科技有限公司 安卓模拟器检测方法及装置
CN112486517A (zh) * 2020-11-30 2021-03-12 展讯半导体(南京)有限公司 应用程序的安装方法、***、电子设备及存储介质
CN112486517B (zh) * 2020-11-30 2023-03-24 展讯半导体(南京)有限公司 应用程序的安装方法、***、电子设备及存储介质
CN113282304A (zh) * 2021-05-14 2021-08-20 杭州云深科技有限公司 基于app安装列表识别虚拟机的***
CN113282304B (zh) * 2021-05-14 2022-04-29 杭州云深科技有限公司 基于app安装列表识别虚拟机的***
CN113468541A (zh) * 2021-06-30 2021-10-01 北京达佳互联信息技术有限公司 运行环境识别方法、装置、电子设备和存储介质
CN113468541B (zh) * 2021-06-30 2024-03-12 北京达佳互联信息技术有限公司 识别方法、装置、电子设备和存储介质

Similar Documents

Publication Publication Date Title
CN110334028A (zh) 一种安卓模拟器检测方法、计算机设备及存储介质
CN109117250B (zh) 一种模拟器识别方法、识别设备及计算机可读介质
EP3074863B1 (en) System and method for testing data representation for different mobile devices
CN111159691B (zh) 一种应用程序动态可信验证方法及***
CN107729749A (zh) 结合***信息和硬件特性的安卓模拟器检测方法及装置
WO2020019483A1 (zh) 一种模拟器识别方法、识别设备及计算机可读介质
CN109062667B (zh) 一种模拟器识别方法、识别设备及计算机可读介质
CN109145590B (zh) 一种函数hook检测方法、检测设备及计算机可读介质
KR102509594B1 (ko) 어플리케이션 코드의 위변조 여부 탐지 방법 및 이를 지원하는 전자 장치
CN105357204B (zh) 生成终端识别信息的方法及装置
CN107870980B (zh) 电子装置、账单数据处理方法及计算机存储介质
CN108446572A (zh) 一种基于服务粒度的隐私权限管理方法
CN111737692A (zh) 应用程序的风险检测方法及装置、设备、存储介质
US20230078733A1 (en) Firmware password management
US20160092313A1 (en) Application Copy Counting Using Snapshot Backups For Licensing
CN108932146A (zh) 页面显示方法、装置以及计算机可读存储介质
CN112600803B (zh) Web端数据签名方法、装置及计算机设备
CN108985014A (zh) 一种导出保护游戏中的Python字节码文件的方法及装置
CN115017436A (zh) 应用程序的数据交互方法、装置、计算机设备和存储介质
CN110262856B (zh) 一种应用程序数据采集方法、装置、终端及存储介质
CN114003421A (zh) 虚拟机超时机制测试方法、***、终端及存储介质
US10444938B1 (en) Systems and methods for customizing user icons
CN113535580A (zh) 一种cts测试方法、装置及测试设备
CN202838353U (zh) 具有pin码输入功能的智能卡读卡器
CN112631949A (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