CN110377499B - 一种对应用程序进行测试的方法及装置 - Google Patents

一种对应用程序进行测试的方法及装置 Download PDF

Info

Publication number
CN110377499B
CN110377499B CN201910489985.1A CN201910489985A CN110377499B CN 110377499 B CN110377499 B CN 110377499B CN 201910489985 A CN201910489985 A CN 201910489985A CN 110377499 B CN110377499 B CN 110377499B
Authority
CN
China
Prior art keywords
component
application program
activity
target
starting
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
CN201910489985.1A
Other languages
English (en)
Other versions
CN110377499A (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.)
Qianxin Technology Group Co Ltd
Original Assignee
Qianxin Technology Group 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 Qianxin Technology Group Co Ltd filed Critical Qianxin Technology Group Co Ltd
Priority to CN201910489985.1A priority Critical patent/CN110377499B/zh
Publication of CN110377499A publication Critical patent/CN110377499A/zh
Application granted granted Critical
Publication of CN110377499B publication Critical patent/CN110377499B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/3688Test management for test execution, e.g. scheduling of test suites
    • 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/3696Methods or tools to render software testable
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例提供了一种对应用程序进行测试的方法及装置,对应用程序进行测试的沙箱在接收到应用程序对应的样本文件后,通过样本文件的组件信息查找作为应用程序启动入口的目标组件,根据该目标组件对应用程序进行测试。沙箱根据Activity组件的信息和/或Service组件的信息查找目标组件,遍历所有Activity组件和/或Service组件直到查找到作为启动入口的目标组件。通过该方法,即使应用程序采用传统的沙箱不会认定为启动入口或者无法识别的组件作为启动应用程序的入口,本申请中提供的沙箱也能查找到应用程序的启动入口,实现对应用程序的测试过程,保证测试的顺利进行,消除网络安全隐患。

Description

一种对应用程序进行测试的方法及装置
技术领域
本发明涉及应用程序测试技术领域,尤其是涉及一种对应用程序进行测试的方法及装置。
背景技术
沙箱(Sandbox)是一种网络编程虚拟执行环境,常用于对应用程序进行测试,其创造了一个类似沙盒的独立作业环境,可以用来测试不受信任的应用程序或上网行为。当将应用程序对应的样本文件输入到沙箱后,沙箱通过样本文件中启动该应用程序的组件对该应用程序进行测试。然而,现有的沙箱在识别应用程序启动入口的组件过程中,采用的方法较为局限,使得恶意软件能够通过在AndroidManifest.xml文件中设定特殊格式的组件信息使得沙箱无法识别出应用程序启动入口,从而避开对应用程序的测试过程。例如,恶意软件在设计沙箱启动入口的组件时,将沙箱不会认定为启动入口或者将沙箱无法识别的组件作为该恶意软件的启动入口组件,在对该恶意软件进行测试时,由于沙箱无法识别出该恶意软件的启动入口,从而避开了对该恶意软件进行动态测试的过程。
在实际应用过程中,发明人发现现有的沙箱在识别作为应用程序启动入口的组件过程中方法较为局限,使得恶意软件很容易绕开沙箱对其进行动态测试的过程,带来网络安全隐患。
发明内容
本发明实施例提供一种对应用程序进行测试的方法及装置,用以解决现有技术中沙箱在识别作为应用程序启动入口的组件过程中方法较为局限,使得恶意软件很容易绕开沙箱对其进行动态测试的过程,带来网络安全隐患的问题。
针对以上技术问题,本发明的实施例提供了一种对应用程序进行测试的方法,包括:
接收应用程序对应的样本文件,读取所述样本文件中的组件信息;
遍历所述组件信息对应的组件,直到查找到作为所述应用程序启动入口的组件,将查找到的组件作为目标组件;
根据所述目标组件执行启动所述应用程序的代码,并对所述应用程序进行测试;
所述组件信息对应的组件包括Activity组件和/或Service组件。
本发明的实施例提供了一种对应用程序进行测试的装置,包括:
读取模块,用于接收应用程序对应的样本文件,读取所述样本文件中的组件信息;
查找模块,用于遍历所述组件信息对应的组件,直到查找到作为所述应用程序启动入口的组件,将查找到的组件作为目标组件;
测试模块,用于根据所述目标组件执行启动所述应用程序的代码,并对所述应用程序进行测试;
所述组件信息对应的组件包括Activity组件和/或Service组件。
本发明的实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以上所述的对应用程序进行测试的方法的步骤。
本发明的实施例提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以上所述的对应用程序进行测试的方法的步骤。
本发明的实施例提供了一种对应用程序进行测试的方法及装置,对应用程序进行测试的沙箱在接收到应用程序对应的样本文件后,通过样本文件的组件信息查找作为应用程序启动入口的目标组件,根据该目标组件对应用程序进行测试。沙箱根据Activity组件的信息和/或Service组件的信息查找目标组件,遍历所有Activity组件和/或Service组件直到查找到作为启动入口的目标组件。通过该方法,即使应用程序采用传统的沙箱不会认定为启动入口或者无法识别的组件作为启动应用程序的入口,本申请中提供的沙箱也能查找到应用程序的启动入口,实现对应用程序的测试过程,保证测试的顺利进行,消除网络安全隐患。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的一种对应用程序进行测试的方法的流程示意图;
图2是本发明另一个实施例提供一种对应用程序进行测试的装置的结构框图;
图3是本发明另一个实施例提供的电子设备的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本实施例提供的一种对应用程序进行测试的方法的流程示意图,参见图1,该方法包括:
101:接收应用程序对应的样本文件,读取所述样本文件中的组件信息;
102:遍历所述组件信息对应的组件,直到查找到作为所述应用程序启动入口的组件,将查找到的组件作为目标组件;
103:根据所述目标组件执行启动所述应用程序的代码,并对所述应用程序进行测试;
所述组件信息对应的组件包括Activity组件和/或Service组件。
本实施例提供的方法由安装有对应用程序进行测试的沙箱的设备执行,例如,服务器、终端或者专用于对应用程序进行测试的设备,本实施例对此不做具体限制。沙箱通过执行上述步骤101-103实现对应用程序的测试。例如,在对应用于Android系统的应用程序进行测试时,将该应用程序的安装文件作为样本文件,将该样本文件输入沙箱中,沙箱从样本文件中读取组件信息,采用遍历的方法,直到在Activity组件和/或Service组件中找到作为应用程序启动入口的目标组件,通过该目标组件实现对该应用程序的测试。
本实施例中的应用程序为实现某种功能的软件,例如,安装在Android系统中的各种APP,包括聊天软件、购物软件或者新闻类软件等。应用程序对应的样本文件为应用程序的安装文件,将某应用程序对应的样本文件输入到沙箱中,本申请提供的沙箱便可通过样本文件中的组件查找作为启动该应用程序启动入口的组件,通过该组件实现对应用程序的测试。通常,在对应用程序进行测试时,先从样本文件中提取AndroidManifest.xml文件,再从AndroidManifest.xml文件中提取Activity组件和/或Service组件。通常对安装在版本为2.3以上的Android系统的应用程序,其启动入口设置在Activity组件的某些特定组件中。对安装在版本为2.3或者2.3以下的Android系统的应用程序,其不包含Activity组件,启动入口的组件设置在Service组件的某些特定组件中。因此,为了保证沙箱能够对应用程序进行测试,本实施例提供的沙箱通过遍历的方法Activity组件和/或Service组件查找作为启动入口的组件,避免因应用程序适用的Android系统版本不同,或者设计者刻意避开常作为启动入口的特定组件时,沙箱因无法查找到启动入口而无法进行测试的情况。
本实施例提供了一种对应用程序进行测试的方法,对应用程序进行测试的沙箱在接收到应用程序对应的样本文件后,通过样本文件的组件信息查找作为应用程序启动入口的目标组件,根据该目标组件对应用程序进行测试。沙箱根据Activity组件的信息和/或Service组件的信息查找目标组件,遍历所有Activity组件和/或Service组件直到查找到作为启动入口的目标组件。通过该方法,即使应用程序采用传统的沙箱不会认定为启动入口或者无法识别的组件作为启动应用程序的入口,本申请中提供的沙箱也能查找到应用程序的启动入口,实现对应用程序的测试过程,保证测试的顺利进行,消除网络安全隐患。
进一步地,在上述实施例的基础上,所述遍历所述组件信息对应的组件,直到查找到作为所述应用程序启动入口的组件,将查找到的组件作为目标组件,包括:
根据所述组件信息判断是否存在Activity组件,若是,则根据Activity组件查找所述目标组件;
若根据所述组件信息判断不存在Activity组件或者在Activity组件查找不到所述目标组件,则根据所述组件信息判断是否存在Service组件,若是,则根据Service组件查找所述目标组件,否则,显示无法查询到所述目标组件的提示信息。
沙箱先判断是否存在Activity组件,若存在从Activity组件中查找目标组件。若不存在或者遍历Activity组件也没有查找到作为启动入口的组件,则以遍历Service组件的方式查找目标组件,实现了对作为启动入口组件的全面查找。
进一步地,在上述各实施例的基础上,所述根据所述组件信息判断是否存在Activity组件,若是,则根据Activity组件查找所述目标组件,包括:
若根据所述组件信息判断存在Activity组件,则将查找到的包含第一组件内容且包含第二组件内容的Activity组件作为所述目标组件;
若未查找到包含所述第一组件内容且包含所述第二组件内容的Activity组件,则将查找到的包含所述第一组件内容且未包含所述第二组件内容的Activity组件作为所述目标组件;
若未查找到包含所述第一组件内容且未包含所述第二组件内容的Activity组件,则将查找到的未包含所述第一组件内容且包含所述第二组件内容的Activity组件作为所述目标组件;
若未查找到未包含所述第一组件内容且包含所述第二组件内容的Activity组件,则判断是否存在执行启动所述应用程序成功的Activity组件,若是,将执行启动所述应用程序成功的Activity组件作为所述目标组件;
其中,所述第一组件内容包括"android.intent.action.MAIN",所述第二组件内容包括"android.intent.category.LAUNCHER"。
进一步地,在上述各实施例的基础上,所述若根据所述组件信息判断不存在Activity组件或者在Activity组件查找不到所述目标组件,则根据所述组件信息判断是否存在Service组件,若是,则根据Service组件查找所述目标组件,否则,显示无法查询到所述目标组件的提示信息,包括:
若判断不存在执行启动所述应用程序成功的Activity组件,或者根据所述组件信息判断不存在Activity组件,则根据所述组件信息判断是否存在Service组件;
若根据所述组件信息判断存在Service组件,则判断是否存在执行启动所述应用程序成功的Service组件,若是,将执行启动所述应用程序成功的Service组件作为所述目标组件;
若判断不存在执行启动所述应用程序成功的Service组件,或者判断不存在Service组件,则显示无法查询到所述目标组件的提示信息。
一般情况下,对于应用于版本为2.3以上的Android系统的应用程序,以包含第一组件内容且包含第二组件内容的Activity组件作为应用程序启动入口的组件。当未查询到包含第一组件内容且包含第二组件内容的Activity组件时,则认为该应用程序为以非正常格式编写的应用程序,此时,通过现有方法,沙箱无法查询到作为启动入口的组件。然而,本实施例提供的方法还要依次查找包含所述第一组件内容且未包含所述第二组件内容的Activity组件、未包含所述第一组件内容且包含所述第二组件内容的Activity组件、以及所有Activity组件直到查找到作为启动入口的组件。同理,在从Service组件查找作为启动入口的组件时,也要遍历每一Service组件直到查找到作为启动入口的组件,实现了对可能作为启动入口的组件的全面查找,避免了通过沙箱不会认定为启动入口或者无法识别的组件作为启动应用程序的入口来避免对应用程序进行检测的情况发生。
进一步地,所述判断是否存在执行启动所述应用程序成功的Activity组件,若是,将执行启动所述应用程序成功的Activity组件作为所述目标组件,包括:
循环执行第一目标组件检测操作,直到以当前的Activity组件作为所述目标组件时,根据所述目标组件生成的启动所述应用程序的代码执行成功,以当前的Activity组件作为所述目标组件;其中,所述第一目标组件检测操作包括:以当前未遍历的Activity组件作为所述目标组件,生成启动所述应用程序的代码,执行启动所述应用程序的代码,得到启动所述应用程序的代码是否执行成功的结果。
进一步地,所述判断是否存在执行启动所述应用程序成功的Service组件,若是,将执行启动所述应用程序成功的Service组件作为所述目标组件,包括:
循环执行第二目标组件检测操作,直到以当前的Service组件作为所述目标组件时,根据所述目标组件生成的启动所述应用程序的代码执行成功,以当前的Service组件作为所述目标组件;其中,所述第二目标组件检测操作包括:以当前未遍历的Service组件作为所述目标组件,生成启动所述应用程序的代码,执行启动所述应用程序的代码,得到启动所述应用程序的代码是否执行成功的结果。
进一步地,在上述各实施例的基础上,所述接收应用程序对应的样本文件,读取所述样本文件中的组件信息,包括:
接收应用程序对应的样本文件,获取所述样本文件中的AndroidManifest.xml文件,读取AndroidManifest.xml文件中组件的组件信息。
具体来说,沙箱接收到样本文件a.apk后,对样本文件进行静态分析,从样本文件中的AndroidManifest.xml文件中提取Activity组件和Service组件,查找包含"android.intent.action.MAIN"和"android.intent.category.LAUNCHER"内容的Activity组件,若查找到该Activity组件,以该Activity组件作为启动入口,对样本进行动态行为分析;
若未找到,则说明该样本为以非正常格式撰写的文件,此时需继续进行查找,查找只包含"android.intent.action.MAIN"且未包含"android.intent.category.LAUNCHER"内容的Activity组件,若查找到该Activity组件,则以该Activity组件作为启动入口,对样本进行动态行为分析;
若未查找到,则查找未包含"android.intent.action.MAIN"且只包含"android.intent.category.LAUNCHER"内容的Activity组件,若查找到该Activity组件,则以该Activity组件作为启动入口,对样本进行动态行为分析;
若未查找到,则依次测试所有Activity组件是否为启动入口,直到找到启动入口,对样本进行动态行为分析;若未找到,则依次测试所有Service组件是否为启动入口,直到找到启动入口,对样本进行动态行为分析。
进一步地,在上述各实施例的基础上,所述根据所述目标组件执行启动所述应用程序的代码,并对所述应用程序进行动态行为分析,包括:
根据所述目标组件生成启动所述应用程序的代码,在执行启动所述应用程序的代码后,通过预先生成的测试实例对所述应用程序进行测试,得到测试结果,显示所述测试结果。
查找到作为启动入口的组件后,将该启动入口的组件作为参数,生成启动应用程序的代码,执行该代码后,通过沙箱中已有的测试实例对应用程序进行测试,显示测试结果。
本实施例提供了一种对应用程序进行测试的方法,通过分析Android样本的AndroidManifest.xml文件,读取其中的组件信息,通过Activity组件的信息和/或Service组件的信息查找到应用程序的启动入口后,完成对应用程序的动态测试过程。
图2示出了本发明的实施例提供的一种对应用程序进行测试的装置的结构框图,参见图2,本实施例提供的对应用程序进行测试的装置,包括读取模块201、查找模块202和测试模块203,其中,
读取模块201,用于接收应用程序对应的样本文件,读取所述样本文件中的组件信息;
查找模块202,用于遍历所述组件信息对应的组件,直到查找到作为所述应用程序启动入口的组件,将查找到的组件作为目标组件;
测试模块203,用于根据所述目标组件执行启动所述应用程序的代码,并对所述应用程序进行测试;
所述组件信息对应的组件包括Activity组件和/或Service组件。
本实施例提供的对应用程序进行测试的装置适用于上述实施例中提供的对应用程序进行测试的方法,在此不再赘述。
本发明的实施例提供了一种对应用程序进行测试的装置,对应用程序进行测试的沙箱在接收到应用程序对应的样本文件后,通过样本文件的组件信息查找作为应用程序启动入口的目标组件,根据该目标组件对应用程序进行测试。沙箱根据Activity组件的信息和/或Service组件的信息查找目标组件,遍历所有Activity组件和/或Service组件直到查找到作为启动入口的目标组件。通过该方法,即使应用程序采用传统的沙箱不会认定为启动入口或者无法识别的组件作为启动应用程序的入口,本申请中提供的沙箱也能查找到应用程序的启动入口,实现对应用程序的测试过程,保证测试的顺利进行,消除网络安全隐患。
图3是示出本实施例提供的电子设备的结构框图。
参照图3,所述电子设备包括:处理器(processor)310、通信接口(CommunicationsInterface)320、存储器(memory)330和通信总线340,其中,处理器310,通信接口320,存储器330通过通信总线340完成相互间的通信。处理器310可以调用存储器330中的逻辑指令,以执行如下方法:接收应用程序对应的样本文件,读取所述样本文件中的组件信息;遍历所述组件信息对应的组件,直到查找到作为所述应用程序启动入口的组件,将查找到的组件作为目标组件;根据所述目标组件执行启动所述应用程序的代码,并对所述应用程序进行测试;所述组件信息对应的组件包括Activity组件和/或Service组件。
此外,上述的存储器330中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行如下方法:接收应用程序对应的样本文件,读取所述样本文件中的组件信息;遍历所述组件信息对应的组件,直到查找到作为所述应用程序启动入口的组件,将查找到的组件作为目标组件;根据所述目标组件执行启动所述应用程序的代码,并对所述应用程序进行测试;所述组件信息对应的组件包括Activity组件和/或Service组件。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如,包括:接收应用程序对应的样本文件,读取所述样本文件中的组件信息;遍历所述组件信息对应的组件,直到查找到作为所述应用程序启动入口的组件,将查找到的组件作为目标组件;根据所述目标组件执行启动所述应用程序的代码,并对所述应用程序进行测试;所述组件信息对应的组件包括Activity组件和/或Service组件。
以上所描述的电子设备等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上各实施例仅用以说明本发明的实施例的技术方案,而非对其限制;尽管参照前述各实施例对本发明的实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明的实施例各实施例技术方案的范围。

Claims (9)

1.一种对应用程序进行测试的方法,其特征在于,包括:
接收应用程序对应的样本文件,读取所述样本文件中的组件信息;
遍历所述组件信息对应的组件,直到查找到作为所述应用程序启动入口的组件,将查找到的组件作为目标组件;
根据所述目标组件执行启动所述应用程序的代码,并对所述应用程序进行测试;
其中,所述组件信息对应的组件包括Activity组件和/或Service组件;
所述遍历所述组件信息对应的组件,直到查找到作为所述应用程序启动入口的组件,将查找到的组件作为目标组件,包括:
根据所述组件信息判断是否存在Activity组件,若是,则根据Activity组件查找所述目标组件;
若根据所述组件信息判断存在Activity组件,则将查找到的包含第一组件内容且包含第二组件内容的Activity组件作为所述目标组件;
若未查找到包含所述第一组件内容且包含所述第二组件内容的Activity组件,则将查找到的包含所述第一组件内容且未包含所述第二组件内容的Activity组件作为所述目标组件;
若未查找到包含所述第一组件内容且未包含所述第二组件内容的Activity组件,则将查找到的未包含所述第一组件内容且包含所述第二组件内容的Activity组件作为所述目标组件;
若未查找到未包含所述第一组件内容且包含所述第二组件内容的Activity组件,则判断是否存在执行启动所述应用程序成功的Activity组件,若是,将执行启动所述应用程序成功的Activity组件作为所述目标组件;
其中,所述第一组件内容包括"android.intent.action.MAIN",所述第二组件内容包括"android.intent.category.LAUNCHER"。
2.根据权利要求1所述的对应用程序进行测试的方法,其特征在于,所述遍历所述组件信息对应的组件,直到查找到作为所述应用程序启动入口的组件,将查找到的组件作为目标组件,包括:
若根据所述组件信息判断不存在Activity组件或者在Activity组件查找不到所述目标组件,则根据所述组件信息判断是否存在Service组件,若是,则根据Service组件查找所述目标组件,否则,显示无法查询到所述目标组件的提示信息。
3.根据权利要求1所述的对应用程序进行测试的方法,其特征在于,所述若根据所述组件信息判断不存在Activity组件或者在Activity组件查找不到所述目标组件,则根据所述组件信息判断是否存在Service组件,若是,则根据Service组件查找所述目标组件,否则,显示无法查询到所述目标组件的提示信息,包括:
若判断不存在执行启动所述应用程序成功的Activity组件,或者根据所述组件信息判断不存在Activity组件,则根据所述组件信息判断是否存在Service组件;
若根据所述组件信息判断存在Service组件,则判断是否存在执行启动所述应用程序成功的Service组件,若是,将执行启动所述应用程序成功的Service组件作为所述目标组件;
若判断不存在执行启动所述应用程序成功的Service组件,或者判断不存在Service组件,则显示无法查询到所述目标组件的提示信息。
4.根据权利要求1所述的对应用程序进行测试的方法,其特征在于,所述根据所述目标组件执行启动所述应用程序的代码,并对所述应用程序进行动态行为分析,包括:
根据所述目标组件生成启动所述应用程序的代码,在执行启动所述应用程序的代码后,通过预先生成的测试实例对所述应用程序进行测试,得到测试结果,显示所述测试结果。
5.根据权利要求1所述的对应用程序进行测试的方法,其特征在于,所述接收应用程序对应的样本文件,读取所述样本文件中的组件信息,包括:
接收应用程序对应的样本文件,获取所述样本文件中的AndroidManifest.xml文件,读取AndroidManifest.xml文件中组件的组件信息。
6.一种对应用程序进行测试的装置,其特征在于,包括:
读取模块,用于接收应用程序对应的样本文件,读取所述样本文件中的组件信息;
查找模块,用于遍历所述组件信息对应的组件,直到查找到作为所述应用程序启动入口的组件,将查找到的组件作为目标组件;
测试模块,用于根据所述目标组件执行启动所述应用程序的代码,并对所述应用程序进行测试;
所述组件信息对应的组件包括Activity组件和/或Service组件;
所述查找模块还用于,
根据所述组件信息判断是否存在Activity组件,若是,则根据Activity组件查找所述目标组件;
若根据所述组件信息判断存在Activity组件,则将查找到的包含第一组件内容且包含第二组件内容的Activity组件作为所述目标组件;
若未查找到包含所述第一组件内容且包含所述第二组件内容的Activity组件,则将查找到的包含所述第一组件内容且未包含所述第二组件内容的Activity组件作为所述目标组件;
若未查找到包含所述第一组件内容且未包含所述第二组件内容的Activity组件,则将查找到的未包含所述第一组件内容且包含所述第二组件内容的Activity组件作为所述目标组件;
若未查找到未包含所述第一组件内容且包含所述第二组件内容的Activity组件,则判断是否存在执行启动所述应用程序成功的Activity组件,若是,将执行启动所述应用程序成功的Activity组件作为所述目标组件;
其中,所述第一组件内容包括"android.intent.action.MAIN",所述第二组件内容包括"android.intent.category.LAUNCHER"。
7.根据权利要求6所述的对应用程序进行测试的装置,其特征在于,所述查找模块还用于,若根据所述组件信息判断不存在Activity组件或者在Activity组件查找不到所述目标组件,则根据所述组件信息判断是否存在Service组件,若是,则根据Service组件查找所述目标组件,否则,显示无法查询到所述目标组件的提示信息。
8.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至5任一项所述的对应用程序进行测试的方法的步骤。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至5任一项所述的对应用程序进行测试的方法的步骤。
CN201910489985.1A 2019-06-06 2019-06-06 一种对应用程序进行测试的方法及装置 Active CN110377499B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910489985.1A CN110377499B (zh) 2019-06-06 2019-06-06 一种对应用程序进行测试的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910489985.1A CN110377499B (zh) 2019-06-06 2019-06-06 一种对应用程序进行测试的方法及装置

Publications (2)

Publication Number Publication Date
CN110377499A CN110377499A (zh) 2019-10-25
CN110377499B true CN110377499B (zh) 2023-05-23

Family

ID=68249868

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910489985.1A Active CN110377499B (zh) 2019-06-06 2019-06-06 一种对应用程序进行测试的方法及装置

Country Status (1)

Country Link
CN (1) CN110377499B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110147671B (zh) * 2019-05-29 2022-04-29 奇安信科技集团股份有限公司 一种程序内字符串提取方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104301916A (zh) * 2014-11-07 2015-01-21 东南大学 基于移动智能终端通用插件的测试优化方法、装置及系统
CN106446689A (zh) * 2016-09-02 2017-02-22 中科信息安全共性技术国家工程研究中心有限公司 一种对android应用进行自动化安全检测的方法
CN108133139A (zh) * 2017-11-28 2018-06-08 西安交通大学 一种基于多运行环境行为比对的安卓恶意应用检测系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104091121B (zh) * 2014-06-12 2017-07-18 上海交通大学 对Android重打包恶意软件的恶意代码的检测、切除和恢复的方法
CN105224869B (zh) * 2014-06-12 2019-01-08 腾讯科技(深圳)有限公司 组件测试方法和装置
CN104834858A (zh) * 2015-04-24 2015-08-12 南京邮电大学 一种android应用中恶意代码的静态检测方法
CN106845240A (zh) * 2017-03-10 2017-06-13 西京学院 一种基于随机森林的Android恶意软件静态检测方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104301916A (zh) * 2014-11-07 2015-01-21 东南大学 基于移动智能终端通用插件的测试优化方法、装置及系统
CN106446689A (zh) * 2016-09-02 2017-02-22 中科信息安全共性技术国家工程研究中心有限公司 一种对android应用进行自动化安全检测的方法
CN108133139A (zh) * 2017-11-28 2018-06-08 西安交通大学 一种基于多运行环境行为比对的安卓恶意应用检测系统

Also Published As

Publication number Publication date
CN110377499A (zh) 2019-10-25

Similar Documents

Publication Publication Date Title
CN109743315B (zh) 针对网站的行为识别方法、装置、设备及可读存储介质
US9824212B2 (en) Method and system for recognizing advertisement plug-ins
CN109375945B (zh) 物联网设备的固件版本探测方法及漏洞修复率评估方法
US10339315B2 (en) Apparatus and method for detecting malicious mobile app
CN108734012B (zh) 恶意软件识别方法、装置及电子设备
CN110929264B (zh) 漏洞检测方法、装置、电子设备及可读存储介质
CN110866258B (zh) 快速定位漏洞方法、电子装置及存储介质
EP3637292B1 (en) Determination device, determination method, and determination program
CN112417461A (zh) 设备固件的模糊测试方法及系统
CN108182363B (zh) 嵌入式office文档的检测方法、系统及存储介质
CN111368289A (zh) 一种恶意软件检测方法和装置
EP3293664A1 (en) Software analysis system, software analysis method, and software analysis program
EP3312755B1 (en) Method and apparatus for detecting application
CN110135163B (zh) 一种基于目标应用的安全检测方法、装置及系统
CN110377499B (zh) 一种对应用程序进行测试的方法及装置
CN109145589B (zh) 应用程序获取方法及装置
CN106919837B (zh) 一种恶意代码未知自启动识别方法及系统
CN112231696A (zh) 恶意样本的识别方法、装置、计算设备以及介质
CN109684205B (zh) 系统测试方法、装置、电子设备及存储介质
CN115391230A (zh) 一种测试脚本生成、渗透测试方法、装置、设备及介质
CN115643044A (zh) 数据处理方法、装置、服务器及存储介质
CN115310082A (zh) 信息处理方法、装置、电子设备及存储介质
CN105512557A (zh) 病毒处理方法、装置、系统及移动终端
KR102286451B1 (ko) 자연어 처리 기반 난독화된 식별자 인식 방법, 이를 수행하기 위한 기록 매체 및 장치
CN110399295B (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088

Applicant after: Qianxin Technology Group Co.,Ltd.

Address before: 100015 15, 17 floor 1701-26, 3 building, 10 Jiuxianqiao Road, Chaoyang District, Beijing.

Applicant before: BEIJING QIANXIN TECHNOLOGY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant