[发明专利]代码特征集构建方法、检测方法、装置、设备及程序产品在审
申请号: | 202110548963.5 | 申请日: | 2021-05-19 |
公开(公告)号: | CN115373693A | 公开(公告)日: | 2022-11-22 |
发明(设计)人: | 江为强 | 申请(专利权)人: | 中国移动通信集团有限公司 |
主分类号: | G06F8/53 | 分类号: | G06F8/53;G06F8/41;G06K9/62 |
代理公司: | 深圳市世纪恒程知识产权代理事务所 44287 | 代理人: | 高川 |
地址: | 100032 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 代码 征集 构建 方法 检测 装置 设备 程序 产品 | ||
1.一种代码特征集构建方法,其特征在于,所述方法包括以下步骤:
对可执行文件进行反汇编处理,以获得所述可执行文件中目标函数的基本块数据与控制流图;
对所述基本块数据进行特征提取,以获得所述目标函数的文本信息特征;
根据所述控制流图,生成所述目标函数对应的有向无环图结构邻接矩阵;
根据所述文本信息特征与所述邻接矩阵,构建所述目标函数的代码特征集。
2.根据权利要求1所述的代码特征集构建方法,其特征在于,所述根据所述控制流图,生成所述目标函数对应的有向无环图结构邻接矩阵的步骤,包括:
遍历所述控制流图,以提取出所述控制流图中所有非回路访问路径;
基于所有所述非回路访问路径,生成所述邻接矩阵。
3.根据权利要求2所述的代码特征集构建方法,其特征在于,所述遍历所述控制流图,以提取出所述控制流图中所有非回路访问路径的步骤,包括:
将所述控制流图中的根节点作为当前访问节点;其中,非回路访问路径的开始节点为所述根节点;
根据所述控制流图中的访问流向信息,从所述控制流图的未访问节点中提取出所述当前访问节点的后继节点;
基于所述后继节点更新所述当前提取节点,以获得更新后的当前提取节点;
根据所述控制流图中的访问流向信息,判断更新后的当前提取节点是否与所述根节点形成闭环;
若所述更新后的当前提取节点不与所述根节点形成闭环,则将所述更新后的当前提取节点记录至非回路访问路径中,根据所述控制流图中的访问流向信息,从所述访问节点库的未访问节点中提取出所述更新后的当前提取节点的后继节点,并返回至基于所述后继节点更新所述当前提取节点,以获得更新后的当前提取节点的步骤,循环至所述更新后的当前提取节点无后继节点;
若所述更新后的当前提取节点与所述根节点形成闭环,则将该回路访问路径上的所有后继节点标记为已访问,并返回根据所述控制流图中的访问流向信息,从所述访问节点库的未访问节点中提取出所述当前提取节点的后继节点的步骤;
基于所述非回路访问路径中的已记录节点,获得一条非回路访问路径;
跳转至控制流图中与所述顶点最近的一个未访问分支节点处,将所述未访问分支节点作为所述更新后的当前提取节点,并返回执行根据所述控制流图中的访问流向信息,判断更新后的当前提取节点是否与所述根节点形成闭环的步骤,循环至所述控制流图中的所有节点均被访问。
4.根据权利要求1所述的代码特征集构建方法,其特征在于,所述文本信息特征包括以下特征的至少一者:
同一操作指令在基本块中出现的次数;
操作指令在基本块中的执行顺序;
操作指令及其操作数在基本块中的执行顺序;
基本块中引用的字符串、变量、库函数;
相似函数调用行为的次数;以及
跳转已匹配的基本块和被已匹配的基本块跳转的次数。
5.一种代码相似度检测方法,其特征在于,包括以下步骤:
获取对比函数代码样本的第一代码特征集与待检测函数代码的可执行文件;其中,所述第一代码特征集包括所述对比函数代码样本的第一文本信息特征和第一邻接矩阵;
提取出所述可执行文件的第二代码特征集;其中,所述第二代码特征集包括所述待检测函数代码的第二文本信息特征和第二邻接矩阵;
基于所述第一文本信息特征与所述第二文本信息特征、以及所述第一邻接矩阵与所述第二邻接矩阵,获得所述待检测函数代码与所述对比函数代码样本的第一相似度值;
若所述第一相似度值大于第一预设阈值,则所述待检测函数代码与所述对比函数代码样本相似。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国移动通信集团有限公司,未经中国移动通信集团有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110548963.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种汽车线控电子液压制动系统
- 下一篇:直流供电系统及通信系统