[发明专利]软件相似性度量方法及装置有效
申请号: | 201911189881.5 | 申请日: | 2019-11-28 |
公开(公告)号: | CN110990058B | 公开(公告)日: | 2020-08-21 |
发明(设计)人: | 庞建民;周鑫;郑建云;单征;李明亮;岳峰;刘福东;李男;刘晓楠 | 申请(专利权)人: | 中国人民解放军战略支援部队信息工程大学 |
主分类号: | G06F8/77 | 分类号: | G06F8/77;G06F8/53 |
代理公司: | 郑州大通专利商标代理有限公司 41111 | 代理人: | 周艳巧 |
地址: | 450000 河*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 软件 相似性 度量 方法 装置 | ||
1.一种软件相似性度量方法,其特征在于,包含:
针对二进制程序,通过反汇编得到中间代码,并对中间代码进行规范化和标准化处理;
统计函数语义特征,通过粗粒度相似度计算筛选出前M名相似函数,并添加至候选函数集;
对候选函数集中函数,利用数据依赖和程序控制流进行后向切片,获取用于表示函数关键语义的约束推导式集;
通过比较约束推导式集,获取目标函数与比较函数最终相似度得分;依据相似度得分,选取前N名的函数作为专家验证分析内容,其中,N≤M;
统计函数语义特征中,首先提取函数控制流程图,并通过函数语义特征统计将数据基本块进行向量化,得到函数控制流程属性图;再利用图嵌入算法聚合函数控制流程属性图,得到固定维度的图向量;通过计算图向量距离实现粗粒度相似度计算。
2.根据权利要求1所述的软件相似性度量方法,其特征在于,反汇编二进制程序代码,获取中间语言LLVM IR;对中间语言LLVM IR分别进行规范化和标准化处理。
3.根据权利要求2所述的软件相似性度量方法,其特征在于,中间语言规范化处理中,针对LLVM IR的指针计算指令,根据数组或结构体的元素索引计算得到字节偏移,并合并内存加载指令,将其表示成基地址加字节偏移的形式;针对LLVM IR的存放指针指令,将指针偏移计算和指针类型转换指令转换成字节偏移,并合并内存加载指令,将其表示成基地址加字节偏移的形式;并利用LLVM IR自带的遍处理中间语言的其他规范化表示,该其他规范化表示至少包含死代码消除、表达式重组合、冗余指令合并、变量规范化归纳及跳转线程。
4.根据权利要求2或3所述的软件相似性度量方法,其特征在于,中间语言标准化处理中,将自定义子函数、局部变量、基本块标签及全局地址均分别依次按顺序编号命名。
5.根据权利要求1所述的软件相似性度量方法,其特征在于,约束推导式集表示为C→T,在满足约束式C的情况下,函数按切片路径执行到目的指令T。
6.根据权利要求5所述的软件相似性度量方法,其特征在于,后向切片过程中,选取返回指令和危险子函数调用指令作为函数的后向切片起始点T,将起始指令的操作数存进数据依赖集S中;如果新指令的左值已经在数据依赖集S里,则弹出数据依赖集S里的左值,将新指令的非常数类型操作数存进数据依赖集S;如果指令同时是约束类指令,则先查看约束集里是否有约束推导式对新指令的左值进行约束,如果有则弹出此约束推导式,并依赖此约束推导式求出新的约束推导式,将新约束推导式存进约束集C中;对于有多种约束的情况,则分不同情况进行遍历,最后得到函数所有的约束推导式集C→T。
7.根据权利要求1所述的软件相似性度量方法,其特征在于,通过计算字符串的编辑距离来比较约束推导式集并求得函数相似度得分。
8.根据权利要求1或7所述的软件相似性度量方法,其特征在于,比较约束推导式集中,首先,将约束推导式集C→T转成字符串TC;然后,对约束推导式tici按字符串顺序排序,ti∈T,ci∈C,并将排序后的约束推导式拼接,得TC=t0c0t1c1…tjcj;计算字符串编辑距离,得到函数相似度得分。
9.一种软件相似性度量装置,其特征在于,基于权利要求1所述的软件相似性度量方法实现,包含:预处理模块、分析筛选模块、约束推导模块和相似度量模块,其中,
预处理模块,用于针对二进制程序,通过反汇编得到中间代码,并对中间代码进行规范化和标准化处理;
分析筛选模块,用于统计函数语义特征,通过粗粒度相似度计算筛选出前M名相似函数,并添加至候选函数集;
约束推导模块,用于对候选函数集中函数,利用数据依赖和程序控制流进行后向切片,获取用于表示函数关键语义的约束推导式集;
相似度量模块,用于通过比较约束推导式集,获取目标函数与比较函数最终相似度得分;依据相似度得分,选取前N名的函数作为专家验证分析内容,其中,N≤M。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军战略支援部队信息工程大学,未经中国人民解放军战略支援部队信息工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911189881.5/1.html,转载请声明来源钻瓜专利网。