[发明专利]一种基于张量运算的二进制文件代码搜索检测方法及系统有效
| 申请号: | 201910828746.4 | 申请日: | 2019-09-03 |
| 公开(公告)号: | CN110688150B | 公开(公告)日: | 2020-12-08 |
| 发明(设计)人: | 付才;杨佳;韩兰胜;刘铭;刘小洋 | 申请(专利权)人: | 华中科技大学 |
| 主分类号: | G06F8/75 | 分类号: | G06F8/75;G06F16/33;G06F16/38 |
| 代理公司: | 华中科技大学专利中心 42201 | 代理人: | 李智;曹葆青 |
| 地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 张量 运算 二进制文件 代码 搜索 检测 方法 系统 | ||
1.一种基于张量运算的二进制文件代码搜索检测方法,其特征在于,该方法包括以下步骤:
S1.提取待检二进制文件和样本库中每个二进制文件汇编函数控制流图的代码块属性特征、控制流图的邻接矩阵,构成各二进制文件的图空间特征;
S2.基于图嵌入算法,将各二进制文件汇编函数的图空间特征编码为对应函数特征矩阵;
S3.基于张量奇异值分解算法,分解样本库所有二进制文件的函数特征矩阵构成的张量模型,得到该张量模型的压缩单位矩阵,根据该张量模型的压缩单位矩阵,得到压缩后的各二进制文件的函数特征矩阵;
S4.将待检二进制文件的压缩后的特征矩阵和样本库进行比对,得到代码搜索克隆检测结果;
步骤S2包括以下子步骤:
S21.根据函数的控制流图的代码块属性特征,获取函数编码特征中的包含代码块属性结构的损失函数;
S22.根据函数的控制流图的邻接矩阵,基于图嵌入算法中的有向边表示控制流图结构的二阶邻近特征,获取函数编码特征中的包含控制流图结构的损失函数;
S23.根据所述包含代码块属性结构的损失函数以及所述包含控制流图结构的损失函数,将各二进制文件汇编函数的图空间特征编码为对应函数特征矩阵。
2.如权利要求1所述的方法,其特征在于,步骤S1包括以下子步骤:
S11.提取二进制文件中函数汇编代码的函数控制流图;
S12.提取函数控制流图的每个代码块的特征属性值,同时提取控制流图的邻接矩阵,提取到的控制流图的邻接矩阵和代码块属性特征共同构成图空间特征。
3.如权利要求1所述的方法,其特征在于,代码块属性特征包括:6个统计特征和60个操作码特征;
所述6个统计特征分别为:使用字符串的数目、孩子节点的数目、算术指令的数目、函数调用指令的数目、总指令的数目及转移指令的数目;
所述60个汇编函数操作码特征分别为:依次提取30个代码块的操作码,每个操作码提取两个特征值,一个是类别值,一个是具体类别中的对应的编码值,超出30个的操作码删除,不足的补零。
4.如权利要求1所述的方法,其特征在于,所述函数编码特征中的包含代码块属性结构的损失函数计算公式如下:
其中,Γ1表示代码块编码的损失函数,S表示提取代码块的相似度矩阵,C是函数编码后的函数特征矩阵,和是矩阵S和C的第i个列向量,n表示节点的数目,H表示复数域的转置。
5.如权利要求1所述的方法,其特征在于,所述函数编码特征中的包含控制流图结构的损失函数计算公式如下:
其中,Γ2表示邻接矩阵W编码的损失函数,E表示控制流图的边集合,Wij表示节点i和节点j之间是否有跳转边,oi表示控制流图的节点i的出度,p(j|i)表示基于图嵌入算法中节点i到节点j的二阶邻近概率。
6.如权利要求1所述的方法,其特征在于,根据所述包含代码块属性结构的损失函数以及所述包含控制流图结构的损失函数,最终得到目标函数为:
其中,λ表示邻接矩阵编码的损失函数的权重,N(i)表示节点i的邻接节点,V表示所有节点的集合;S表示提取代码块的相似度矩阵,C是函数编码后的函数特征矩阵,和是矩阵S和C的第i个列向量,n表示节点的数目,H表示复数域的转置,E表示控制流图的边集合,Wij表示节点i和节点j之间是否有跳转边,oi表示控制流图的节点i的出度,p(j|i)表示基于图嵌入算法中节点i到节点j的二阶邻近概率;
根据上述目标函数,并结合ADMM优化学习模型,将带有节点信息的控制流图空间属性结构嵌入编码为数字向量特征。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910828746.4/1.html,转载请声明来源钻瓜专利网。





