[发明专利]基于张量分解的安卓APP重打包检测方法有效
申请号: | 201910428020.1 | 申请日: | 2019-05-22 |
公开(公告)号: | CN110245492B | 公开(公告)日: | 2021-04-20 |
发明(设计)人: | 刘烃;池剑磊;王子骏;郑庆华;范伟杰 | 申请(专利权)人: | 西安交通大学 |
主分类号: | G06F21/56 | 分类号: | G06F21/56;G06K9/62 |
代理公司: | 西安通大专利代理有限责任公司 61200 | 代理人: | 田洲 |
地址: | 710049 *** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开一种基于张量分解的安卓APP重打包检测方法,首先,根据安卓APP调用API的协同出现关系,构建出所有安卓APP的协同出现矩阵,并表达为三阶张量形式;然后,采用张量分解算法,将每个安卓APP的协同出现矩阵表示为一个一阶向量;最后,针对两个不同的安卓APP,通过计算其一阶向量的欧氏距离,表述两个安卓APP的相似性,通过排序算法判定两个安卓APP是否属于重打包关系。本发明一方面将复杂的程序相似性计算问题,转化为张量分解和一阶向量欧式距离计算;另一方面当新的安卓APP加入检测时,只需要在张量上增加维数,而不用重新构建张量,避免重复计算现有样本集。该方法在检测性能和时间开销上取得较好的平衡,可以支持大规模安卓APP的重打包检测分析。 | ||
搜索关键词: | 基于 张量 分解 app 打包 检测 方法 | ||
【主权项】:
1.基于张量分解的安卓APP重打包检测方法,其特征在于,包括以下步骤:步骤S1):构建Java的API调用类集合SA={si|1≤i≤I},其中si表示第i个API调用类,I表示Java的API调用类的总数,然后对所有待检测的安卓APP进行反编译,得到各个APP的全部Smali文件集合,并对得到的Smali文件进行第三方库过滤;步骤S2):利用API调用在Smali文件中出现的位置,得到各个Smali文件的协同出现矩阵,对每个APP的所有Smali文件的协同出现矩阵取并集操作,获得每个APP的协同出现矩阵SC={sk|1≤k≤K},其中sk表示第k个APP的协同出现矩阵,K表示待检测的APP总数;步骤S3):利用所有APP的协同出现矩阵组成三阶张量
步骤S4):采用张量分解算法将得到的三阶张量X降维为二阶矩阵,从而,将每个APP的协同出现矩阵表示成一阶向量;步骤S5):计算两个APP的向量表示之间的欧式距离Di,j,随后,利用排序算法连接所有APP,若两个APP被相连,则认为这两个APP是重打包关系。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安交通大学,未经西安交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201910428020.1/,转载请声明来源钻瓜专利网。