CN110399295A - 一种基于原始文件名的应用程序测试方法及装置 - Google Patents

一种基于原始文件名的应用程序测试方法及装置 Download PDF

Info

Publication number
CN110399295A
CN110399295A CN201910579450.3A CN201910579450A CN110399295A CN 110399295 A CN110399295 A CN 110399295A CN 201910579450 A CN201910579450 A CN 201910579450A CN 110399295 A CN110399295 A CN 110399295A
Authority
CN
China
Prior art keywords
file name
sample
program
test
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.)
Granted
Application number
CN201910579450.3A
Other languages
English (en)
Other versions
CN110399295B (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.)
Qax Technology Group Inc
Original Assignee
Qax Technology Group Inc
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 Qax Technology Group Inc filed Critical Qax Technology Group Inc
Priority to CN201910579450.3A priority Critical patent/CN110399295B/zh
Publication of CN110399295A publication Critical patent/CN110399295A/zh
Application granted granted Critical
Publication of CN110399295B publication Critical patent/CN110399295B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3668Testing of software
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • 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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例提供了一种基于原始文件名的应用程序测试方法及装置,沙箱在接收到应用程序对应的样本文件后,获取欲对样本文件进行测试的目标测试组件所对应的目标封装程序。调用目标封装程序将样本文件的原始文件名封装为封装文件名,通过目标测试组件对以封装文件名命名的样本文件进行测试。目标封装程序对样本文件的原始文件名进行封装,对原始文件名的封装不改变原始文件名本身的内容,避免了样本文件在检测到被重命后名隐藏恶意代码攻击行为的情况,提高了对样本文件测试的准确性。此外,目标测试组件能够从封装文件名获取样本文件的原始文件名,测试过程调用样本文件本身的原始文件名,测试结果不会因重命名样本文件受到干扰。

Description

一种基于原始文件名的应用程序测试方法及装置
技术领域
本发明涉及应用程序测试技术领域,尤其是涉及一种基于原始文件名的应用程序测试方法及装置。
背景技术
沙箱(Sandbox)是一种虚拟执行环境,常用于对应用程序进行测试,其创造了一个类似沙盒的独立作业环境,可以用来测试不受信任的应用程序或上网行为。当将应用程序对应的样本文件输入到沙箱后,沙箱通过各测试组件对应用程序进行测试,生成测试报告。当前的沙箱在接收到样本文件后,对样本文件进行重命名,并对重命名后的样本文件进行测试。例如,通过MD5(消息摘要算法)等Hash值对样本文件进行重命名。
然而,有些应用程序的样本文件能够通过重命名检测自身是否被分析。若检测到样本文件被重命名,则会通过隐藏恶意代码攻击行为避免被沙箱发现,影响了沙箱对样本文件动态分析的准确率。此外,样本文件的重命名会导致样本之间关联关系的丢失,使得在对样本文件进行检测时,无法调用相关文件,同样会影响测试结果的准确性。
在实际应用过程中,发明人发现现有的沙箱在对样本文件进行测试时,对样本文件进行重命名,使得有些样本文件在检测到被重命后名隐藏恶意代码攻击行为,影响对样本文件测试的准确性。此外,对样本文件进行测试的测试结果也会因为样本文件的重命名受到干扰。
发明内容
本发明实施例提供一种基于原始文件名的应用程序测试方法及装置,用以解决现有技术中的沙箱在对样本文件进行测试时,对样本文件进行重命名,使得有些样本文件在检测到被重命后名隐藏恶意代码攻击行为,影响对样本文件测试的准确性,以及对样本文件进行测试的测试结果也会因为样本文件的重命名受到干扰的问题。
针对以上技术问题,第一方面,本发明的实施例提供了一种基于原始文件名的应用程序测试方法,包括:
接收应用程序对应的样本文件,获取欲对所述样本文件进行测试的目标测试组件所对应的目标封装程序;
通过所述目标封装程序对所述样本文件的原始文件名进行封装,得到封装文件名;
通过所述目标测试组件对以所述封装文件名命名的所述样本文件进行测试;
其中,通过所述目标测试组件对以所述封装文件名命名的所述样本文件测试过程中,从所述封装文件名中获取所述原始文件名,并基于所述原始文件名对所述样本文件进行测试。
可选地,所述通过所述目标封装程序对所述样本文件的原始文件名进行封装,得到封装文件名,包括:
通过所述目标封装程序识别出所述原始文件名的开头位置和结尾位置,在所述开头位置和所述结尾位置处添加预设字符,得到所述封装文件名;
其中,所述目标测试组件在检测到所述预设字符后,将在所述预设字符之间的字符组成的字符串识别为所述原始文件名。
可选地,所述获取欲对所述样本文件进行测试的目标测试组件所对应的目标封装程序,包括:
对每一用于对样本文件进行测试的测试组件,获取所述测试组件对应的敏感字符,根据所述测试组件对应的敏感字符生成用于对样本文件的文件名进行封装的封装程序,存储每一测试组件对应的封装程序;
从存储的封装程序中获取欲对所述样本文件进行测试的目标测试组件所对应的目标封装程序;
其中,所述测试组件对应的敏感字符包括所述测试组件无法识别的字符或者被所述测试组件识别为操作指令的字符;所述封装程序用于在检测到包含有所述测试组件对应的敏感字符的文件名时,对所述文件名进行封装,以通过所述测试组件从封装后的文件名中获取所述文件名。
可选地,所述通过所述目标封装程序对所述样本文件的原始文件名进行封装,得到封装文件名,包括:
通过所述目标封装程序判断所述原始文件名中是否包含所述目标测试组件对应的敏感字符;
若所述原始文件名中不包含所述目标测试组件对应的敏感字符,则通过所述目标测试组件对以所述原始文件名命名的所述样本文件进行测试;
若所述原始文件名中包含所述目标测试组件对应的敏感字符,则通过所述目标封装程序对所述原始文件名进行封装,得到封装文件名。
可选地,所述通过所述目标测试组件对以所述封装文件名命名的所述样本文件进行测试,包括:
在通过所述目标测试组件对以所述封装文件名命名的所述样本文件进行测试的过程中,若检测到存在至少两个样本文件,则从每一样本文件对应的封装文件名中获取样本文件对应的原始文件名,由样本文件对应的原始文件名得到样本文件的关联关系,根据所述关联关系对样本文件进行测试。
可选地,还包括:
在通过所述目标测试组件对以所述封装文件名命名的所述样本文件进行测试后,判断测试结果中是否包含有用于生成测试报告的解析器无法识别的字符,若是,则对测试结果中包含的所述解析器无法识别的字符进行转码,以使所述解析器根据转码后的测试结果生成所述测试报告。
第二方面,本发明的实施例提供了一种基于原始文件名的应用程序测试装置,包括:
获取模块,用于接收应用程序对应的样本文件,获取欲对所述样本文件进行测试的目标测试组件所对应的目标封装程序;
封装模块,用于通过所述目标封装程序对所述样本文件的原始文件名进行封装,得到封装文件名;
测试模块,用于通过所述目标测试组件对以所述封装文件名命名的所述样本文件进行测试;
其中,通过所述目标测试组件对以所述封装文件名命名的所述样本文件测试过程中,从所述封装文件名中获取所述原始文件名。
可选地,所述封装模块还用于通过所述目标封装程序识别出所述原始文件名的开头位置和结尾位置,在所述开头位置和所述结尾位置处添加预设字符,得到所述封装文件名;
其中,所述测试组件在检测到所述预设字符后,将在所述预设字符之间的字符组成的字符串识别为所述原始文件名,并基于所述原始文件名对所述样本文件进行测试。
第三方面,本发明的实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以上所述的基于原始文件名的应用程序测试方法的步骤。
第四方面,本发明的实施例提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以上所述的基于原始文件名的应用程序测试方法的步骤。
本发明的实施例提供了一种基于原始文件名的应用程序测试方法及装置,沙箱在接收到应用程序对应的样本文件后,获取欲对样本文件进行测试的目标测试组件所对应的目标封装程序。调用目标封装程序将样本文件的原始文件名封装为封装文件名,通过目标测试组件对以封装文件名命名的样本文件进行测试。目标封装程序对样本文件的原始文件名进行封装,对原始文件名的封装不改变原始文件名本身的内容,避免了样本文件在检测到被重命后名隐藏恶意代码攻击行为的情况,提高了对样本文件测试的准确性。此外,目标测试组件能够从封装文件名获取样本文件的原始文件名,测试过程调用样本文件本身的原始文件名,测试结果不会因重命名样本文件受到干扰。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的一种基于原始文件名的应用程序测试方法的流程示意图;
图2是本发明另一个实施例提供一种基于原始文件名的应用程序测试装置的结构框图;
图3是本发明另一个实施例提供的电子设备的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
传统的沙箱在通过测试组件对应用程序的样本文件进行测试时,为了避免由于样本文件的文件名中包含有测试组件无法正确识别的敏感字符,从而导致测试组件无法执行测试过程的情况,沙箱会先对样本文件按照某一设定命名规则重命名后,再通过测试组件对样本文件进行测试。然而,一方面,对样本文件的重命名会使得某些样本文件在检测到被重命名后隐藏恶意程序,影响对样本文件测试的准确性。另一方面,重命名后的样本文件丢失了与文件名有关的信息,也会影响对样本文件测试的准确性。
为了解决上述技术问题,图1是本实施例提供的一种基于原始文件名的应用程序测试方法的流程示意图,参见图1,该方法包括:
101:接收应用程序对应的样本文件,获取欲对所述样本文件进行测试的目标测试组件所对应的目标封装程序;
102:通过所述目标封装程序对所述样本文件的原始文件名进行封装,得到封装文件名;
103:通过所述目标测试组件对以所述封装文件名命名的所述样本文件进行测试;
其中,通过所述目标测试组件对以所述封装文件名命名的所述样本文件测试过程中,从所述封装文件名中获取所述原始文件名,并基于所述原始文件名对所述样本文件进行测试。
本实施例提供的方法由安装有对应用程序进行测试的沙箱的设备执行,例如,服务器、终端或者专用于对应用程序进行测试的设备,本实施例对此不做具体限制。沙箱通过执行上述步骤101-103实现对应用程序对应的样本文件进行文件名的封装和对样本文件的测试过程。本实施例中的应用程序为实现某种功能的软件,例如,安装在Android系统中的各种APP,包括聊天软件、购物软件或者新闻类软件等。应用程序对应的样本文件为应用程序的安装文件,将某应用程序对应的样本文件输入到沙箱中,沙箱通过本实施例提供的方法在不对样本文件进行重命名的条件下实现对样本文件的测试。在本实施例中,所述样本文件一般为可能包含有待进行分析的恶意代码的应用程序对应的样本文件。沙箱中包括了多个对样本文件进行测试的测试组件,每一测试组件用于测试样本文件某一特定的功能。封装程序为用于对样本文件的原始文件名进行封装的工具,其通过某一预设字符对样本文件的整个原始文件名进行封装,不改变原始文件名,使得在测试过程中能够提取出原始文件名。沙箱中的每一测试组件均配置了相应的封装程序。
例如,沙箱的目标测试组件对接收到样本文件进行测试时,先通过与其对应的目标封装程序对样本文件的原始文件名进行封装,得到封装文件名。由于目标封装程序仅是对原始文件名进行了封装并没有对原始文件名进行重命名,因此避免了某些样本文件在检测到被重命名后隐藏恶意程序的情况。此外,由于测试过程中,目标测试组件能够从封装文件名获取样本文件的原始文件名,因此保留了与原始文件名有关的信息,避免了因重命名对测试结果的影响。
本实施例提供了一种基于原始文件名的应用程序测试方法,沙箱在接收到应用程序对应的样本文件后,获取欲对样本文件进行测试的目标测试组件所对应的目标封装程序。调用目标封装程序将样本文件的原始文件名封装为封装文件名,通过目标测试组件对以封装文件名命名的样本文件进行测试。目标封装程序对样本文件的原始文件名进行封装,对原始文件名的封装不改变原始文件名本身的内容,避免了样本文件在检测到被重命后名隐藏恶意代码攻击行为的情况,提高了对样本文件测试的准确性。此外,目标测试组件能够从封装文件名获取样本文件的原始文件名,测试过程调用样本文件本身的原始文件名,测试结果不会因重命名样本文件受到干扰。
进一步地,在上述实施例的基础上,所述通过所述目标封装程序对所述样本文件的原始文件名进行封装,得到封装文件名,包括:
通过所述目标封装程序识别出所述原始文件名的开头位置和结尾位置,在所述开头位置和所述结尾位置处添加预设字符,得到所述封装文件名;
其中,所述目标测试组件在检测到所述预设字符后,将在所述预设字符之间的字符组成的字符串识别为所述原始文件名。
预设字符为目标封装程序中配置的使得目标测试组件能够将预设字符之间的字符串作为整体的字符,例如,预设字符为单引号或者双引号,本实施例对此不做限制。
由于存在目标测试组件对应的敏感字符,例如,空格,因此若不对原始文件名进行封装,当原始文件名中包括了空格这一字符时,目标测试组件会报错或者将空格识别为某一操作指令,导致测试过程无法正常执行。为了在不对原始文件名进行重命名的情况下使得测试能够正常进行,本实施例对原始文件名采用预设字符进行封装,使得目标测试组件在检测到预设字符时,将预设字符之间的字符串这个整体作为文件名。
本实施例提供了一种基于原始文件名的应用程序测试方法,通过预设字符对原始文件名的封装,实现了在不进行重命名文件名的情况下保证测试过程的顺利进行。
进一步地,在上述各实施例的基础上,所述获取欲对所述样本文件进行测试的目标测试组件所对应的目标封装程序,包括:
对每一用于对样本文件进行测试的测试组件,获取所述测试组件对应的敏感字符,根据所述测试组件对应的敏感字符生成用于对样本文件的文件名进行封装的封装程序,存储每一测试组件对应的封装程序;
从存储的封装程序中获取欲对所述样本文件进行测试的目标测试组件所对应的目标封装程序;
其中,所述测试组件对应的敏感字符包括所述测试组件无法识别的字符或者被所述测试组件识别为操作指令的字符;所述封装程序用于在检测到包含有所述测试组件对应的敏感字符的文件名时,对所述文件名进行封装,以通过所述测试组件从封装后的文件名中获取所述文件名。
测试组件对应的敏感字符通过对测试组件进行实验获得。
封装程序在对原始文件名进行封装的过程中,需要识别原始文件名的开头位置和结尾位置,而封装程序本身也可能存在一些无法正确识别的字符。为了避免对原始文件名封装过程出错,本实施例提供的方法根据测试组件对应的敏感字符生成封装程序。封装程序只需要在原始文件名中包含有测试组件对应的敏感字符时能够正确识别出文件名即可。当原始文件名中包含有测试组件对应的敏感字符时,封装程序能够将原始文件名整体进行封装,使得测试组件能够获取正确的原始文件名。当原始文件名中不包含测试组件对应的敏感字符时,封装程序可以不对该原始文件名进行封装,此时由于原始文件名中不包含测试组件对应的敏感字符,测试组件能够识别出正确的原始文件名。
本实施例提供了一种基于原始文件名的应用程序测试方法,根据测试组件对应的敏感字符生成封装程序,封装程序能够正确处理相应的测试组件对应的敏感字符,保证在测试过程中测试组件识别出原始文件名。
进一步地,在上述各实施例的基础上,所述通过所述目标封装程序对所述样本文件的原始文件名进行封装,得到封装文件名,包括:
通过所述目标封装程序判断所述原始文件名中是否包含所述目标测试组件对应的敏感字符;
若所述原始文件名中不包含所述目标测试组件对应的敏感字符,则通过所述目标测试组件对以所述原始文件名命名的所述样本文件进行测试;
若所述原始文件名中包含所述目标测试组件对应的敏感字符,则通过所述目标封装程序对所述原始文件名进行封装,得到封装文件名。
封装程序根据测试组件对应的敏感字符生成。在通过目标封装程序对原始文件名进行封装的过程中,若检测原始文件名中包含了目标测试组件对应的敏感字符,则对原始文件名进行封装,使得目标测试组件通过进行封装的预设符合识别出原始文件名,进而执行对样本文件的检测。若检测原始文件名中不包含目标测试组件对应的敏感字符,则不对原始文件名进行封装,因为此时测试组件能够正确识别出原始文件名。
本实施例提供了一种基于原始文件名的应用程序测试方法,通过对原始文件名中是否包含目标测试组件对应的敏感字符的判断,简化了对原始文件名进行封装的过程。
进一步地,在上述各实施例的基础上,所述通过所述目标测试组件对以所述封装文件名命名的所述样本文件进行测试,包括:
在通过所述目标测试组件对以所述封装文件名命名的所述样本文件进行测试的过程中,若检测到存在至少两个样本文件,则从每一样本文件对应的封装文件名中获取样本文件对应的原始文件名,由样本文件对应的原始文件名得到样本文件的关联关系,根据所述关联关系对样本文件进行测试。
需要说明的是,若接收到的样本文件包含多个,则需要通过目标封装程序对每一样本文件的原始文件名进行封装。例如,接收到原始文件名分别为abc.exe和abc.jpg的两个样本文件,通过目标封装程序对这两个原始文件名均进行封装,通过目标测试组件对这两个样本文件进行测试时,从这两个样本文件对应的封装文件名中获取这两个原始文件名,通过原始文件名得到的关联关系包括:这两个样本文件为名称相同格式不同的样本。若在运行abc.exe的过程中需要加载名称为abc的图片,则可以通过原始文件名查找到abc.jpg,进行加载显示。可理解的是,若通过传统的沙箱对这两个样本文件进行重命名后在进行测试,则在运行abc.exe的过程中无法加载与其关联的abc.jpg。
本实施例提供了一种基于原始文件名的应用程序测试方法,由于在对样本文件进行测试的过程中保留了原始文件名,因此保留了多个样本文件之间的关联关系,使得在对样本文件测试的过程中可以考虑样本文件之间的关联关系。
进一步地,在上述各实施例的基础上,还包括:
在通过所述目标测试组件对以所述封装文件名命名的所述样本文件进行测试后,判断测试结果中是否包含有用于生成测试报告的解析器无法识别的字符,若是,则对测试结果中包含的所述解析器无法识别的字符进行转码,以使所述解析器根据转码后的测试结果生成所述测试报告。
各测试组件对样本文件进行测试后,需要根据测试结果生成测试报告,通过测试报告向工作人员展示对样本文件进行测试的测试结果。然而,测试结果中有可能存在解析器无法解析的字符导致无法生成测试报告。因此,在通过解析器生成测试报告时需要对解析器无法识别的字符进行转码。例如,需要生成xml格式的测试报告,在生成文件名为abc<>.exe对应的测试报告时,若不对解析器无法识别的字符进行转码,则生成的xml格式的文件为<file filename="abc<>.exe"></filename>。该xml格式的文件中包含了解析器无法解析的符号<>,因此无法通过该xml格式的文件生成测试报告。若需通过解析器生成测试报告,则需将xml格式的文件<file filename="abc<>.exe"></filename>中的符号<>进行转码。由于预先规定的转码规则为<对应&lt,>对应&gt,因此,将该xml格式的文件转码为<file filename="abc&lt;&gt;.exe"></filename>,通过解码器对转码后的文件进行解析即可生成测试报告。
此外,通常向沙箱上传样本文件的系统与沙箱的系统不相同,因此为了能对接收到的样本文件正常显示,避免接收到的样本文件在沙箱中显示为乱码,需要先对接收的样本文件重新编码,使得样本文件在沙箱中显示的内容和在上传样本文件的系统显示的内容相同。例如,windows和Linux是两个操作系统,有的时候中文或者其他字符在windows可以正常显示,在Linux上却是乱码,因此当样本文件从windows上传到Linux后,需先对样本文件的文件名编码,使得样本文件的文件名在Linux系统也能正常现在,当通过测试组件对样本文件进行测试时会对样本文件再解码。
本实施例提供了一种基于原始文件名的应用程序测试方法,通过解析器分析测试结果的过程中先对测试结果中无法被解析器识别的字符进行转码,保证测试报告的正常生成。
对于仅包含一个样本文件的情况,沙箱对样本文件的测试过程可以通过如下的示例说明,向沙箱输入一个样本文件a.exe,沙箱系统内部启动器模拟用户双击a.exe,a.exe开始执行,沙箱监控a.exe的动态行为。
对于包含多个样本文件的情况,沙箱对样本文件的测试过程可以通过如下的示例说明,向沙箱输入样本文件b.zip,b.zip里面包含1.exe,2.dll,3.sys,将b.zip直接放入沙箱系统,沙箱系统内部启动器模拟用户双击b.zip,调用系统关联的解压程序将样本解压,然后启动器双击1.exe,1.exe开始执行,沙箱监控1.exe的动态行为。
图2示出了本发明的实施例提供的一种基于原始文件名的应用程序测试装置的结构框图,参见图2,本实施例提供的基于原始文件名的应用程序测试装置,包括获取模块201、封装模块202和测试模块203,其中,
获取模块201,用于接收应用程序对应的样本文件,获取欲对所述样本文件进行测试的目标测试组件所对应的目标封装程序;
封装模块202,用于通过所述目标封装程序对所述样本文件的原始文件名进行封装,得到封装文件名;
测试模块203,用于通过所述目标测试组件对以所述封装文件名命名的所述样本文件进行测试;
其中,通过所述目标测试组件对以所述封装文件名命名的所述样本文件测试过程中,从所述封装文件名中获取所述原始文件名,并基于所述原始文件名对所述样本文件进行测试。
进一步地,在上述实施例的基础上,所述封装模块还用于通过所述目标封装程序识别出所述原始文件名的开头位置和结尾位置,在所述开头位置和所述结尾位置处添加预设字符,得到所述封装文件名;
其中,所述测试组件在检测到所述预设字符后,将在所述预设字符之间的字符组成的字符串识别为所述原始文件名。
本实施例提供的基于原始文件名的应用程序测试装置适用于上述实施例中提供的基于原始文件名的应用程序测试方法,在此不再赘述。
本发明的实施例提供了一种基于原始文件名的应用程序测试装置,沙箱在接收到应用程序对应的样本文件后,获取欲对样本文件进行测试的目标测试组件所对应的目标封装程序。调用目标封装程序将样本文件的原始文件名封装为封装文件名,通过目标测试组件对以封装文件名命名的样本文件进行测试。目标封装程序对样本文件的原始文件名进行封装,对原始文件名的封装不改变原始文件名本身的内容,避免了样本文件在检测到被重命后名隐藏恶意代码攻击行为的情况,提高了对样本文件测试的准确性。此外,目标测试组件能够从封装文件名获取样本文件的原始文件名,测试过程调用样本文件本身的原始文件名,测试结果不会因重命名样本文件受到干扰。
图3是示出本实施例提供的电子设备的结构框图。
参照图3,所述电子设备包括:处理器(processor)310、通信接口(CommunicationsInterface)320、存储器(memory)330和通信总线340,其中,处理器310,通信接口320,存储器330通过通信总线340完成相互间的通信。处理器310可以调用存储器330中的逻辑指令,以执行如下方法:接收应用程序对应的样本文件,获取欲对所述样本文件进行测试的目标测试组件所对应的目标封装程序;通过所述目标封装程序对所述样本文件的原始文件名进行封装,得到封装文件名;通过所述目标测试组件对以所述封装文件名命名的所述样本文件进行测试;其中,通过所述目标测试组件对以所述封装文件名命名的所述样本文件测试过程中,从所述封装文件名中获取所述原始文件名,并基于所述原始文件名对所述样本文件进行测试。
此外,上述的存储器330中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行如下方法:接收应用程序对应的样本文件,获取欲对所述样本文件进行测试的目标测试组件所对应的目标封装程序;通过所述目标封装程序对所述样本文件的原始文件名进行封装,得到封装文件名;通过所述目标测试组件对以所述封装文件名命名的所述样本文件进行测试;其中,通过所述目标测试组件对以所述封装文件名命名的所述样本文件测试过程中,从所述封装文件名中获取所述原始文件名,并基于所述原始文件名对所述样本文件进行测试。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如,包括:接收应用程序对应的样本文件,获取欲对所述样本文件进行测试的目标测试组件所对应的目标封装程序;通过所述目标封装程序对所述样本文件的原始文件名进行封装,得到封装文件名;通过所述目标测试组件对以所述封装文件名命名的所述样本文件进行测试;其中,通过所述目标测试组件对以所述封装文件名命名的所述样本文件测试过程中,从所述封装文件名中获取所述原始文件名,并基于所述原始文件名对所述样本文件进行测试。
以上所描述的电子设备等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上各实施例仅用以说明本发明的实施例的技术方案,而非对其限制;尽管参照前述各实施例对本发明的实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明的实施例各实施例技术方案的范围。

Claims (10)

1.一种基于原始文件名的应用程序测试方法,其特征在于,包括:
接收应用程序对应的样本文件,获取欲对所述样本文件进行测试的目标测试组件所对应的目标封装程序;
通过所述目标封装程序对所述样本文件的原始文件名进行封装,得到封装文件名;
通过所述目标测试组件对以所述封装文件名命名的所述样本文件进行测试;
其中,通过所述目标测试组件对以所述封装文件名命名的所述样本文件测试过程中,从所述封装文件名中获取所述原始文件名,并基于所述原始文件名对所述样本文件进行测试。
2.根据权利要求1所述的基于原始文件名的应用程序测试方法,其特征在于,所述通过所述目标封装程序对所述样本文件的原始文件名进行封装,得到封装文件名,包括:
通过所述目标封装程序识别出所述原始文件名的开头位置和结尾位置,在所述开头位置和所述结尾位置处添加预设字符,得到所述封装文件名;
其中,所述目标测试组件在检测到所述预设字符后,将在所述预设字符之间的字符组成的字符串识别为所述原始文件名。
3.根据权利要求1所述的基于原始文件名的应用程序测试方法,其特征在于,所述获取欲对所述样本文件进行测试的目标测试组件所对应的目标封装程序,包括:
对每一用于对样本文件进行测试的测试组件,获取所述测试组件对应的敏感字符,根据所述测试组件对应的敏感字符生成用于对样本文件的文件名进行封装的封装程序,存储每一测试组件对应的封装程序;
从存储的封装程序中获取欲对所述样本文件进行测试的目标测试组件所对应的目标封装程序;
其中,所述测试组件对应的敏感字符包括所述测试组件无法识别的字符或者被所述测试组件识别为操作指令的字符;所述封装程序用于在检测到包含有所述测试组件对应的敏感字符的文件名时,对所述文件名进行封装,以通过所述测试组件从封装后的文件名中获取所述文件名。
4.根据权利要求3所述的基于原始文件名的应用程序测试方法,其特征在于,所述通过所述目标封装程序对所述样本文件的原始文件名进行封装,得到封装文件名,包括:
通过所述目标封装程序判断所述原始文件名中是否包含所述目标测试组件对应的敏感字符;
若所述原始文件名中不包含所述目标测试组件对应的敏感字符,则通过所述目标测试组件对以所述原始文件名命名的所述样本文件进行测试;
若所述原始文件名中包含所述目标测试组件对应的敏感字符,则通过所述目标封装程序对所述原始文件名进行封装,得到封装文件名。
5.根据权利要求1所述的基于原始文件名的应用程序测试方法,其特征在于,所述通过所述目标测试组件对以所述封装文件名命名的所述样本文件进行测试,包括:
在通过所述目标测试组件对以所述封装文件名命名的所述样本文件进行测试的过程中,若检测到存在至少两个样本文件,则从每一样本文件对应的封装文件名中获取样本文件对应的原始文件名,由样本文件对应的原始文件名得到样本文件的关联关系,根据所述关联关系对样本文件进行测试。
6.根据权利要求1所述的基于原始文件名的应用程序测试方法,其特征在于,还包括:
在通过所述目标测试组件对以所述封装文件名命名的所述样本文件进行测试后,判断测试结果中是否包含有用于生成测试报告的解析器无法识别的字符,若是,则对测试结果中包含的所述解析器无法识别的字符进行转码,以使所述解析器根据转码后的测试结果生成所述测试报告。
7.一种基于原始文件名的应用程序测试装置,其特征在于,包括:
获取模块,用于接收应用程序对应的样本文件,获取欲对所述样本文件进行测试的目标测试组件所对应的目标封装程序;
封装模块,用于通过所述目标封装程序对所述样本文件的原始文件名进行封装,得到封装文件名;
测试模块,用于通过所述目标测试组件对以所述封装文件名命名的所述样本文件进行测试;
其中,通过所述目标测试组件对以所述封装文件名命名的所述样本文件测试过程中,从所述封装文件名中获取所述原始文件名,并基于所述原始文件名对所述样本文件进行测试。
8.根据权利要求7所述的基于原始文件名的应用程序测试装置,其特征在于,所述封装模块还用于通过所述目标封装程序识别出所述原始文件名的开头位置和结尾位置,在所述开头位置和所述结尾位置处添加预设字符,得到所述封装文件名;
其中,所述测试组件在检测到所述预设字符后,将在所述预设字符之间的字符组成的字符串识别为所述原始文件名。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述的基于原始文件名的应用程序测试方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至6任一项所述的基于原始文件名的应用程序测试方法的步骤。
CN201910579450.3A 2019-06-28 2019-06-28 一种基于原始文件名的应用程序测试方法及装置 Active CN110399295B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910579450.3A CN110399295B (zh) 2019-06-28 2019-06-28 一种基于原始文件名的应用程序测试方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910579450.3A CN110399295B (zh) 2019-06-28 2019-06-28 一种基于原始文件名的应用程序测试方法及装置

Publications (2)

Publication Number Publication Date
CN110399295A true CN110399295A (zh) 2019-11-01
CN110399295B CN110399295B (zh) 2023-09-22

Family

ID=68323667

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910579450.3A Active CN110399295B (zh) 2019-06-28 2019-06-28 一种基于原始文件名的应用程序测试方法及装置

Country Status (1)

Country Link
CN (1) CN110399295B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102063421A (zh) * 2010-12-29 2011-05-18 东莞市创锐电子技术有限公司 一种测试程序中测试项文件的编辑系统
CN103853663A (zh) * 2014-03-25 2014-06-11 北京金山网络科技有限公司 应用程序测试方法及系统
US20140181269A1 (en) * 2012-12-24 2014-06-26 Samsung Electronics Co., Ltd. Method for controlling file name and electronic device thereof
CN106650424A (zh) * 2016-11-28 2017-05-10 北京奇虎科技有限公司 一种目标样本文件的检测方法和装置
CN108459956A (zh) * 2017-11-29 2018-08-28 平安科技(深圳)有限公司 测试报告自动化管理方法、装置、设备及存储介质
CN109190367A (zh) * 2018-08-15 2019-01-11 北京奇虎科技有限公司 利用沙箱运行应用程序安装包的方法及装置
CN109726104A (zh) * 2018-05-15 2019-05-07 平安普惠企业管理有限公司 移动终端的测试包生成方法、测试终端及存储介质
CN109885455A (zh) * 2019-02-20 2019-06-14 北京微步在线科技有限公司 一种基于沙箱系统的数据处理方法及电子设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102063421A (zh) * 2010-12-29 2011-05-18 东莞市创锐电子技术有限公司 一种测试程序中测试项文件的编辑系统
US20140181269A1 (en) * 2012-12-24 2014-06-26 Samsung Electronics Co., Ltd. Method for controlling file name and electronic device thereof
CN103853663A (zh) * 2014-03-25 2014-06-11 北京金山网络科技有限公司 应用程序测试方法及系统
CN106650424A (zh) * 2016-11-28 2017-05-10 北京奇虎科技有限公司 一种目标样本文件的检测方法和装置
CN108459956A (zh) * 2017-11-29 2018-08-28 平安科技(深圳)有限公司 测试报告自动化管理方法、装置、设备及存储介质
CN109726104A (zh) * 2018-05-15 2019-05-07 平安普惠企业管理有限公司 移动终端的测试包生成方法、测试终端及存储介质
CN109190367A (zh) * 2018-08-15 2019-01-11 北京奇虎科技有限公司 利用沙箱运行应用程序安装包的方法及装置
CN109885455A (zh) * 2019-02-20 2019-06-14 北京微步在线科技有限公司 一种基于沙箱系统的数据处理方法及电子设备

Also Published As

Publication number Publication date
CN110399295B (zh) 2023-09-22

Similar Documents

Publication Publication Date Title
CN108763928B (zh) 一种开源软件漏洞分析方法、装置和存储介质
US9824212B2 (en) Method and system for recognizing advertisement plug-ins
US8881278B2 (en) System and method for detecting malicious content
US20170161496A1 (en) Method and device for identifying virus apk
US20180032428A1 (en) Inter-process communication automated testing framework
CN106845171B (zh) 一种Android应用程序代码保护机制鉴别方法
US10699212B2 (en) Cross-platform program analysis using machine learning based on universal features
CN106815031B (zh) 内核模块加载方法和装置
CN109976995B (zh) 用于测试的方法和装置
CN112287342B (zh) 物联网固件动态检测方法、装置、电子设备以及存储介质
CN108920359B (zh) 应用程序的测试方法、装置、存储介质和电子装置
US9063760B2 (en) Employing native routines instead of emulated routines in an application being emulated
CN108415826A (zh) 应用的测试方法、终端设备及计算机可读存储介质
US10310956B2 (en) Techniques for web service black box testing
CN110135160A (zh) 软件检测的方法、装置及系统
CN114398673A (zh) 应用程序的合规检测方法、装置、存储介质与电子设备
CN113961919A (zh) 恶意软件检测方法和装置
CN103390129B (zh) 检测统一资源定位符安全性的方法和装置
KR101557455B1 (ko) 응용 프로그램 코드 분석 장치 및 그것을 이용한 코드 분석 방법
CN110399295A (zh) 一种基于原始文件名的应用程序测试方法及装置
KR101824699B1 (ko) 안드로이드 앱 분석 장치 및 그 방법과, 이를 실행하는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체
US8631008B1 (en) Systems and methods for indexing electronic content that involves external interaction
CN112559328B (zh) 指令模拟引擎的判别方法、装置、设备及介质
EP4273726A1 (en) Risk assessment based on augmented software bill of materials
CN112905534B (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