[发明专利]基于BERT的二进制代码相似性检测方法有效
| 申请号: | 202310237564.6 | 申请日: | 2023-03-14 |
| 公开(公告)号: | CN115951931B | 公开(公告)日: | 2023-05-16 |
| 发明(设计)人: | 胡鹏飞;赵斌;郝立鹏;潘润宇;钟方天;底晓强 | 申请(专利权)人: | 山东大学 |
| 主分类号: | G06F8/75 | 分类号: | G06F8/75;G06F40/194;G06F40/30;G06N3/0455;G06N3/047;G06N3/088;G06N3/09 |
| 代理公司: | 青岛华慧泽专利代理事务所(普通合伙) 37247 | 代理人: | 马千会 |
| 地址: | 266200 山*** | 国省代码: | 山东;37 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 bert 二进制 代码 相似性 检测 方法 | ||
1.基于BERT的二进制代码相似性检测方法,其特征在于,包括:
利用预训练数据集对BERT模型进行预训练,获得预训练后的通用模型;
利用新数据集对通用模型进行重训练,获得微调模型,所述微调模型用于预测两个二进制代码是否相似;
其中,所述预训练数据集为进行归一化处理的函数语料库,所述归一化处理是指针对函数中的每一个指令,采用静态分析的方式进行如下处理:
(1)将立即数按照跳转或调用目的地、调用的值本身、或者一个引用进行归一化处理;引用包括字符串、静态分配的常量或其它数据;
(2)将寄存器按大小或者类型进行归一化处理;
(3)指针表达式或当displacement为字符串引用时,其指令遵循原始格式:base+index*scale+displacement。
2.根据权利要求1所述的基于BERT的二进制代码相似性检测方法,其特征在于,所述新数据集包含若干带有标签的归一化函数对;该标签用于标识每一个归一化函数对中的两个函数是否相同。
3.根据权利要求2所述的基于BERT的二进制代码相似性检测方法,其特征在于,所述新数据集还包括补充信息,所述补充信息来源于函数原始的指令信息,包括字符串或数字常量。
4.根据权利要求3所述的基于BERT的二进制代码相似性检测方法,其特征在于,预训练的通用模型从输入的每个归一化函数对中获得两个隐藏向量和补充信息,计算两个函数的补充信息的余弦相似度;将两个隐藏向量与计算的余弦相似度传递到线性层,输出检测结果。
5.根据权利要求1所述的基于BERT的二进制代码相似性检测方法,其特征在于,归一化处理的步骤(2)中,具有特殊用途的指针保持不变,包括堆栈指针、指令指针或基指针。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东大学,未经山东大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310237564.6/1.html,转载请声明来源钻瓜专利网。





