[发明专利]一种快速定位Android应用软件中恶意代码或漏洞的方法在审
申请号: | 201710197887.1 | 申请日: | 2017-03-29 |
公开(公告)号: | CN107122659A | 公开(公告)日: | 2017-09-01 |
发明(设计)人: | 陈恺;王奥辉;梁瑞刚 | 申请(专利权)人: | 中国科学院信息工程研究所 |
主分类号: | G06F21/56 | 分类号: | G06F21/56;G06F21/57 |
代理公司: | 北京君尚知识产权代理事务所(普通合伙)11200 | 代理人: | 余长江 |
地址: | 100093 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 快速 定位 android 应用软件 恶意代码 漏洞 方法 | ||
1.一种快速定位Android应用软件中恶意代码或漏洞的方法,其步骤包括:
1)对已知存在恶意代码或漏洞的Android应用软件进行特征抽取,将已知存在恶意代码或漏洞的Android应用软件中每个函数生成一个特征向量,利用得到的特征向量构建恶意代码和漏洞特征库;
2)对待检测的目标Android应用软件进行特征提取,将得到的特征向量在恶意代码和漏洞特征库中进行相似性比对,当根据设定阈值判定二者相似时,则认为该目标Android应用软件存在恶意代码或漏洞;
3)通过将步骤2)检测到存在恶意代码或漏洞的目标Android应用软件与恶意代码和漏洞特征库做进一步比对,定位目标Android应用软件中恶意代码或漏洞存在的具体位置。
2.如权利要求1所述的一种快速定位Android应用软件中恶意代码或漏洞的方法,其特征在于,步骤1)中,通过对已知存在恶意代码或漏洞的Android应用软件的Smali代码控制流进行抽取并提取每个函数中指令片段的特征。
3.如权利要求1所述的一种快速定位Android应用软件中恶意代码或漏洞的方法,其特征在于,步骤1)中,提取各已知存在恶意代码或漏洞的Android应用软件的安装包中存在恶意代码或漏洞的具体函数的方法,生成对应的控制流程图,然后计算每个控制流程图对应的特征向量。
4.如权利要求3所述的一种快速定位Android应用软件中恶意代码或漏洞的方法,其特征在于,所述控制流程图中的每一个节点用一个矢量<v1,v2,v3,v4,v5>及w,n来表示,v1是控制流程图中节点的序号,保证每一个节点只计算一次,v2是节点内函数的调用数量,v3是节点内API的调用数量,v4标识节点内是否存在文件读写操作,v5标识节点内是否存在网络请求,w是节点内指令的数量,n为节点个数。
5.如权利要求4所述的一种快速定位Android应用软件中恶意代码或漏洞的方法,其特征在于,矢量<v1,v2,v3,v4,v5>中分别按照以下规则一对一的映射到其控制流程图中:
1)v1的编码按照如下规则:第一个节点的起始值为1,如果一个节点有多个分支,优先给子节点更多的分支节点编号;如果两个分支有相同数量的子节点,优先给含有更多语句的分支节点编号;依次标注序号后直到控制流程图的最后一个节点,最后,手动添加一个终止节点到控制流程图的末尾;
2)v2的编码规则如下:计算节点内函数的调用数量,如节点内不存在函数调用,则v2的值置为0;
3)v3的编码规则如下:计算节点内API的调用数量,如节点内不存在API调用,则值为0;
4)v4的编码规则如下:判断节点内是否存在文件读写操作,如存在,则v4=1;如不存在,则v4=0;
5)v5的编码规则如下:判断节点内是否存在文件读写操作,如存在,则v5=1,如不存在,则v5=0。
6.如权利要求4或5所述的一种快速定位Android应用软件中恶意代码或漏洞的方法,其特征在于,用特征向量表示由每个控制流程图计算得到的特征向量,其中:
cv1的计算方式为:将图中所有节点v1的值经过权重运算后求和,最后求其平均值;
cv2的计算方式为:将图中所有节点v2的值经过权重运算后求和,最后求其平均值;
cv3的计算方式为:将图中所有节点v3的值经过权重运算后求和,最后求其平均值;
cv4的计算方式为:将图中所有节点v4的值经过权重运算后求和,最后求其平均值;
cv5的计算方式为:将图中所有节点v5的值经过权重运算后求和,最后求其平均值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院信息工程研究所,未经中国科学院信息工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710197887.1/1.html,转载请声明来源钻瓜专利网。