一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于软件基因的抗混淆二进制代码克隆检测方法与流程

2021-10-24 08:23:00 来源:中国专利 TAG:网络安全 混淆 克隆 基因 检测方法

技术特征:
1.一种基于软件基因的抗混淆二进制代码克隆检测方法,其特征在于,包括:步骤1:使用obfuscator

llvm编译器对源程序进行编译,得到对应的汇编程序;步骤2:遍历所有的汇编程序文件,解析汇编程序文件的内容,提取汇编程序的程序控制流图,得到多个基本块,并保存到data数据结构中;步骤3:将data数据结构中的基本块分割成软件基因块,去除空的基本块,将细分后的软件基因块转存到gene数据结构中;步骤4:将gene数据结构中的软件基因块进行汇编指令规范化;步骤5:利用随机游走算法遍历程序控制流图中的节点,即基本块,获取软件基因序列作为训练集,所述软件基因序列由多个软件基因块组成,采用word2vec对软件基因序列中的汇编指令进行词嵌入,然后采用doc2vec对软件基因序列进行语义嵌入,提取汇编函数的语义信息,得到包含汇编函数语义信息的数学向量,对同一汇编函数的多个数学向量进行拼接,采用余弦相似度的方法计算拼接后数学向量的相似度,实现汇编函数间的相似度比较,完成二进制代码克隆检测。2.根据权利要求1所述的基于软件基因的抗混淆二进制代码克隆检测方法,其特征在于,所述步骤2中,遍历所有的汇编程序文件,解析汇编程序文件的内容包括:首先创建一个collections.ordereddict()数据对象data,其中保存所有汇编程序文件的内容,键名为每一个汇编程序文件的文件名,键值是一个新的collections.ordereddict()数据对象,在该新的collections.ordereddict()数据对象中,键名为当前汇编程序文件中的函数名,键值仍然为一个collections.ordereddict()数据对象,在该数据对象中,键名为当前函数中的标号,即每一个基本块的标识,键值是一个列表,列表中存放当前基本块中的汇编指令。3.根据权利要求1所述的基于软件基因的抗混淆二进制代码克隆检测方法,其特征在于,所述步骤3中,将data数据结构中的基本块分割成软件基因块包括:遍历基本块中的每一条汇编指令,发现当前指令是跳转指令,则当前软件基因块结束,如果该基本块中后面还有其他指令,则新创建一个软件基因块来保存接下来的汇编指令序列。4.根据权利要求1所述的基于软件基因的抗混淆二进制代码克隆检测方法,其特征在于,所述步骤4包括:寄存器%eax,%ebx,%edx均使用“reg”代替,立即数均使用“imm”代替,访问的内存地址均使用“address”代替,call指令后面的函数名使用“func”代替,变量名使用“var”代替,汇编程序中的标号使用“label”代替。5.根据权利要求1所述的基于软件基因的抗混淆二进制代码克隆检测方法,其特征在于,在所述步骤4之后,还包括:将提取到的数据保存到文件中,每一个汇编函数保存为两个文件,一个文件*.edge中保存该汇编函数中的所有基本块以及基本块之间的连接关系,另一个文件*.node中保存每一个基本块对应的软件基因块的汇编指令序列。6.根据权利要求1所述的基于软件基因的抗混淆二进制代码克隆检测方法,其特征在于,所述步骤5中,采用word2vec对软件基因序列中的汇编指令进行词嵌入包括:将汇编指令作为单词,将若干汇编指令组成的软件基因块作为句子,将若干软件基因
块组成的软件基因序列作为段落,采用word2vec模型的skip

gram体系架构,以一条完整的汇编指令为单位获取词向量。

技术总结
本发明公开一种基于软件基因的抗混淆二进制代码克隆检测方法,首先使用O


技术研发人员:单征 刘福东 张春燕 唐柯 黄一钊 桂海仁 乔猛 熊其冰 徐恋秋 宋智辉
受保护的技术使用者:中国人民解放军战略支援部队信息工程大学
技术研发日:2021.06.30
技术公布日:2021/10/23
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜