CN116737596B - 一种用于安卓的应用程序测试方法及装置 - Google Patents

一种用于安卓的应用程序测试方法及装置 Download PDF

Info

Publication number
CN116737596B
CN116737596B CN202310995190.4A CN202310995190A CN116737596B CN 116737596 B CN116737596 B CN 116737596B CN 202310995190 A CN202310995190 A CN 202310995190A CN 116737596 B CN116737596 B CN 116737596B
Authority
CN
China
Prior art keywords
data
application program
environment
testing
control instruction
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
CN202310995190.4A
Other languages
English (en)
Other versions
CN116737596A (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.)
Shanghai Biling Technology Co ltd
Beijing Biling Technology Co ltd
Original Assignee
Shanghai Biling Technology Co ltd
Beijing Biling 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 Shanghai Biling Technology Co ltd, Beijing Biling Technology Co ltd filed Critical Shanghai Biling Technology Co ltd
Priority to CN202310995190.4A priority Critical patent/CN116737596B/zh
Publication of CN116737596A publication Critical patent/CN116737596A/zh
Application granted granted Critical
Publication of CN116737596B publication Critical patent/CN116737596B/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/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3644Software debugging by instrumenting at runtime
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供了一种用于安卓的应用程序测试方法及装置,涉及应用程序测试领域,本方法包括:获取待进行安全测试的应用程序原始数据;对应用程序原始数据进行控制指令克隆,得到控制指令数据;对应用程序原始数据进行数据映射,得到待进行安全测试的应用程序映射数据;对应用程序原始数据所对应的安卓系统进行系统服务劫持,得到待进行安全测试的劫持系统服务;根据控制指令数据、应用程序映射数据和劫持系统服务进行测试环境资源加载,得到无需根权限的测试环境;根据无需根权限的测试环境对应用程序原始数据进行测试。本方法在不需要根权限的安全测试环境下进行,以保证应用程序的安全性。

Description

一种用于安卓的应用程序测试方法及装置
技术领域
本发明涉及应用程序测试领域,具体而言,涉及一种用于安卓的应用程序测试方法及装置。
背景技术
在现代社会,安卓应用越来越普及,而应用上线前的安全测试也变得越来越重要。安全测试主要是为了发现和修复应用程序中可能存在的漏洞和安全问题,以降低应用程序被黑客攻击或滥用的风险,提高应用程序的可靠性和稳定性。安全测试的内容包括对应用程序代码、应用程序数据传输和存储、应用程序用户认证、应用程序运行环境等方面进行测试和评估,以确保应用程序的安全性。然而在现有技术中,安卓应用的安全测试环境通常需要在具有根权限设备上进行,所述根权限设备具有一定的安全隐患,如:刷机风险较高,操作不当可能造成手机无法正常使用。因此,亟需一种用于安卓的应用程序测试方法,在不需要根权限的安全测试环境下进行,以保证应用程序的安全性。
发明内容
本发明的目的在于提供一种用于安卓的应用程序测试方法及装置,以改善上述问题。为了实现上述目的,本发明采取的技术方案如下:
第一方面,本申请提供了一种用于安卓的应用程序测试方法,所述方法包括:
获取待进行安全测试的应用程序原始数据;
对所述应用程序原始数据进行控制指令克隆,得到控制指令数据;
对所述应用程序原始数据进行数据映射,得到待进行安全测试的应用程序映射数据;
对所述应用程序原始数据所对应的安卓系统进行系统服务劫持,得到待进行安全测试的劫持系统服务;
根据所述控制指令数据、所述应用程序映射数据和所述劫持系统服务进行测试环境资源加载,得到无需根权限的测试环境;
根据所述无需根权限的测试环境对所述应用程序原始数据进行测试。
第二方面,本申请还提供了一种用于安卓的应用程序测试装置,所述装置包括:
获取模块,用于获取待进行安全测试的应用程序原始数据;
第一处理模块,用于对所述应用程序原始数据进行控制指令克隆,得到控制指令数据;
第二处理模块,用于对所述应用程序原始数据进行数据映射,得到待进行安全测试的应用程序映射数据;
第三处理模块,用于对所述应用程序原始数据所对应的安卓系统进行系统服务劫持,得到待进行安全测试的劫持系统服务;
第四处理模块,用于根据所述控制指令数据、所述应用程序映射数据和所述劫持系统服务进行测试环境资源加载,得到无需根权限的测试环境;
测试模块,用于根据所述无需根权限的测试环境对所述应用程序原始数据进行测试。
本发明的有益效果为:
本发明是在一个安卓应用中创建一个能够启动和加载任意其他安卓应用的环境,并在启动加载应用之前为其准备好安全测试环境。由于这些操作都是在安卓应用层级别进行的,因此能够在不需要根权限的情况下进行安全测试。本发明将待测试的应用程序隔离到一个虚拟的安全测试环境中,确保测试环境与宿主环境的隔离性,从而安全地进行测试。由于应用程序是在本发明的虚拟环境中启动的,因此本发明对于待测试的应用程序具有完全的控制权,可以在不影响设备安全的前提下进行安卓应用的安全测试。
本发明的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明实施例了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例中所述的用于安卓的应用程序测试方法流程示意图;
图2为本发明实施例中所述的用于安卓的应用程序测试装置结构示意图;
图3为本发明实施例中所述第二处理模块的结构示意图;
图4为本发明实施例中所述的用于安卓的应用程序测试设备结构示意图;
图中标记:
800、用于安卓的应用程序测试设备;801、处理器;802、存储器;803、多媒体组件;804、I/O接口;805、通信组件;901、获取模块;902、第一处理模块;903、第二处理模块;904、第三处理模块;905、第四处理模块;906、测试模块;9021、第一处理单元;9022、第二处理单元;9023、第三处理单元;9031、生成单元;9032、测试单元;9033、第一计算单元;9034、第二计算单元;90341、第一计算子单元;90342、第二计算子单元;90343、第三计算子单元;90344、第四计算子单元;9051、第一获取单元;9052、第三计算单元;9053、第四计算单元;9054、第五计算单元;90541、第二获取单元;90542、第五计算子单元;90543、第六计算子单元。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
实施例1:
本实施例提供了一种用于安卓的应用程序测试方法。
参见图1,图中示出了本方法包括步骤S1至S6,具体有:
S1:获取待进行安全测试的应用程序原始数据;
在步骤S1中,所述应用程序原始数据具体有:从安卓应用程序包中的应用清单中获取应用程序的入口,在应用程序原始数据获取应用运行时所需要的动态链接库,从应用程序原始数据文件列表的文本文档内获取所需要的界面资源,在应用程序原始数据获取应用的逻辑代码。
S2:对所述应用程序原始数据进行控制指令克隆,得到控制指令数据;
在步骤S2中,克隆的目的在于创建一个空的子进程,所述子进程是为了创建一个可以被完全控制的进程。由于子进程是由父进程使用调用函数创建的,因此父进程具有修改子进程信息的权限,例如修改子进程的寄存器或内存中的数据。
当控制了子进程,就能够实现在进程中注入自己的动态库,修改内存中的信息,比如:将原本在安卓上运行的应用程序所使用的沙盒目录重定向到我们自己指定的可控位置。因此本发明控制指令数据能够实现对应用程序的完全控制,从而实现多开、破解等功能。
在本方法中,为明确控制指令克隆的具体过程,具体有:
S21:以所述应用程序原始数据的存储路径为宿主路径,得到控制指令存储空间;
S22:在所述控制指令存储空间内创建控制指令子目录;
S23:对所述控制指令子目录进行调用函数的调用,得到控制指令数据。
在步骤S23中,所述调用函数可采用fork函数,一个现有进程可以调用fork函数创建一个新进程。调用创建的新进程被称为子进程)。fork函数被调用一次返回两次。两次返回的唯一区别是子进程中返回0值而父进程中返回子进程地址值。其中,子进程是父进程的副本,它将获得父进程数据空间、堆、栈等资源的副本。
在fork函数执行完毕后,如果创建新进程成功,则出现两个进程,一个是子进程,一个是父进程。在子进程中,fork函数返回0,在父进程中,fork函数返回新创建子进程的进程地址值。本方法可以通过fork函数返回的值来判断当前进程是子进程还是父进程,由此得到控制指令数据。
在本方法中,是克隆出一个子进程,并对子进程进行修改,既不需要根权限,也不需要重新打包,实现了真正的一键使用。
S3:对所述应用程序原始数据进行数据映射,得到待进行安全测试的应用程序映射数据;
在步骤S2结束后,当子进程创建后,本方法需要处理应用运行时所需的文件依赖。由于会进行待测试的应用接管,因此应用的代码资源、应用沙盒等目录都会和原生应用存放的目录不一样,而是自定义存储的位置。因此需要将应用读取这些资源的映射到存储目录中。
为明确数据映射的具体过程,步骤S3包括S31至S34,具体有:
S31:根据所述应用程序原始数据进行初始种群生成,得到初始映射数据;
在步骤S31中,先进行初始种群的生成,其中种群过大则耗费大量时间进行运算,种群过小又可能导致过早的收敛。在本方法中根据所述应用程序原始数据进行初始种群大小的设定。
S32:将所述初始映射数据代入被测试的时段中进行测试;
S33:当种群繁殖的最大代数未超过预设种群繁殖值时,通过适应度函数计算得到初始映射数据的适应度值;
在步骤S33中,采用适应度函数来对个体进行评价,因此适应度函数的选择对算法的影响很大。在本方法中遗传算法要求适应度函数的值为非负,适应度值越大解的质量越好。
S34:根据所述初始映射数据的适应度值进行编码和解码,得到待进行安全测试的应用程序映射数据。
在步骤S34中为明确具体的编码和解码过程,具体有:
S341:根据所述初始映射数据的适应度值进行二进制编码,得到编码数据;
在步骤S341中,采用二进制编码,所述二进制编码能够包括:(1)、完整性,问题空间中所有的点都可以在遗传空间中以染色体的方式出现,从而使遗传空间中的所有染色体能对应所有问题空间的点唯一性;(2)、关联性,在遗传空间中有且只有一个点与之相互对应相关性,从问题空间到遗传空间的编码方式能够与问题本身相结合。
S342:对所述编码数据进行选择,得到中间映射数据,所述中间映射数据为已进行剔除未映射数据的数据包;
S343:对所述中间映射数据进行变异条件判断,得到中间映射判断数据集;
S344:对所述中间映射判断数据集进行数据解码,得到待进行安全测试的应用程序映射数据。
在本方法中,引入遗传算法进行数据映射,提高了数据映射的可靠性,在提高效率的同时,保证了应用程序映射数据的路径覆盖。
S4:对所述应用程序原始数据所对应的安卓系统进行系统服务劫持,得到待进行安全测试的劫持系统服务;
在步骤S4中,进行系统服务劫持时具体有:劫持系统管理(Service Manager)等系统服务。由于待测试应用程序的组件的生命周期、应用程序之间的交互通信都会被接管,所以需进行系统服务劫持,以使待安全测试的应用程序能够正常工作起来。
本方法对系统服务劫持后,保证了待测试的应用程序中的组件映射到已经声明的代理组件中,使待测试的应用程序能够在宿主应用程序中正常运行。
S5:根据所述控制指令数据、所述应用程序映射数据和所述劫持系统服务进行测试环境资源加载,得到无需根权限的测试环境;
在步骤S5中,进行测试环境资源加载,以达到无需根权限的测试环境。在本方法中搭建安全测试环境的核心是提供一个可供安全测试人员使用的环境,其中包括函数劫持、数据获取以及网络请求数据的中间人工具。
在步骤S5中,包括步骤S51至S54,具体有:
S51:获取用户独立配置的拦截脚本;
在步骤S51中,用户独立配置的拦截脚本根据使用要求进行配置,拦截脚本可包括:用于绕过超文本传输安全协议证书校验、获取加密秘钥、读取文件以及存储在数据库中的数据等。
S52:根据所述控制指令数据、所述应用程序映射数据和所述劫持系统服务进行调用动态库的注入,得到初始拦截环境;
在步骤S52中,在待拦截的进程中注入调用动态库,以修改内存中函数的开始和结束指令,以便在函数执行前跳转到注入的代码逻辑,例如修改函数参数,并在函数执行结束后跳转到注入代码的逻辑,以便控制函数的返回值。所述调用动态库可调用主动调用机制,以进行基础的调用操作。
S53:根据所述初始拦截环境和预设拦截脚本生成中间拦截环境;
S54:根据所述中间拦截环境和所述用户独立配置的拦截脚本生成无需根权限的测试环境。
为明确所述用户独立配置的拦截脚本的具体应用,步骤S54包括S541-S543,具体有:
S541:获取用户对应输入的中间人抓包工具的代理地址;
S542:根据所述中间拦截环境和所述用户独立配置的拦截脚本生成伪造服务端证书;
S543:根据所述伪造服务端证书对所述中间人抓包工具的代理地址进行校验,得到无需根权限的测试环境。
在步骤S543中,需先劫持应用程序对服务端证书的校验,以使其信任伪造服务端证书,之后根据所述伪造服务端证书对所述中间人抓包工具的代理地址进行校验。
步骤S54采用对网络请求的中间人攻击的方式,通过加载中间人抓包工具的伪造服务端证书,自动将证书注入信任的证书链。同时,用户可以输入中间人抓包工具的代理地址,会自动劫持网络请求的客户端,在执行网络请求的时候设置代理,这样请求就会先到中间人抓包工具,然后再由中间人抓包工具发送到应用程序的服务端,此时就可以完全地对应用请求数据进行篡改,为服务端安全测试提供了所需环境,以实现无需根权限的测试环境。
S6:根据所述无需根权限的测试环境对所述应用程序原始数据进行测试。
在步骤S6中,启动待测试应用程序。在准备工作完成后,可直接调用应用程序的启动入口,以正常去启动应用程序,此时,本方法能够实现无需根权限的测试环境对所述应用程序原始数据进行测试。
实施例2:
如图2所示,本实施例提供了一种用于安卓的应用程序测试装置,所述装置包括:
获取模块901,用于获取待进行安全测试的应用程序原始数据;
第一处理模块902,用于对所述应用程序原始数据进行控制指令克隆,得到控制指令数据;
第二处理模块903,用于对所述应用程序原始数据进行数据映射,得到待进行安全测试的应用程序映射数据;
第三处理模块904,用于对所述应用程序原始数据所对应的安卓系统进行系统服务劫持,得到待进行安全测试的劫持系统服务;
第四处理模块905,用于根据所述控制指令数据、所述应用程序映射数据和所述劫持系统服务进行测试环境资源加载,得到无需根权限的测试环境;
测试模块906,用于根据所述无需根权限的测试环境对所述应用程序原始数据进行测试。
在本发明所公开的一种实施方法中,所述第一处理模块902包括:
第一处理单元9021,用于以所述应用程序原始数据的存储路径为宿主路径,得到控制指令存储空间;
第二处理单元9022,用于在所述控制指令存储空间内创建控制指令子目录;
第三处理单元9023,用于对所述控制指令子目录进行调用函数的调用,得到控制指令数据。
如图3所示,在本发明所公开的一种实施方法中,所述第二处理模块903包括:
生成单元9031,用于根据所述应用程序原始数据进行初始种群生成,得到初始映射数据;
测试单元9032,用于将所述初始映射数据代入被测试的时段中进行测试;
第一计算单元9033,用于当种群繁殖的最大代数未超过预设种群繁殖值时,通过适应度函数计算得到初始映射数据的适应度值;
第二计算单元9034,用于根据所述初始映射数据的适应度值进行编码和解码,得到待进行安全测试的应用程序映射数据。
在本发明所公开的一种实施方法中,所述第二计算单元9034包括:
第一计算子单元90341,用于根据所述初始映射数据的适应度值进行二进制编码,得到编码数据;
第二计算子单元90342,用于对所述编码数据进行选择,得到中间映射数据,所述中间映射数据为已进行剔除未映射数据的数据包;
第三计算子单元90343,用于对所述中间映射数据进行变异条件判断,得到中间映射判断数据集;
第四计算子单元90344,用于对所述中间映射判断数据集进行数据解码,得到待进行安全测试的应用程序映射数据。
在本发明所公开的一种实施方法中,所述第四处理模块905包括:
第一获取单元9051,用于获取用户独立配置的拦截脚本;
第三计算单元9052,用于根据所述控制指令数据、所述应用程序映射数据和所述劫持系统服务进行调用动态库的注入,得到初始拦截环境;
第四计算单元9053,用于根据所述初始拦截环境和预设拦截脚本生成中间拦截环境;
第五计算单元9054,用于根据所述中间拦截环境和所述用户独立配置的拦截脚本生成无需根权限的测试环境。
在本发明所公开的一种实施方法中,所述第五计算单元9054包括:
第二获取单元90541,用于获取用户对应输入的中间人抓包工具的代理地址;
第五计算子单元90542,用于根据所述中间拦截环境和所述用户独立配置的拦截脚本生成伪造服务端证书;
第六计算子单元90543,用于根据所述伪造服务端证书对所述中间人抓包工具的代理地址进行校验,得到无需根权限的测试环境。
需要说明的是,关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
实施例3:
相应于上面的方法实施例,本实施例中还提供了一种用于安卓的应用程序测试设备,下文描述的一种用于安卓的应用程序测试设备与上文描述的一种用于安卓的应用程序测试方法可相互对应参照。
图4是根据示例性实施例示出的一种用于安卓的应用程序测试设备800的框图。如图4所示,该用于安卓的应用程序测试设备800可以包括:处理器801,存储器802。该用于安卓的应用程序测试设备800还可以包括多媒体组件803, I/O接口804,以及通信组件805中的一者或多者。
其中,处理器801用于控制该用于安卓的应用程序测试设备800的整体操作,以完成上述的用于安卓的应用程序测试方法中的全部或部分步骤。存储器802用于存储各种类型的数据以支持在该用于安卓的应用程序测试设备800的操作,这些数据例如可以包括用于在该用于安卓的应用程序测试设备800上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器802可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(ElectricallyErasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件803可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器802或通过通信组件805发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口804为处理器801和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件805用于该用于安卓的应用程序测试设备800与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件805可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
在一示例性实施例中,用于安卓的应用程序测试设备800可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal ProcessingDevice,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的用于安卓的应用程序测试方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的用于安卓的应用程序测试方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器802,上述程序指令可由用于安卓的应用程序测试设备800的处理器801执行以完成上述的用于安卓的应用程序测试方法。
实施例4:
相应于上面的方法实施例,本实施例中还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种用于安卓的应用程序测试方法可相互对应参照。
一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的用于安卓的应用程序测试方法的步骤。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (8)

1.一种用于安卓的应用程序测试方法,其特征在于,包括:
获取待进行安全测试的应用程序原始数据;
对所述应用程序原始数据进行控制指令克隆,得到控制指令数据;包括:
以所述应用程序原始数据的存储路径为宿主路径,得到控制指令存储空间;
在所述控制指令存储空间内创建控制指令子目录;
对所述控制指令子目录进行调用函数的调用,得到控制指令数据;所述调用函数采用fork函数,一个现有进程调用fork函数创建一个新进程;在fork函数执行完毕后,如果创建新进程成功,则出现两个进程,一个是子进程,一个是父进程;在子进程中,fork函数返回0;在父进程中,fork函数返回新创建子进程的进程地址值;
对所述应用程序原始数据进行数据映射,得到待进行安全测试的应用程序映射数据;包括:
根据所述应用程序原始数据进行初始种群生成,得到初始映射数据;
将所述初始映射数据代入被测试的时段中进行测试;
当种群繁殖的最大代数未超过预设种群繁殖值时,通过适应度函数计算得到初始映射数据的适应度值;
根据所述初始映射数据的适应度值进行编码和解码,得到待进行安全测试的应用程序映射数据;
对所述应用程序原始数据所对应的安卓系统进行系统服务劫持,得到待进行安全测试的劫持系统服务;
根据所述控制指令数据、所述应用程序映射数据和所述劫持系统服务进行测试环境资源加载,得到无需根权限的测试环境;
根据所述无需根权限的测试环境对所述应用程序原始数据进行测试。
2.根据权利要求1所述的用于安卓的应用程序测试方法,其特征在于,根据所述控制指令数据、所述应用程序映射数据和所述劫持系统服务进行测试环境资源加载,得到无需根权限的测试环境,包括:
获取用户独立配置的拦截脚本;
根据所述控制指令数据、所述应用程序映射数据和所述劫持系统服务进行调用动态库的注入,得到初始拦截环境;
根据所述初始拦截环境和预设拦截脚本生成中间拦截环境;
根据所述中间拦截环境和所述用户独立配置的拦截脚本生成无需根权限的测试环境。
3.根据权利要求2所述的用于安卓的应用程序测试方法,其特征在于, 根据所述中间拦截环境和所述用户独立配置的拦截脚本生成无需根权限的测试环境,包括:
获取用户对应输入的中间人抓包工具的代理地址;
根据所述中间拦截环境和所述用户独立配置的拦截脚本生成伪造服务端证书;
根据所述伪造服务端证书对所述中间人抓包工具的代理地址进行校验,得到无需根权限的测试环境。
4.根据权利要求1所述的用于安卓的应用程序测试方法,其特征在于,根据所述初始映射数据的适应度值进行编码和解码,得到待进行安全测试的应用程序映射数据,包括:
根据所述初始映射数据的适应度值进行二进制编码,得到编码数据;
对所述编码数据进行选择,得到中间映射数据,所述中间映射数据为已进行剔除未映射数据的数据包;
对所述中间映射数据进行变异条件判断,得到中间映射判断数据集;
对所述中间映射判断数据集进行数据解码,得到待进行安全测试的应用程序映射数据。
5.一种用于安卓的应用程序测试装置,其特征在于,使用了权利要求1至4任意一项所述的用于安卓的应用程序测试方法,包括:
获取模块,用于获取待进行安全测试的应用程序原始数据;
第一处理模块,用于对所述应用程序原始数据进行控制指令克隆,得到控制指令数据;所述第一处理模块包括:
第一处理单元,用于以所述应用程序原始数据的存储路径为宿主路径,得到控制指令存储空间;
第二处理单元,用于在所述控制指令存储空间内创建控制指令子目录;
第三处理单元,用于对所述控制指令子目录进行调用函数的调用,得到控制指令数据;所述调用函数采用fork函数,一个现有进程调用fork函数创建一个新进程;在fork函数执行完毕后,如果创建新进程成功,则出现两个进程,一个是子进程,一个是父进程;在子进程中,fork函数返回0;在父进程中,fork函数返回新创建子进程的进程地址值;
第二处理模块,用于对所述应用程序原始数据进行数据映射,得到待进行安全测试的应用程序映射数据;所述第二处理模块包括:
生成单元,用于根据所述应用程序原始数据进行初始种群生成,得到初始映射数据;
测试单元,用于将所述初始映射数据代入被测试的时段中进行测试;
第一计算单元,用于当种群繁殖的最大代数未超过预设种群繁殖值时,通过适应度函数计算得到初始映射数据的适应度值;
第二计算单元,用于根据所述初始映射数据的适应度值进行编码和解码,得到待进行安全测试的应用程序映射数据;
第三处理模块,用于对所述应用程序原始数据所对应的安卓系统进行系统服务劫持,得到待进行安全测试的劫持系统服务;
第四处理模块,用于根据所述控制指令数据、所述应用程序映射数据和所述劫持系统服务进行测试环境资源加载,得到无需根权限的测试环境;
测试模块,用于根据所述无需根权限的测试环境对所述应用程序原始数据进行测试。
6.根据权利要求5所述的用于安卓的应用程序测试装置,其特征在于,所述第四处理模块包括:
第一获取单元,用于获取用户独立配置的拦截脚本;
第三计算单元,用于根据所述控制指令数据、所述应用程序映射数据和所述劫持系统服务进行调用动态库的注入,得到初始拦截环境;
第四计算单元,用于根据所述初始拦截环境和预设拦截脚本生成中间拦截环境;
第五计算单元,用于根据所述中间拦截环境和所述用户独立配置的拦截脚本生成无需根权限的测试环境。
7.根据权利要求6所述的用于安卓的应用程序测试装置,其特征在于,所述第五计算单元包括:
第二获取单元,用于获取用户对应输入的中间人抓包工具的代理地址;
第五计算子单元,用于根据所述中间拦截环境和所述用户独立配置的拦截脚本生成伪造服务端证书;
第六计算子单元,用于根据所述伪造服务端证书对所述中间人抓包工具的代理地址进行校验,得到无需根权限的测试环境。
8.根据权利要求5所述的用于安卓的应用程序测试装置,其特征在于,所述第二计算单元包括:
第一计算子单元,用于根据所述初始映射数据的适应度值进行二进制编码,得到编码数据;
第二计算子单元,用于对所述编码数据进行选择,得到中间映射数据,所述中间映射数据为已进行剔除未映射数据的数据包;
第三计算子单元,用于对所述中间映射数据进行变异条件判断,得到中间映射判断数据集;
第四计算子单元,用于对所述中间映射判断数据集进行数据解码,得到待进行安全测试的应用程序映射数据。
CN202310995190.4A 2023-08-09 2023-08-09 一种用于安卓的应用程序测试方法及装置 Active CN116737596B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310995190.4A CN116737596B (zh) 2023-08-09 2023-08-09 一种用于安卓的应用程序测试方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310995190.4A CN116737596B (zh) 2023-08-09 2023-08-09 一种用于安卓的应用程序测试方法及装置

Publications (2)

Publication Number Publication Date
CN116737596A CN116737596A (zh) 2023-09-12
CN116737596B true CN116737596B (zh) 2023-11-07

Family

ID=87906327

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310995190.4A Active CN116737596B (zh) 2023-08-09 2023-08-09 一种用于安卓的应用程序测试方法及装置

Country Status (1)

Country Link
CN (1) CN116737596B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106502905A (zh) * 2016-10-26 2017-03-15 腾讯科技(深圳)有限公司 一种应用程序的测试方法、装置及系统
CN111027053A (zh) * 2019-10-28 2020-04-17 深圳市跨越新科技有限公司 一种Android应用程序具有防Activity劫持的检测方法和系统
CN114020621A (zh) * 2021-11-03 2022-02-08 展讯通信(天津)有限公司 一种调试方法、电子设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220035905A1 (en) * 2020-07-31 2022-02-03 Palo Alto Networks, Inc. Malware analysis through virtual machine forking

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106502905A (zh) * 2016-10-26 2017-03-15 腾讯科技(深圳)有限公司 一种应用程序的测试方法、装置及系统
CN111027053A (zh) * 2019-10-28 2020-04-17 深圳市跨越新科技有限公司 一种Android应用程序具有防Activity劫持的检测方法和系统
CN114020621A (zh) * 2021-11-03 2022-02-08 展讯通信(天津)有限公司 一种调试方法、电子设备及存储介质

Also Published As

Publication number Publication date
CN116737596A (zh) 2023-09-12

Similar Documents

Publication Publication Date Title
CN111475824B (zh) 数据访问方法、装置、设备和存储介质
CN109214161B (zh) 一种二维码安全标签登录系统
CN107391171B (zh) 一种解决iOS热修复问题的方法以及用户终端
CN110149328A (zh) 接口鉴权方法、装置、设备及计算机可读存储介质
CN110175466B (zh) 开放平台的安全管理方法、装置、计算机设备及存储介质
CN106549957B (zh) 一种终端应用正版的认证方法及系统
CN107196761B (zh) 一种保护应用程序中的核心函数的方法
CN103067246B (zh) 对基于即时通讯业务接收到的文件进行处理的方法及装置
CN113268716A (zh) 一种应用的授权验证系统、方法、装置及存储介质
CN105279404B (zh) 操作系统操作控制方法及装置
CN116737596B (zh) 一种用于安卓的应用程序测试方法及装置
CN103559430B (zh) 基于安卓系统的应用账号管理方法和装置
CN110602051B (zh) 基于共识协议的信息处理方法及相关装置
CN113922975A (zh) 一种安全控制方法、服务器、终端、系统和存储介质
CN108763934B (zh) 数据处理方法及装置、存储介质、服务器
CN108881320B (zh) 一种用户登陆的认证处理方法、服务器及客户端
CN114402322A (zh) 函数调用方法、装置、电子设备及计算机可读介质
KR101745919B1 (ko) 패스워드 노출 없는 소프트웨어 방식의 hsm을 이용한 사용자 인증 방법 및 시스템
CN110162941A (zh) 一种终端登录信息保存方法
CN114520724A (zh) 一种开放api接口的签名验证方法
CN110087201B (zh) 一种信息处理的方法、装置和存储介质
CN113569205A (zh) 一种sdk软件接口服务授权方法及装置
CN112948815A (zh) 基于哈希匹配的离线弱密码核查方法及装置
CN107172106B (zh) 安全信息交互方法和系统
CN105790931B (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