[发明专利]基于函数控制流的安卓应用漏洞检测方法和系统有效
| 申请号: | 201610136930.9 | 申请日: | 2016-03-10 |
| 公开(公告)号: | CN105677574B | 公开(公告)日: | 2019-03-05 |
| 发明(设计)人: | 孙知信;叶萌;宫婧;骆冰清 | 申请(专利权)人: | 南京邮电大学 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F21/56 |
| 代理公司: | 南京知识律师事务所 32207 | 代理人: | 汪旭东 |
| 地址: | 210003 江苏*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | 本发明公开了基于函数控制流的安卓应用漏洞检测方法和系统,该方法在现有的静态分析方法、动态分析方法和动静结合的方法上,通过一次分析代码的操作,得到函数控制流图,并且根据函数控制流图来制定精确的动态分析测试用例,并自动进行动态测试。从而解决现有的分析方法中,多次模拟数据流运行对系统造成的高负担缺陷。本发明说明了通过函数控制流图生成测试用例的方法,提出一个适合本发明方法的测试系统架构,从而克服现有分析技术分析速度慢的缺点,提高了测试的效率。 | ||
| 搜索关键词: | 基于 函数 控制 应用 漏洞 检测 方法 系统 | ||
【主权项】:
1.一种基于函数控制流的安卓应用漏洞检测方法,其特征在于,所述方法包括如下步骤:步骤1:通过dex2jar或apktool反编译软件,按照反编译软件的说明,将原始安卓apk文件进行反编译,得到编译后的程序源码class.jar和配置文件androidmanifest.xml;步骤2:对生成的源码和配置文件进行代码级静态分析,分析完毕输出得到函数控制流程图;步骤3:根据函数控制流程图所示的函数间的运行顺序,在每个函数顺序运行之间,生成以函数顺序运行步骤为单位的参数映射表P,也就是当函数M1运行完系统接下来运行函数M2时,对M1的输出数据out和M2的输入数据in做出一行匹配记录,并且记录下这组数据的数据类型和大小是否改变,包括函数间的调用参数类型和参数名的对应关系;步骤4:通过分析代码和API,根据代码内的用户数据定义和赋值情况,生成数据初始化列表D,该表明确了用户定义和系统默认的各种变量名称和对应于该名称的详细取值或者取值范围;步骤5:根据Android系统运行时的数据运行转化规则,综合P表D表生成以函数间调用为单位的测试数据表DataTest,明确了函数间数据的初始状态和转化状态,是数据在函数内传递转化的理想化结果;步骤6:根据测试数据表DataTest中每一步的数据,对源程序中对应的函数之间进行动态测试,对比动态测试后得到的数据结果和数据测试表中的预结果,如果不相同或者发生了数据类型的变化,则得到该步骤两端源代码函数间产生了漏洞。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京邮电大学,未经南京邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610136930.9/,转载请声明来源钻瓜专利网。





