公共安全标准网
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210960065.5 (22)申请日 2022.08.11 (71)申请人 武汉大学 地址 430072 湖北省武汉市武昌区珞珈山 街道八一路2 99号 (72)发明人 王丽娜 高昊 张桐 陈崧强  余荣威 邓颖川  (74)专利代理 机构 武汉科皓知识产权代理事务 所(特殊普通 合伙) 42222 专利代理师 罗飞 (51)Int.Cl. G06F 21/16(2013.01) G06F 40/194(2020.01) G06F 40/30(2020.01) (54)发明名称 一种二进制函数代码的语义比对方法及装 置 (57)摘要 本发明公开了一种二进制函数代码的语义 比对方法及装置, 其中的方法首先对二进制文件 中的二进制函数代码进行反汇编, 并用二进制控 制流程图进行表示, 构建了二进制函数代码语义 比对模型FUSI ON, 通过该模型的语义感知模块可 以同时学习语句的语义信息, 结构感知模块可以 学习二进制控制流图的结构和节点的执行顺序 信息, 从而更好表征二进制代码各类特征, 通过 语义对比模块得到二进制函数的相似度, 从而可 以提高二进制函数比对的准确性。 并且, 该方法 具有较好的时间和空间复杂 度, 能够满足在海量 代码库中进行二进制代码文件快速溯源分析的 要求。 具有较高的准确率和召回率, 可 以基于海 量代码库的二进制代码文 件溯源应用场景。 权利要求书2页 说明书7页 附图1页 CN 115455382 A 2022.12.09 CN 115455382 A 1.一种二进制函数代码的语义比对方法, 其特 征在于, 包括: 获取包含二进制函数代码的二进制文件; 将二进制文件中的二进制函数代码进行反汇编, 得到反汇编代码, 采用二进制控制流 程图对反汇编代码进 行表示, 并提取二进制控制流程图中的数据流关系, 其中, 二进制控制 流程图的节点表示反汇编代码 中的基本块, 边表示基本块之间的调用指令, 基本块包括二 进制函数代码段; 构建二进制函数代码语义比对模型, 模型包括语义感知模块、 结构感知模块以及相似 度计算模块, 其中, 语义 感知模块用于采用BERT模型根据输入的指 令生成指 令嵌入, 结构感 知模块以采用有向图神经网络基于基本块的指 令嵌入得到整个二进制函数的全局嵌入, 相 似度计算模块采用全连接计算 不同二进制函数的全局嵌入之间的相似度; 利用构建的二进制函数代码语义比对 模型对二进制函数代码进行语义比对。 2.如权利要求1所述的二进制函数代码的语义比对方法, 其特征在于, 所述方法还包括 对二进制控制流 程图中的调用指令进行规范化处 理, 具体包括: 对于每一个二进制控制流程图进行调用指令的提取, 并保留调用指令相对于函数起始 地址的偏移量。 3.如权利要求1所述的二进制函数代码的语义比对方法, 其特征在于, 所述方法还包括 对二进制控制流程图中基本块中的操作数与操作数分离进 行标记, 并对每个操作数进 行规 范化处理。 4.如权利要求1所述的二进制函数代码的语义比对方法, 其特征在于, 语义感知模块基 于多层次的双向Tr ansformer编码器实现, 二进制代码段中的调用指令通过串联的方式输 入语义感知模块, 在指令嵌入的基础上加上位置嵌入和分段嵌入, 并使用位置嵌入和分段 嵌入的混合矢量作为双向Tr ansformer编码器的输入, 然后使用倒数第二层的隐藏状态的 平均池化得到调用指 令的高维向量表征, 即指 令的嵌入; 其中, 位置嵌入代表输入指 令序列 中的不同位置, 分段嵌入用以区分不同的指令 。 5.如权利要求1所述的二进制函数代码的语义比对方法, 其特征在于, 结构 感知模块利 用有向图神经网络GraphSAGE网络捕捉二进制控制流程图的结构、 顺序以及节 点信息, 并为 每一个二进制控制流 程图生成一个全局嵌入, 一个二进制流 程图对应一个二进制函数。 6.如权利要求5所述的二进制函数代码的语义比对方法, 其特征在于, GraphSAGE网络 的计算公式为: 代表节点v在第t轮节点更新时的高维向量表征, 为v节点的邻居节点的高纬维向 量表征, Nv表示与节点v相邻的节点集合, σ 表示GraphSAGE中的聚合函数, Wt表示第t轮可学 习的权重, ∥表示连接操作, 表示节点v在第t ‑1轮节点更新时的高维向量表征; α表示 非线性激活函数; 表示节点v的出度节点集合, 表示节点v的入度节点集合, p,q分别为 属于 和 中的临近节点, 表示节点p在第t轮节点更新时的高维向量表征, 表示 节点q在第t轮节点更新 时的高维向量表, Wo表示出度的权重矩阵, Wi表示入度的权重矩阵,权 利 要 求 书 1/2 页 2 CN 115455382 A 2i, o分别表示入度和出度。 7.一种二进制函数代码的语义比对 装置, 其特 征在于, 包括: 二进制函数代码获取模块, 用于获取包 含二进制函数代码的二进制文件; 反汇编模块, 用于将二进制文件中的二进制函数代码进行反汇编, 得到反汇编代码, 采 用二进制控制流程图对反汇编代码进行表示, 并提取二进制控制流程图中的数据流关系, 其中, 二进制控制流程图的节点表示反汇编代码 中的基本块, 边表示基本块之间的调用指 令, 基本块包括 二进制函数代码段; 模型构建模块, 用于构建二进制函数代码语义比对模型, 模型包括语义感知模块、 结构 感知模块以及相似度计算模块, 其中, 语义感知模块用于采用BERT模型根据输入的指令生 成指令嵌入, 结构感知模块以采用有向图神经网络基于基本块的指令嵌入得到整个二进制 函数的全局嵌入, 相似度计算模块采用全连接计算不同二进制函数的全局嵌入之 间的相似 度; 语义对比模块, 用于利用构建的二进制函数代码语义比对模型对二进制函数代码进行 语义比对。 8.一种计算机可读存储介质, 其上存储有计算机程序, 其特征在于, 该程序被执行时实 现如权利要求1至 6中任一项权利要求所述的方法。 9.一种计算机设备, 包括存储器、 处理器及存储在存储器上并可在处理器上运行的计 算机程序, 其特征在于, 所述处理器执行所述程序时实现如权利要求1至6中任一项权利要 求所述的方法。权 利 要 求 书 2/2 页 3 CN 115455382 A 3

PDF文档 专利 一种二进制函数代码的语义比对方法及装置

文档预览
中文文档 11 页 50 下载 1000 浏览 0 评论 0 收藏 3.0分
温馨提示:本文档共11页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 一种二进制函数代码的语义比对方法及装置 第 1 页 专利 一种二进制函数代码的语义比对方法及装置 第 2 页 专利 一种二进制函数代码的语义比对方法及装置 第 3 页
下载文档到电脑,方便使用
本文档由 SC 于 2024-03-03 12:14:13上传分享
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。