The invention provides a control traversal method and a device and an analysis system, in which the method includes traversal processing of the control on the current interface when the application runs, in which the traversal processing includes traversal of the control on the current interface and acquisition of the control type of the current control in the traversal process, and can be used by the current control. All interactive events corresponding to the type of control received are sent to the current control for processing; when the control in the current interface has completed the analysis and processing, the other interface except the current interface is regarded as the current interface to be traversed, and the control on the current interface to be traversed is traversed. The invention solves the problem of low code coverage in the application of interface control analysis method in related technology, and achieves the effect of improving code coverage.
【技术实现步骤摘要】
控件遍历方法及装置、分析系统
本专利技术涉及信息安全领域,具体而言,涉及一种控件遍历方法及装置、分析系统。
技术介绍
由于功能丰富和携带便捷,智能手机在近年来获得了飞速的发展,已成为人们生活中不可或缺的用品,其中以搭载了安卓系统的智能手机最为受欢迎。根据数据显示,2015年第4季度安卓系统的市场占有率为80.7%,远远超过其他移动设备操作系统。在安卓系统繁荣发展的背后,丰富多彩的安卓应用可谓功不可没。然而安卓应用在丰富人们生活的同时,也给用户带来了各种各样的安全隐患,恶意扣费软件、隐私窃取软件、欺诈软件等恶意软件无时无刻不威胁着用户的隐私和资金安全。为了保证用户使用的安全,各大安全厂商、应用商店提供商、研究机构等都推出了相应的安卓应用安全分析平台,利用静态分析和动态分析等技术分析检测安卓应用中的恶意行为和安全问题。静态分析技术不需要实际运行应用程序,而直接针对程序的源代码或者二进制文件进行数据流、控制流等分析,具有较高的代码覆盖率,然而在分析过程中缺乏实际运行路径和上下文信息,难以判断分析得到的行为是否可以在实际运行中被触发,同时安卓应用中广泛使用的Java反射、动态加载代码、加密、混淆等技术也给静态分析技术带来了挑战。与静态分析技术相比,动态分析技术可以保证检测出的行为在实际中可被真实触发,也可以解决Java反射、加密、混淆等技术给静态分析带来的困难,因此动态分析技术受到了更多的青睐。目前,动态分析技术面临的主要问题是如何尽可能多地触发待测应用的行为。安卓应用多以图形用户界面作为核心,通过用户与界面控件的交互行为启动不同的功能模块,不同类型的控件可以接收 ...
【技术保护点】
1.一种控件遍历方法,其特征在于,包括:对应用运行时当前界面上的控件进行遍历处理,其中,所述遍历处理包括:遍历所述当前界面上的控件,并获取遍历过程中当前控件的控件类型;将可被所述当前控件接收的与所述控件类型对应的所有交互事件发送给所述当前控件进行处理;在所述当前界面中的控件均已完成分析处理的情况下,将除所述当前界面之外的其他界面作为待遍历的当前界面,并对所述待遍历的当前界面上的控件进行所述遍历处理。
【技术特征摘要】
1.一种控件遍历方法,其特征在于,包括:对应用运行时当前界面上的控件进行遍历处理,其中,所述遍历处理包括:遍历所述当前界面上的控件,并获取遍历过程中当前控件的控件类型;将可被所述当前控件接收的与所述控件类型对应的所有交互事件发送给所述当前控件进行处理;在所述当前界面中的控件均已完成分析处理的情况下,将除所述当前界面之外的其他界面作为待遍历的当前界面,并对所述待遍历的当前界面上的控件进行所述遍历处理。2.根据权利要求1所述的方法,其特征在于,在将可被所述当前控件接收的与所述控件类型对应的所有交互事件发送给所述当前控件进行处理之后,所述方法还包括:保存所述当前控件的分析状态;其中,所述当前控件的分析状态包括:已分析完成的交互事件。3.根据权利要求2所述的方法,其特征在于,在将可被所述当前控件接收的与所述控件类型对应的所有交互事件发送给所述当前控件进行处理之后,所述方法还包括:在所述应用退出桌面或跳转到其他应用程序或跳转到所述其他界面时,保存所述当前界面的分析状态,其中,所述当前界面的分析状态包括:所述当前界面上的未完成分析处理的控件。4.根据权利要求3所述的方法,其特征在于,保存所述当前控件的分析状态包括:将所述当前控件的分析状态保存在与所述当前控件对应的控件状态列表中;保存所述当前界面的分析状态包括:将所述当前界面的分析状态保存在与所述当前界面对应的控件列表中。5.根据权利要求4所述的方法,其特征在于,在保存所述当前界面的分析状态之后,所述方法还包括:在所述当前界面被再次打开的情况下,获取所述控件列表,得到所述当前界面上的未完成分析处理的控件;获取所述未完成分析处理的控件的控件状态列表;将所述未完成分析处理的控件的指定交互事件发送给所述未完成分析处理的控件进行处理;其中,所述指定交互事件未包含在所述未完成分析处理的控件的控件状态列表中;在所述指定交互事件都已完成的情况下,将所述未完成分析处理的控件从所述控件列表中删除。6.根据权利要求5所述的方法,其特征在于,在获取所述控件列表之后,所述方法还包括:判断所述控件列表是否为空;在判断结果为空的情况下,将所述当前界面返回;在判断结果为否的情况下,得到所述当前界面上的未完成分析处理的控件。7.根据权利要求1所述的方法,其特征在于,在对应用运行时当前界面上的控件进行遍历处理之前,所述方法还包括:将所述当前界面压入状态栈;在所述当前界面中的控件均已完成分析处理的情况下,将所述当前界面从所述状态栈中弹出;其中,所述状态栈保存有所述应用运行中已打开且未退出的界面。8.根据权利要求7所述的方法,其特征在于,在将所述当前界面压入状态栈之后,所述方法还包括:保存所述当前界面的启动参数,其中,所述启动参数用于在所述应用软件非正常跳出时启动所述状态栈中的栈顶元素对应的界面;其中,所述应用软件非正常跳出为不是由在所述应用软件运行过程中展示的各个界面的控件的各类交互事件所导致的所述应用软件的跳出。9.根据权利要求1所述的方法,其特征在于,在获取遍历过程中当前控件的控件类型之后,所述方法还包括:根据所述控件类型生成所...
【专利技术属性】
技术研发人员:王静,路晔绵,王继刚,孙默,苏璞睿,应凌云,
申请(专利权)人:中兴通讯股份有限公司,北京工业大学,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。