Android应用界面数据丢失缺陷分析和检测方法技术

技术编号:36965981 阅读:66 留言:0更新日期:2023-03-22 19:26
本发明专利技术公开了一种Android应用界面数据丢失缺陷分析和检测方法,该方法包括:首先,对一个具体的待检测应用的APK文件预处理,提取重要的资源文件和Jimple文件,并对其进行分析得到该应用中需要保存与恢复的界面数据;接着,基于Jimple文件进行静态分析,确定识别的界面数据所对应的程序变量以及变量之间的关系,并构造为保存

【技术实现步骤摘要】
Android应用界面数据丢失缺陷分析和检测方法


[0001]本专利技术属于程序静态分析与软件缺陷检测领域,具体涉及一种Android应用界面数据丢失缺陷的分析和检测方法。

技术介绍

[0002]如现如今,智能手机已经成为现代人生活不可或缺的一部分。其中,Android操作系统占据了当前全球智能手机操作系统的最高份额,因此Android应用程序是当今互联网应用程序的一个重要类别,约占据移动Web和应用程序流量的40

50%。Google的开放市场提供了140多万个Android应用程序,每月增加的应用程序也达到数万个。但与此同时,随着安卓应用不断发展,开发者已经不只只是需要提供给用户更多的功能,更需要考虑应用的使用友好性,而数据丢失缺陷就是影响应用使用友好性的一个重要方面。
[0003]作为一种事件驱动的程序,安卓应用在运行过程中会经历一系列的生命周期变化,而一些使用场景下的生命周期变化将会导致应用在不以关闭为前提的条件下经历销毁,引起数据丢失缺陷。具体地,这一类型的生命周期变化将迫使运行中的应用实例遭到破坏然后重新本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种Android应用界面数据丢失缺陷的分析和检测方法,其特征在于,以Android应用的APK文件作为输入,以检测出的应用界面数据丢失缺陷的详细信息作为输出结果,具体步骤如下:步骤1,利用Apktool工具和Soot工具对APK文件进行预处理得到静态资源文件和代码中间层表示的Jimple文件,并结合资源文件分析Jimple文件得到需要保存与恢复的界面数据;步骤2,根据识别到需要保存与恢复的界面数据,分析Jimple文件确定其所对应的变量以及变量之间的关系,并构造为保存

恢复二分图;步骤3,利用FlowDroid工具的污点分析方法构造与保存

恢复二分图中变量的保存或者恢复操作相关的数据流,并生成对应的数据流摘要;步骤4,基于构造的保存

恢复二分图和数据流摘要,分析得到数据丢失缺陷的详细信息,并输出检测结果得到包含数据丢失缺陷详细信息的报告文件。2.根据权利要求1所述的Android应用界面数据丢失缺陷的自动化检测方法,其特征在于,步骤1中所述的利用Apktool工具和Soot工具对APK文件进行预处理得到静态资源文件和代码中间层表示的Jimple文件后,结合资源文件分析Jimple文件得到需要保存与恢复的界面数据,具体步骤如下:步骤1

1,使用Apktool工具对APK文件解码,得到其中的.xml资源文件,并分析资源文件得到应用包名、注册的活动类、静态绑定的用户交互回调;步骤1

2,使用Soot工具解析APK文件,将其中的.dex文件反编译得到应用的Jimple类型中间形式代码,并根据应用包名和类继承关系筛选分析对象;步骤1

3,遍历所有分析对象的Jimple文件,在不同的回调函数中搜索是否存在控件设置相关的API调用,识别出需要保存和恢复的界面数据。3.根据权利要求1所述的Android应用界面数据丢失缺陷的自动化测试方法,其特征在于,步骤2所述的根据识别到需要保存与恢复的界面数据,分析Jimple文件确定其所对应的变量以及变量之间的关系,并构造为保存

恢复二分图,具体步骤如下:步骤2

1,基于步骤1中识别到的控件设置API的调用,提取该调用语句的参数或者控制该调用语句执行的条件语句中的条件变量作为界面数据对应的变量;步骤2

2,基于提取界面数据的对应变量的回调,将识别到的变量分别放入保存

恢复二分图的两个集合;从界面初始化回调中识别到的变量放入恢复变量集合,从用户交互回调中识别到的变量放入保存变量集合;步骤2

3,根据变量用于界面显示的载体控件是否是同一个,确定保存变量集合和恢复变量集合之间的关系,并完成保存

恢复二分图的构建。4.根据权利要求1所述的Android应用界面数据丢失缺陷的自动化静态检测方法,其特征在于,步骤3中所述,利用FlowDroid工具的污点分析方法构造与保存
...

【专利技术属性】
技术研发人员:周宇豪宋巍
申请(专利权)人:南京理工大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1