[发明专利]一种快速计算软件相似度的方法无效
申请号: | 201310229122.3 | 申请日: | 2013-06-08 |
公开(公告)号: | CN103336890A | 公开(公告)日: | 2013-10-02 |
发明(设计)人: | 秦中元;杨中云 | 申请(专利权)人: | 东南大学 |
主分类号: | G06F19/00 | 分类号: | G06F19/00 |
代理公司: | 南京苏高专利商标事务所(普通合伙) 32204 | 代理人: | 李玉平 |
地址: | 210096 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 快速 计算 软件 相似 方法 | ||
技术领域
本发明涉及一种快速计算软件相似度的方法,属于计算机软件克隆或软件开发维护等技术领域。
背景技术
随着信息技术的飞速发展,出现了越来越多的计算机软件来满足人们的各类需求。但是,很多开发者通过反编译,修改资源文件或代码文件等手段对原软件进行拷贝或克隆,这严重侵害了软件作者的利益。在智能手机领域,越来越多的开发者为了节约开发成本,获取更大的利润,直接对原手机软件进行反编译,植入恶意代码或者插入广告,进行重打包并发布。这不仅侵害了作者的利益,植入恶意代码和插入的广告也对广大用户造成了不良的影响。因此,软件相似性检测显得尤为重要。对于待检测的两个应用软件,可以使用各种反编译工具进行反编译,提取软件特征指令并比较两个特征数据之间的相似性。然而由于提取的特征指令可能很长,如果直接计算长指令序列间的编辑距离或者最长公共子序列等将很难快速计算出相似性。
模糊哈希算法又叫基于内容分割的分片哈希算法(Context Triggered Piecewise Hashing,CTPH),主要用于数据的相似性比较。通常,模糊哈希算法由以下部分组成:一个弱哈希算法,以及一个触发值,用于分片;一个强哈希算法,用于计算每片的哈希;一个压缩映射算法,将每片的哈希值映射为一个更短的值;一个相似度计算方法,用于计算两个哈希指纹的相似程度。
发明内容
发明目的:针对现有技术中存在的问题与不足,本发明提供一种快速计算软件相似度的方法,基于模糊哈希算法,对于待计算的软件的特征数据,首先根据数据的长度进行预判决,然后根据数据的内容,利用一个素数对数据进行分割,并计算分片数据的哈希值,连接起来,生成数据的哈希指纹。最后进行指纹匹配判决并计算指纹相似度,从而得出软件相似结果。在设定的阈值范围里,通过进行数据预判决和指纹匹配判决以保证较高的效率。在指纹相似度计算方法上,优化的编辑距离的计算方法采用三个一维数组代替传统的二维数组,在实际应用中,大大地减少了计算所需的内存占用量,进而提高了相似度的计算速度。
技术方案:一种快速计算软件相似度的方法,包括如下步骤:
步骤1、对待比较的两个软件进行特征数据的提取,根据特征数据的长度进行预判决,若满足判决成功,进行下一步;否则,返回数据不匹配并结束;
步骤2、根据判决成功的两个软件的特征数据生成一个素数,作为模糊哈希过程中用于分片的触发值,选取素数是为了增加随机性和抵御可能的攻击,然后利用该素数计算特征数据的模糊哈希指纹;
步骤3、对特征数据的模糊哈希指纹进行判决,确定是否匹配;若匹配,进行下一步相似度计算;否则,返回指纹不匹配并结束;
步骤4、通过三个一维数组循环迭代的方式,优化编辑距离计算方法,节省了计算所需的内存使用,进而加快了计算的速度;再通过优化的编辑距离计算方法,对特征数据的模糊哈希指纹进行相似度计算,得出两个软件特征数据的相似结果。
有益效果:快速计算软件相似度的方法,对于软件提取的特征数据,首先根据数据长度进行预判决,然后计算软件特征数据的模糊哈希指纹并进行指纹匹配判决。如果判决成功,则计算软件数据指纹的相似性。在实际应用中,优化的编辑距离计算方法,大大地节省了计算所需的内存占用,从而提高了计算的速度。本发明数据预判决和指纹匹配判决,可有效快速地计算软件的相似性。
附图说明
图1为本发明实施例的流程图;
图2为本发明实施例的特征数据指纹生成流程图;
图3为本发明实施例的优化的编辑距离计算流程图。
具体实施方式
下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
快速计算软件相似度的方法中定义的特征数据是通过反汇编工具反汇编软件,并从软件里提取的操作码。
如图1所示,包括如下流程:
步骤1、对待比较的两个软件进行特征数据的提取,根据特征数据的长度进行预判决,若满足判决成功,进行下一步;否则,返回数据不匹配并结束;
步骤2、根据判决成功的两个软件的特征数据生成一个素数,作为模糊哈希过程中用于分片的触发值,选取素数是为了增加随机性和抵御可能的攻击,然后利用该素数计算特征数据的模糊哈希指纹;
步骤3、对特征数据的模糊哈希指纹进行判决,确定是否匹配;若匹配,进行下一步相似度计算;否则,返回指纹不匹配并结束;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东南大学,未经东南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310229122.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种船用电力系统综合数字式保护装置
- 下一篇:一种密集型母线槽外壳
- 同类专利
- 专利分类
G06F 电数字数据处理
G06F19-00 专门适用于特定应用的数字计算或数据处理的设备或方法
G06F19-10 .生物信息学,即计算分子生物学中的遗传或蛋白质相关的数据处理方法或系统
G06F19-12 ..用于系统生物学的建模或仿真,例如:概率模型或动态模型,遗传基因管理网络,蛋白质交互作用网络或新陈代谢作用网络
G06F19-14 ..用于发展或进化的,例如:进化的保存区域决定或进化树结构
G06F19-16 ..用于分子结构的,例如:结构排序,结构或功能关系,蛋白质折叠,结构域拓扑,用结构数据的药靶,涉及二维或三维结构的
G06F19-18 ..用于功能性基因组学或蛋白质组学的,例如:基因型–表型关联,不均衡连接,种群遗传学,结合位置鉴定,变异发生,基因型或染色体组的注释,蛋白质相互作用或蛋白质核酸的相互作用