[发明专利]二进制代码相似度检测方法、模型训练方法及装置在审
| 申请号: | 202211249732.5 | 申请日: | 2022-10-12 |
| 公开(公告)号: | CN115758164A | 公开(公告)日: | 2023-03-07 |
| 发明(设计)人: | 张超;王皓 | 申请(专利权)人: | 清华大学 |
| 主分类号: | G06F18/22 | 分类号: | G06F18/22;G06F18/214;G06F18/213;G06F9/34;G06F9/355;G06F40/284;G06N3/0895 |
| 代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 白冬梅 |
| 地址: | 100084 北京市海淀区双清路*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 二进制 代码 相似 检测 方法 模型 训练 装置 | ||
1.一种二进制代码相似度检测方法,其特征在于,包括:
将待检测的每个二进制代码分别输入语言模型,获得每个所述二进制代码的特征向量;基于每个所述二进制代码的特征向量,检测各所述二进制代码之间的相似度;所述语言模型是通过如下方式训练得到的:
通过分词获得二进制代码样本中的目标词,所有所述目标词包括指令及其操作数;
基于所有所述目标词对初始模型进行预训练,所述初始模型的输入表示包括每个所述目标词对应的词嵌入和位置嵌入,所述位置嵌入表征所述目标词的地址,当所述目标词为第一跳转指令的操作数时,所述词嵌入包含所述第一跳转指令的操作数所表征的所述第一跳转指令的目标指令的地址,所述初始模型的输出目标对应各所述指令和所述第一跳转指令的操作数,所述第一跳转指令为直接跳转指令或者条件跳转指令;
基于携带有相似度标签的二进制代码样本形成的数据集,对所述初始模型进行微调,得到所述语言模型。
2.根据权利要求1所述的二进制代码相似度检测方法,其特征在于,所述基于所有所述目标词对初始模型进行预训练,包括:
将所有所述目标词进行正则化;其中,若所述目标词为字符串,将所述目标词替换为第一预设符号;若所述目标词为常数值,将所述目标词替换为第二预设符号;若所述目标词被所述二进制代码外部的函数调用,确定所述目标词保持不变;若所述目标词被所述二进制代码内部的函数调用,将所述目标词替换为第三预设符号;若所述目标词为第一跳转指令的操作数,将所述目标词替换为所述目标词对应的符号,所述目标词对应的符号中包含所述第一跳转指令的所述目标指令的地址;
将正则化的所有所述目标词中的指令和操作数输入至初始模型中,对所述初始模型进行预训练。
3.根据权利要求1或2所述的二进制代码相似度检测方法,其特征在于,当所述目标词为第二跳转指令的操作数时,所述词嵌入包括通过间接跳转识别策略识别出的所述第二跳转指令跳转的所有可能目标的所述位置嵌入的平均值,所述第二跳转指令为间接跳转指令,所述初始模型的输出目标还对应所述第二跳转指令的操作数。
4.根据权利要求3所述的二进制代码相似度检测方法,其特征在于,所述将所有所述目标词进行正则化,还包括:
若所述目标词为第二跳转指令的操作数,将所述目标词替换为所述目标词对应的符号,所述目标词对应的符号中包含所述第二跳转指令跳转的所有可能目标的地址的平均值。
5.根据权利要求1所述的二进制代码相似度检测方法,其特征在于,所述二进制代码样本的获得方式包括:
对同一源文件在同一处理器架构中进行交叉编译,得到对应不同处理器架构的多个二进制代码样本。
6.根据权利要求1所述的二进制代码相似度检测方法,其特征在于,所述数据集包括携带有相似度标签的多组二进制代码样本,每组二进制代码样本包括第一二进制代码样本、第二二进制代码样本和第三二进制代码样本;所述第二二进制代码样本与所述第一二进制代码样本的源文件相同;所述第三二进制代码样本与所述第一二进制代码样本的源文件不同;
所述基于携带有相似度标签的二进制代码样本形成的数据集,对所述初始模型进行微调,得到所述语言模型,包括:
将所述数据集中的每组二进制代码样本输入所述初始模型,得到所述第一二进制代码样本的特征向量、所述第二二进制代码样本的特征向量和所述第三二进制代码样本的特征向量;
基于所述第一二进制代码样本的特征向量和所述第二二进制代码样本的特征向量的相似度,以及所述第一二进制代码样本的特征向量和所述第三二进制代码样本的特征向量的相似度,确定损失函数;
基于所述损失函数,对所述初始模型进行微调。
7.根据权利要求6所述的二进制代码相似度检测方法,其特征在于,所述第一二进制代码样本与所述第二二进制代码样本是基于相同的编译器的不同优化等级对相同的源文件进行编译得到的;
或者,所述第一二进制代码样本与所述第二二进制代码样本是基于不同的编译器对相同的源文件进行编译得到的;
或者,所述第一二进制代码样本与所述第二二进制代码样本是针对不同处理器架构基于相同的源文件编译得到的。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211249732.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种柔性橡胶生产用炼胶机
- 下一篇:一种检验科用细胞组织破碎装置





