CN107608685A - 安卓应用的自动执行方法 - Google Patents
安卓应用的自动执行方法 Download PDFInfo
- Publication number
- CN107608685A CN107608685A CN201710970899.3A CN201710970899A CN107608685A CN 107608685 A CN107608685 A CN 107608685A CN 201710970899 A CN201710970899 A CN 201710970899A CN 107608685 A CN107608685 A CN 107608685A
- Authority
- CN
- China
- Prior art keywords
- android
- android application
- control
- application
- automatic
- 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
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种安卓应用的自动执行方法,包括实现安卓应用的自动安装、启动和卸载;启动安卓应用,判断当前界面是否完全加载;识别安卓应用的界面和界面上所定义的控件类型;对安卓应用生成与控件类型所对应的执行事件对控件进行操作;记录安卓应用界面跳转记录;自动执行安卓应用,产生和记录动态行为特征,完成安卓应用自动执行。本发明方法以网络流量为例来验证自动执行过程中生成的安卓应用动态行为特征的质量,并和真实环境下的安卓应用产生的网络流量进行对比,能较好的模拟用户操作行为来自动地执行安卓应用,并能产生与真实情况相似的动态行为特征数据,实用性极佳。
Description
技术领域
本发明具体涉及一种安卓应用的自动执行方法。
背景技术
随着国家经济技术的发展和人们生活水平的提高,智能手机已经成为了人们生产和生活中必不可少的智能设备,在人们的生产和生活中发挥了不可替代的作用。
当前,大部分的智能手机的操作系统均为安卓(Android)操作系统。随着移动互联网和移动智能设备的飞速发展,安卓(Android)应用能够为用户提供丰富多样的服务。然而,安卓应用的流行使得许多恶意应用制造者瞄准该平台,通过各种类型的安卓恶意应用来执行恶意行为,比如隐私窃取,资费消耗等。安卓恶意应用使得安卓用户的安全和隐私受到严重的威胁。因此,很多研究人员提出了各种各样的方法来对安卓恶意应用检测。基于特征签名字段匹配的方法可以有效、准确的对已知的安卓恶意应用进行检测。但是该方法在无法检测未知的安卓恶意应用。基于静态分析的方法从安卓恶意应用中提取静态行为特征。反编译的代码来进行检测。然而该方法不能有效检测具有代码混淆技术的安卓恶意应用。
根据前述两类方法存在的不足,一些研究人员提出了使用动态分析的方法来对安卓恶意应用进行检测。动态分析方法即通过对安卓恶意应用在运行过程中所表现出的行为特征(比如网络流量)进行采集,通过对采集的数据进行分析从而实现并对恶意应用的检测。因此,动态分析方法的有效性很大程度上取决于如何有效地执行安卓应用,获得全面的动态行为特征。因此,一些研究人员通过手动执行安卓应用的方法来采集动态行为特征,但是由于安卓应用的数目巨大,手动执行的方式会消耗大量的人力和时间。
发明内容
本发明的目的在于提供一种运行效率高,能够有效节省人力物力和时间的安卓应用的自动执行方法。
本发明提供的这种安卓应用的自动执行方法,包括如下步骤:
S1.采用安卓应用第一测试工具实现安卓应用的自动安装、启动和卸载;
S2.步骤S1启动的安卓应用后,判断安卓应用的当前界面是否完全加载;
S3.采用安卓应用第二测试工具对步骤S2打开的安卓应用的界面和界面上所定义的控件类型进行识别;
S4.根据步骤S3所识别的控件类型,对安卓应用生成与控件类型所对应的执行事件对控件进行操作,从而模拟安卓应用的动作;
S5.记录步骤S4的控件在自动执行过程中安卓应用界面的跳转记录;
S6.根据步骤S5记录的安卓应用界面的跳转记录,自动执行安卓应用,并产生和记录不同类型的动态行为特征,从而完成安卓应用的自动执行。
步骤S1所述的安卓应用测试工具为安卓应用测试工具MonkeyRunner。
步骤S1所述的安卓应用的自动安装、启动和卸载,具体为采用如下规则进行自动安装、启动和卸载:
R1.安卓应用的自动安装为通过调用安卓应用的Intent组件来对指定位置的安卓应用的安装文件进行自动安装;
R2.安卓应用的自动启动为通过安卓应用的AndroidManifest.xml文件中获取安卓应用的MainActivity,通过调用应用的Intent组件结合获取的MainActivity的名称来自动启动安卓应用;
R3.安卓应用的自动卸载为通过调用安卓应用的Intent组件中的Intent.ACTION_DELETE,并结合要卸载的安卓应用的包名和启动时的MainActivity名称来实现安卓应用的自动卸载。
步骤S2所述的判断安卓应用的当前界面是否完全加载,具体为采用如下规则判断当前界面是否完全加载:应用安卓系统的WINDOW_CONTENT_CHANGED事件对安卓应用的当前界面进行监听:若WINDOW_CONTENT_CHANGED事件监听到当前界面的内容在设定的时间T内无变化,则认定安卓应用的当前界面已经完全加载完成;否则则认定安卓应用的当前界面未加载完成。
步骤S3所述的安卓应用第二测试工具为安卓应用测试工具Hierarchy Viewer。
步骤S3所述的对安卓应用的界面和界面上所定义的控件类型进行识别,具体为采用如下步骤进行界面和控件类型进行识别:
A.对安卓应用界面上的所有控件进行遍历;
B.在步骤A的遍历过程中,调用安卓应用第二测试工具提取每个控件的属性值;
C.遍历完成后,将步骤B提取到的控件属性值进行存储,完成控件的识别。
步骤B所述的控件的属性值包括控件的类型(比如按钮、文本框、列表框等)、控件的位置、控件的可点击属性等。
步骤S4所述的生成与控件类型所对应的执行事件对控件进行操作,具体为采用如下步骤对控件进行操作:
a.对组成控件的结构进行遍历,并记录所有遍历到的控件;
b.获取每个控件的类型、名称、位置和是否可点击属性的信息;
c.对于执行事件,通过安卓第三测试工具根据步骤b获取的控件类型、控件名称和控件位置生成对应的执行事件,从而完成对控件的操作。
所述的安卓第三测试工具为安卓测试工具Instrumentation。
步骤S5所述的记录控件在自动执行过程中安卓应用界面的跳转记录,具体为采用基于深度优先的搜索算法来记录自动执行过程中安卓应用界面的跳转记录。
步骤S5所述的基于深度优先的搜索算法记录跳转记录,具体为采用如下步骤进行跳转记录的记录:
1)将安卓应用启动时首先出现在界面上的Activity作为根结点;
2)对步骤1)中根结点的Activity中的控件进行点击;
3)若当前Activity跳转到下一级结点,则以树的形式记录该跳转记录;若当前Activity中不存在可点击的控件或点击控件后当前Activity不进行转换,则返回上一级结点的Activity,并点击剩余的未被点击过的控件;
4)重复步骤3)直至所有的结点的Activity中的控件都被点击完成;
5)从根结点到叶子结点的路径即为记录安卓应用的一条可执行路径。
步骤S6所述的自动执行安卓应用并产生和记录不同类型的动态行为特征,为根据配置规则自动执行安卓应用并产生不同类型的动态行为特征。
所述的根据配置规则自动执行安卓应用并产生不同类型的动态行为特征,具体为采用如下规则自动执行安卓应用并产生和记录不同类型的动态行为特征:
(1)应用组成:采用AndroGenerator根据安卓应用集生成对应的的网络流量数据;
(2)执行时间:根据执行动作的类型选定执行时间:
所述的执行时间分为固定执行时间和动态执行时间:固定执行时间的范围为A分钟~B分钟,时间间隔为C分钟;固定执行时间通常用于使用特定执行动作来执行安卓应用;动态执行时间额范围为X秒~Y秒,间隔时间为Z秒;动态执行时间用于使用随机执行动作来执行安卓应用;所述的A、B、C、X、Y和Z均为正整数;
(3)执行动作:执行动作规则决定事件生成模块生成的执行动作的类型。
所述的A分钟为1分钟,B分钟为10分钟,C分钟为1分钟。
所述的X秒为1秒,Y秒为300秒,Z秒为1秒。
本发明提供的这种安卓应用的自动执行方法,首先通过使用安卓测试工具MonkeyRunner实现对安卓应用的自动安装和启动;启动安卓应用后,通过使用安卓测试工具Hierarchy Viewer对安卓应用的界面所定义的控件类型,位置和是否可点击等属性进行提取,并使用MonkeyRunner根据不同类型的控件生成不同的执行事件。在自动执行过程中按照深度优先的顺序来进行安卓界面的转换。同时,本发明提供三种配置规则来对安卓应用执行过程进行配置。在完成安卓应用自动执行后,本发明方法通过使用MonkeyRunner来卸载该应用。本发明方法以网络流量为例来验证自动执行过程中生成的安卓应用动态行为特征的质量,并和真实环境下的安卓应用产生的网络流量进行对比,发现本发明方法能较好的模拟用户操作行为来自动地执行安卓应用,并能产生与真实情况相似的动态行为特征数据,实用性极佳。
附图说明
图1为本发明的方法流程图。
图2为本发明的Activity覆盖率结果图。
图3为本发明的不同执行应用方法的Activity覆盖率比较图。
图4为本发明方法与第一安卓应用在真实网络流量在数据包长度方面的比较图。
图5为本发明方法与第一安卓应用在真实网络流量大小方面的比较图。
图6为本发明方法与第一安卓应用在真实网络流量在数据包个数方面的比较图。
图7为本发明方法与第二安卓应用在真实网络流量在数据包长度方面的比较图。
图8为本发明方法与第二安卓应用在真实网络流量大小方面的比较图。
图9为本发明方法与第二安卓应用在真实网络流量在数据包个数方面的比较图。
图10为本发明方法与第二安卓应用在数据上传方向的流量比较图。
图11为本发明方法与第二安卓应用在数据下载方向的流量比较图。
图12为本发明方法与第二安卓应用在HTTP请求长度上的比较图。
图13为本发明方法与第二安卓应用在HTTP平均请求个数上的比较图。
具体实施方式
如图1所示为本发明的方法流程图:本发明提供的这种安卓应用的自动执行方法,包括如下步骤:
S1.采用安卓应用第一测试工具(安卓应用测试工具MonkeyRunner)实现安卓应用的自动安装、启动和卸载,具体为采用如下规则进行自动安装、启动和卸载:
R1.安卓应用的自动安装为通过调用安卓应用的Intent组件来对指定位置的安卓应用的安装文件进行自动安装;
R2.安卓应用的自动启动为通过安卓应用的AndroidManifest.xml文件中获取安卓应用的MainActivity,通过调用应用的Intent组件结合获取的MainActivity的名称来自动启动安卓应用;
R3.安卓应用的自动卸载为通过调用安卓应用的Intent组件中的Intent.ACTION_DELETE,并结合要卸载的安卓应用的包名和启动时的MainActivity名称来实现安卓应用的自动卸载;
S2.步骤S1启动的安卓应用后,判断安卓应用的当前界面是否完全加载:应用安卓系统的WINDOW_CONTENT_CHANGED事件对安卓应用的当前界面进行监听:若WINDOW_CONTENT_CHANGED事件监听到当前界面的内容在设定的时间T内无变化,则认定安卓应用的当前界面已经完全加载完成;否则则认定安卓应用的当前界面未加载完成;比如,一个Activity通过接收网络数据更新其中某个控件将会触发一个该事件信号。当系统在一个固定时间内没有收到该事件信号就可以判断该Activity已经完全加载;
S3.采用安卓应用第二测试工具(安卓应用测试工具Hierarchy Viewer)对步骤S2打开的安卓应用的界面和界面上所定义的控件类型采用如下步骤进行识别:
A.对安卓应用界面上的所有控件进行遍历;
B.在步骤A的遍历过程中,调用安卓应用第二测试工具提取每个控件的属性值;属性值包括控件的类型(比如按钮、文本框、列表框等)、控件的位置、控件的可点击属性等;
C.遍历完成后,将步骤B提取到的控件属性值进行存储,完成控件的识别;
S4.根据步骤S3所识别的控件类型,对安卓应用生成与控件类型所对应的执行事件对控件进行操作,从而模拟安卓应用的动作;具体为采用如下步骤对控件进行操作:
a.对组成控件的结构进行遍历,并记录所有遍历到的控件;
b.获取每个控件的类型、名称、位置和是否可点击属性的信息;
c.对于执行事件,通过安卓第三测试工具(安卓测试工具Instrumentation)根据步骤b获取的控件类型、控件名称和控件位置生成对应的执行事件,从而完成对控件的操作;
在具体实施时,安卓每个界面中定义的控件所组成的结构类似于树结构,根据该结构,本发明首先定义一个List的列表变量,通过对控件所组成的结构进行遍历,每遍历到一个控件,把该控件加入到List中,直到把所有的控件都加入到该List变量中;其次,每个控件相当于一个view对象,该对象具有获取类型、位置等成员函数,通过view对象的成员函数来获取每个控件的类型、名称、位置、是否可点击这四类信息;
关于执行事件,安卓测试工具Instrumentation,该工具提供Instrumentation的对象来生成各种不同的执行事件的类型,比如按键下和弹起事件等;本发明根据把获得的控件的类型、名称、位置作为参数传递到执行事件模块,然后根据这些信息来生成不同的执行事件。比如,如果控件类型为按钮,Instrumentation对象就调用sendKeyDownUpSync()成员函数来生成一个按键按下和弹起事件;
S5.采用基于深度优先的搜索算法来记录步骤S4的控件在自动执行过程中安卓应用界面的跳转记录;具体为采用如下步骤进行跳转记录的记录:
1)将安卓应用启动时首先出现在界面上的Activity作为根结点;
2)对步骤1)中根结点的Activity中的控件进行点击;
3)若当前Activity跳转到下一级结点,则以树的形式记录该跳转记录;若当前Activity中不存在可点击的控件或点击控件后当前Activity不进行转换,则返回上一级结点的Activity,并点击剩余的未被点击过的控件;
4)重复步骤3)直至所有的结点的Activity中的控件都被点击完成;
5)从根结点到叶子结点的路径即为记录安卓应用的一条可执行路径;
在具体实施时,使用动态的Acitvity转换图(Dynamic Activity TransitionGraph,DATG)的形式来描述安卓应用在被操作时Activity转换过程。设DATG为GD=(VD,ED),其中VD是一个结点集合表示安卓应用的每个Activity,ED是一个边的集合表示安卓应用的Activity转换的过程;当一个安卓应用启动的时候,首先在屏幕显示的是主界面,根据点击主界面上不同的控件,当前界面将跳转到其他不同的界面去;重复这样的过程直到当前界面上的所有控件都不可点击或点击后Activity不再转换;然后再返回上一层的Activity操作没有操作过的控件,继续重复这一过程;当所有的Activity被操作,则该过程完成。这样的Activity转换的过程即为安卓应用可执行路径;
安卓应用的Activity转换过程类似于树形结构;因此,为了记录安卓应用的可执行路径,本步骤设计一个基于深度优先搜索的可执行路径识别算法,即深度优先识别算法(Depth-First Identification Algorithm);该算法是基于传统的深度优先遍历树算法的基础上,根据安卓应用的特点进行改进得到:该算法最初把一个安卓应用启动时首先出现在屏幕的Activity作为根结点;随后对根结点的Activity中控件进行点击,当前Activity就会跳转到下一级结点,一直重复这个过程直到跳转到某个Activity上不存在可点击的控件或者点击后该Activity不再转换;该算法则返回上一级结点的Activity去寻找没有点击过的控件进行点击;那么从根结点到叶子结点的这条路径就可以记录为安卓应用的一条可执行路径;
S6.根据步骤S5记录的安卓应用界面的跳转记录,自动执行安卓应用,并产生和记录不同类型的动态行为特征,从而完成安卓应用的自动执行;自动执行安卓应用并产生和记录不同类型的动态行为特征,为根据配置规则自动执行安卓应用并产生不同类型的动态行为特征,具体为采用如下规则自动执行安卓应用并产生和记录不同类型的动态行为特征:
(1)应用组成:采用AndroGenerator根据安卓应用集生成对应的的网络流量数据;
(2)执行时间:根据执行动作的类型选定执行时间:
所述的执行时间分为固定执行时间和动态执行时间:固定执行时间的范围为A分钟~B分钟(比如1~10分钟),时间间隔为C分钟(比如1分钟);固定执行时间通常用于使用特定执行动作来执行安卓应用;动态执行时间额范围为X秒~Y秒(比如1~300秒),间隔时间为Z秒(比如1秒);动态执行时间用于使用随机执行动作来执行安卓应用;所述的A、B、C、X、Y和Z均为正整数;
(3)执行动作:执行动作规则决定事件生成模块生成的执行动作的类型。
图2为本发明的Activity覆盖率结果图,该图中列举15个应用所包含的全部Activity个数和本发明方法在自动执行应用时所达到的Activity覆盖率。本发明方法的自动执行应用组件在执行某些应用时可以把该应用的所有Activity都执行到,即Activity的覆盖率可以达到100%,大部分的应用也可以达到80%以上的Activity覆盖率。然而也存在执行一些应用的Activity的覆盖率不高的情况,比如QQ和淘宝,仅仅只有40-50%左右的Activity覆盖率。这些具有低覆盖率的应用都是本身包含数量较多的Activity,Activity的结构也比较复杂。所以导致AndroGenerator的自动执行应用组件很难去识别和执行所有的Activity。
图3为本发明的不同执行应用方法的Activity覆盖率比较图,手动执行的方法(Manually)是可以达到最高的Activity覆盖率的,但是该方法执行数目较多的安卓应用的时候需要耗费时间和精力。Monkey在执行应用的时候所达到的Activity覆盖率在这4种方法里面是最低的,因为该方法只根据随机产生的事件来执行安卓应用,并不会提前判断会遇到何种类型的控件,在执行应用的过程中会因为执行事件和控件类型不匹配导致不能继续执行应用。NetworkProfiler适合本发明的自动执行方法最接近的工作,但是由于该工作缺乏系统的算法来识别安卓应用的可执行路径导致Activity的覆盖率不如本发明的自动执行应用方法高。
本发明的自动执行应用方法在这4种执行方法里面的Activity覆盖率仅次于手动执行的方法,然而某些Activity数目较少的安卓应用,本发明的自动执行应用方法能达到和手动执行方法一样的覆盖率。这说明本发明的自动执行应用方法不但能解决手动执行方法存在的不足,而且还能保证较高的Activity覆盖率。
图4~图6为本发明方法与第一安卓应用在真实网络流量的比较图;第一安卓应用在真实网络流量的曲线是通过8台安卓手机和2台iOS手机在5天的时间内运行不同的移动应用采集得到的。该网络流量数据集主要包含了多个当前比较流行的移动应用,比如,微信、QQ、淘宝等。这10台手机的操作者都是具备移动应用开发背景的自愿者。由于3G信号覆盖率差的原因,每台手机在操作的时候都是连接满格的Wi-Fi信号。
图4是本发明方法生成的网络流量与第一安卓应用的流网络量根据数据包长度分布比较,两类流量在64字节(bytes)到100字节和1200字节到1518字节这两个区间是十分类似的,但是在100字节到1200字节这个区间相似度不是那么高,但是也非常接近。造成相似度降低的原因是因为第一安卓应用包含的小包数量(数据包长度小于100字节的数据包)多于本发明方法生成的网络流量。图5是本发明方法生成的网络流量与第一安卓应用的网络流量根据流大小分布比较。可以看出两类网络流量在这个指标上除了在流大小较小的这个区间外,其余部分都比较类似。图6是本发明生成的网络流量与第一安卓应用的网络流量根据数据包个数分布比较。可以看出两类网络流量在这个指标上具有较高的相似度,这也说明本发明方法生成的网络流量与实际网络环境下安卓应用的网络流量具有相当接近的数据包个数。
图7~图9为本发明方法与第二安卓应用的真实网络流量比较图;第二安卓应用的真实网络流量曲线是通过国内某大学的校园无线网采集得到的,采集时间是从2014年的1月12-13日。该数据集比第一安卓应用的真实网络流量包含更多数量的用户和更多类型的移动应用。由于无线网中可能会有一些笔记本产生的流量,因此需要提取移动应用产生的网络流量。本发明使用已有的移动网络流量识别的技术来完成移动应用网络流量提取,比如使用移动应用域名、HTTP头部的User-agent字段等。
图7展示两类网络流量根据数据包长度分布的比较。可以看出,在该指标上两类流量的数据包分布曲线比较好的重合在一起,因为第二安卓应用包含了更多的小包,即数据包长度小于100字节的数据包。图8展示两类流量根据流大小分布的比较。相比于图8,本发明放生成的网络流量在流大小这个指标上与较大的规模的网络流量数据的流大小属性更相似。图9展示两类网络流量根据数据包大小分布的比较。同样的,两类网络流量在该指标上也较为类似。
图10~图11为本发明方法与第二安卓应用的真实网络流量在上传和下载两个指标下的比较图。两类网络流量在这两个指标上具有很高的相似度。该比较结果不仅说明本发明方法在传输大小等属性上可以很好的模拟生成实际网络环境中的网络流量,而且也可以模拟生成上传与下载两个方向的网络流量。
图12~图13为本发明方法与第二安卓应用的真实网络流量在HTTP请求的指标下的比较图。图12是HTTP请求的长度分布比较,从该图中可以发现两类网络流量具有非常接近的分布曲线。图13是平均HTTP请求个数比较,两类网络流量同样具有很好的相似度。该比较结果表明本发明可以生成与实际安卓应用的网络流量十分接近的流量。
Claims (10)
1.一种安卓应用的自动执行方法,包括如下步骤:
S1.采用安卓应用第一测试工具实现安卓应用的自动安装、启动和卸载;
S2.步骤S1启动的安卓应用后,判断安卓应用的当前界面是否完全加载;
S3.采用安卓应用第二测试工具对步骤S2打开的安卓应用的界面和界面上所定义的控件类型进行识别;
S4.根据步骤S3所识别的控件类型,对安卓应用生成与控件类型所对应的执行事件对控件进行操作,从而模拟安卓应用的动作;
S5.记录步骤S4的控件在自动执行过程中安卓应用界面的跳转记录;
S6.根据步骤S5记录的安卓应用界面的跳转记录,自动执行安卓应用,并产生和记录不同类型的动态行为特征,从而完成安卓应用的自动执行。
2.根据权利要求1所述的安卓应用的自动执行方法,其特征在于步骤S1所述的安卓应用的自动安装、启动和卸载,具体为采用如下规则进行自动安装、启动和卸载:
R1.安卓应用的自动安装为通过调用安卓应用的Intent组件来对指定位置的安卓应用的安装文件进行自动安装;
R2.安卓应用的自动启动为通过安卓应用的AndroidManifest.xml文件中获取安卓应用的MainActivity,通过调用应用的Intent组件结合获取的MainActivity的名称来自动启动安卓应用;
R3.安卓应用的自动卸载为通过调用安卓应用的Intent组件中的Intent.ACTION_DELETE,并结合要卸载的安卓应用的包名和启动时的MainActivity名称来实现安卓应用的自动卸载。
3.根据权利要求2所述的安卓应用的自动执行方法,其特征在于步骤S2所述的判断安卓应用的当前界面是否完全加载,具体为采用如下规则判断单钱界面是否完全加载:应用安卓系统的WINDOW_CONTENT_CHANGED事件对安卓应用的当前界面进行监听:若WINDOW_CONTENT_CHANGED事件监听到当前界面的内容在设定的时间T内无变化,则认定安卓应用的当前界面已经完全加载完成;否则则认定安卓应用的当前界面未加载完成。
4.根据权利要求3所述的安卓应用的自动执行方法,其特征在于步骤S3所述的对安卓应用的界面和界面上所定义的控件类型进行识别,具体为采用如下步骤进行界面和控件类型进行识别:
A.对安卓应用界面上的所有控件进行遍历;
B.在步骤A的遍历过程中,调用安卓应用第二测试工具提取每个控件的属性值;
C.遍历完成后,将步骤B提取到的控件属性值进行存储,完成控件的识别。
5.根据权利要求4所述的安卓应用的自动执行方法,其特征在于步骤B所述的控件的属性值包括控件的类型(比如按钮、文本框、列表框等)、控件的位置、控件的可点击属性等。
6.根据权利要求5所述的安卓应用的自动执行方法,其特征在于步骤S4所述的生成与控件类型所对应的执行事件对控件进行操作,具体为采用如下步骤对控件进行操作:
a.对组成控件的结构进行遍历,并记录所有遍历到的控件;
b.获取每个控件的类型、名称、位置和是否可点击属性的信息;
c.对于执行事件,通过安卓第三测试工具根据步骤b获取的控件类型、控件名称和控件位置生成对应的执行事件,从而完成对控件的操作。
7.根据权利要求6所述的安卓应用的自动执行方法,其特征在于步骤S5所述的记录控件在自动执行过程中安卓应用界面的跳转记录,具体为采用基于深度优先的搜索算法来记录自动执行过程中安卓应用界面的跳转记录。
8.根据权利要求7所述的安卓应用的自动执行方法,其特征在于步骤S5所述的基于深度优先的搜索算法记录跳转记录,具体为采用如下步骤进行跳转记录的记录:
1)将安卓应用启动时首先出现在界面上的Activity作为根结点;
2)对步骤1)中根结点的Activity中的控件进行点击;
3)若当前Activity跳转到下一级结点,则以树的形式记录该跳转记录;若当前Activity中不存在可点击的控件或点击控件后当前Activity不进行转换,则返回上一级结点的Activity,并点击剩余的未被点击过的控件;
4)重复步骤3)直至所有的结点的Activity中的控件都被点击完成;
5)从根结点到叶子结点的路径即为记录安卓应用的一条可执行路径。
9.根据权利要求8所述的安卓应用的自动执行方法,其特征在于步骤S6所述的自动执行安卓应用并产生和记录不同类型的动态行为特征,为根据配置规则自动执行安卓应用并产生不同类型的动态行为特征。
10.根据权利要求9所述的安卓应用的自动执行方法,其特征在于所述的根据配置规则自动执行安卓应用并产生不同类型的动态行为特征,具体为采用如下规则自动执行安卓应用并产生和记录不同类型的动态行为特征:
(1)应用组成:采用AndroGenerator根据安卓应用集生成对应的的网络流量数据;
(2)执行时间:根据执行动作的类型选定执行时间:
所述的执行时间分为固定执行时间和动态执行时间:固定执行时间的范围为A分钟~B分钟,时间间隔为C分钟;固定执行时间通常用于使用特定执行动作来执行安卓应用;动态执行时间额范围为X秒~Y秒,间隔时间为Z秒;动态执行时间用于使用随机执行动作来执行安卓应用;所述的A、B、C、X、Y和Z均为正整数;
(3)执行动作:执行动作规则决定事件生成模块生成的执行动作的类型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710970899.3A CN107608685A (zh) | 2017-10-18 | 2017-10-18 | 安卓应用的自动执行方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710970899.3A CN107608685A (zh) | 2017-10-18 | 2017-10-18 | 安卓应用的自动执行方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107608685A true CN107608685A (zh) | 2018-01-19 |
Family
ID=61077087
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710970899.3A Pending CN107608685A (zh) | 2017-10-18 | 2017-10-18 | 安卓应用的自动执行方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107608685A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110580222A (zh) * | 2019-08-29 | 2019-12-17 | 清华大学 | 一种软件测试用例生成方法及系统 |
CN110865851A (zh) * | 2019-11-18 | 2020-03-06 | 中国民航信息网络股份有限公司 | 一种Android应用数据自动采集方法及系统 |
CN110941814A (zh) * | 2019-11-28 | 2020-03-31 | 武汉极意网络科技有限公司 | 行为验证兼容方法、设备、存储介质及装置 |
CN113254154A (zh) * | 2021-05-21 | 2021-08-13 | 技德技术研究所(武汉)有限公司 | 一种在Linux上兼容运行Android系统的应用启动方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150074181A1 (en) * | 2013-09-10 | 2015-03-12 | Calgary Scientific Inc. | Architecture for distributed server-side and client-side image data rendering |
CN105630686A (zh) * | 2016-03-24 | 2016-06-01 | 厦门美图移动科技有限公司 | 一种应用遍历测试方法、设备和移动终端 |
CN105808073A (zh) * | 2014-12-30 | 2016-07-27 | 平安科技(深圳)有限公司 | 应用操作指令分发方法及终端 |
CN106599688A (zh) * | 2016-12-08 | 2017-04-26 | 西安电子科技大学 | 一种基于应用类别的安卓恶意软件检测方法 |
CN106776330A (zh) * | 2016-12-26 | 2017-05-31 | 北京金山安全软件有限公司 | 应用测试方法、装置及电子设备 |
CN107133519A (zh) * | 2017-05-15 | 2017-09-05 | 华中科技大学 | 一种安卓应用网络通信中隐私泄漏检测方法及系统 |
-
2017
- 2017-10-18 CN CN201710970899.3A patent/CN107608685A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150074181A1 (en) * | 2013-09-10 | 2015-03-12 | Calgary Scientific Inc. | Architecture for distributed server-side and client-side image data rendering |
CN105808073A (zh) * | 2014-12-30 | 2016-07-27 | 平安科技(深圳)有限公司 | 应用操作指令分发方法及终端 |
CN105630686A (zh) * | 2016-03-24 | 2016-06-01 | 厦门美图移动科技有限公司 | 一种应用遍历测试方法、设备和移动终端 |
CN106599688A (zh) * | 2016-12-08 | 2017-04-26 | 西安电子科技大学 | 一种基于应用类别的安卓恶意软件检测方法 |
CN106776330A (zh) * | 2016-12-26 | 2017-05-31 | 北京金山安全软件有限公司 | 应用测试方法、装置及电子设备 |
CN107133519A (zh) * | 2017-05-15 | 2017-09-05 | 华中科技大学 | 一种安卓应用网络通信中隐私泄漏检测方法及系统 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110580222A (zh) * | 2019-08-29 | 2019-12-17 | 清华大学 | 一种软件测试用例生成方法及系统 |
CN110865851A (zh) * | 2019-11-18 | 2020-03-06 | 中国民航信息网络股份有限公司 | 一种Android应用数据自动采集方法及系统 |
CN110865851B (zh) * | 2019-11-18 | 2023-12-01 | 中国民航信息网络股份有限公司 | 一种Android应用数据自动采集方法及系统 |
CN110941814A (zh) * | 2019-11-28 | 2020-03-31 | 武汉极意网络科技有限公司 | 行为验证兼容方法、设备、存储介质及装置 |
CN110941814B (zh) * | 2019-11-28 | 2022-04-01 | 武汉极意网络科技有限公司 | 行为验证兼容方法、设备、存储介质及装置 |
CN113254154A (zh) * | 2021-05-21 | 2021-08-13 | 技德技术研究所(武汉)有限公司 | 一种在Linux上兼容运行Android系统的应用启动方法及装置 |
CN113254154B (zh) * | 2021-05-21 | 2024-03-29 | 技德技术研究所(武汉)有限公司 | 一种在Linux上兼容运行Android系统的应用启动方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Bayraktarov et al. | Do big unstructured biodiversity data mean more knowledge? | |
CN107608685A (zh) | 安卓应用的自动执行方法 | |
CN107180192B (zh) | 基于多特征融合的安卓恶意应用程序检测方法和系统 | |
CN110442511B (zh) | 可视化埋点测试方法及装置 | |
CN106951780B (zh) | 重打包恶意应用的静态检测方法和装置 | |
CN109241740B (zh) | 恶意软件基准测试集生成方法及装置 | |
CN103839005B (zh) | 移动操作系统的恶意软件检测方法和恶意软件检测系统 | |
CN103136471B (zh) | 一种恶意Android应用程序检测方法和系统 | |
CN106845240A (zh) | 一种基于随机森林的Android恶意软件静态检测方法 | |
Fahland et al. | Mining branching-time scenarios | |
CN106503558A (zh) | 一种基于社团结构分析的Android恶意代码检测方法 | |
CN105302706B (zh) | 应用程序测试方法和装置 | |
CN106874763B (zh) | 模拟用户行为的安卓软件恶意行为触发系统及方法 | |
CN106354797B (zh) | 数据推荐方法和装置 | |
CN105677311A (zh) | 一种函数调用关系的识别方法及装置 | |
CN105069354A (zh) | 基于攻击树模型的Android软件混合检测方法 | |
CN106055479A (zh) | 一种基于强制执行的Android应用软件测试方法 | |
Ezzati-Jivan et al. | A stateful approach to generate synthetic events from kernel traces | |
CN112363943A (zh) | 一种埋点设置方法、装置、计算机设备和存储介质 | |
CN104836919A (zh) | 一种弹奏仿真吉他实现移动终端解锁的方法及系统 | |
CN105205398B (zh) | 一种基于apk加壳软件动态行为的查壳方法 | |
CN108646968A (zh) | 一种基于图像分析重现场景的方法及系统 | |
CN108932199B (zh) | 一种基于用户界面分析的自动化污点分析系统 | |
CN111866882A (zh) | 一种基于生成对抗网络的移动应用流量生成方法 | |
CN110598419A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180119 |
|
RJ01 | Rejection of invention patent application after publication |