[发明专利]一种基于NLP的二进制代码相似性比对方法有效

专利信息
申请号: 202110988539.2 申请日: 2021-08-26
公开(公告)号: CN113703773B 公开(公告)日: 2022-07-19
发明(设计)人: 贾张涛;付修锋;李雅斯;杨铁湃;邵飒;金玉川 申请(专利权)人: 北京计算机技术及应用研究所
主分类号: G06F8/41 分类号: G06F8/41;G06F40/216;G06F40/284
代理公司: 中国兵器工业集团公司专利中心 11011 代理人: 刘瑞东
地址: 100854*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 nlp 二进制 代码 相似性 方法
【说明书】:

发明涉及一种基于NLP的二进制代码相似性比对方法,属于代码比对领域。本发明利用代码中的跳转标识将汇编样本切分多个函数块,并利用NLP的方式将函数代码映射成函数特征向量,同时设计了以函数为基本分析单元的工程相似计算方法,从而完成代码溯源。该方法能满足二进制代码相似性对比中相似度检测的需求,且有着较高的准确率和召回率。

技术领域

本发明属于代码比对领域,具体涉及一种基于NLP的二进制代码相似性比对方法。

背景技术

开源复用是重要的软件开发模式,开源软件复用有助于缩减软件开发成本,提高了开发效率。但开源代码侵权与代码抄袭同样成为了当前软件行业的两个主问题,现有二进制代码相似性解决方案存在精确度和召回率低等问题。

发明内容

(一)要解决的技术问题

本发明要解决的技术问题是如何提供一种基于NLP的二进制代码相似性比对方法,以解决二进制代码相似性比对精确度不高的问题。

(二)技术方案

为了解决上述技术问题,本发明提出一种基于NLP的二进制代码相似性比对方法,该方法包括如下步骤:

第一步:二进制代码反汇编

将二进制代码文件Bin_0转换为汇编文件Asm_0;

第二步:汇编文件切分

Asm_0可视为二进制代码函数的集合,对Asm_0进行函数、代码块提取,函数是多个代码块的集合;

第三步:特征提取

依据拆分好的代码块序列,利用NLP算法,结合函数特征信息,对二进制代码的文件、函数块、代码块分别进行编码,获得函数的特征向量;

第四步:相似度计算

通过计算函数特征向量之间的距离来获取函数的相似情况,根据函数的相似情况判断二进制代码工程的相似度。

如权利要求1所述的基于NLP的二进制代码相似性比对方法,其特征在于,所述第一步具体包括:通过二进制代码反汇编工具,将二进制代码文件Bin_0转换为汇编文件Asm_0。

进一步地,所述第二步具体包括:

S21、根据函数开始标识和函数结束标识,对汇编文件进行切分,提取汇编文件中的函数信息;函数用P表示,一个汇编代码S由S={P_1,P_2,……,P_n}表示;

S22、每一个函数由多个代码基本块组成,并通过分支指令标记,代码块用L表示,每个函数表示为多个代码块的集合P={L_1,L_2,……,L_m};

S23、对汇编文件中的函数标识、偏移地址、分支指令、函数地址、跳转地址和立即数进行标准化处理。

进一步地,分支指令标记包括jnz和jmp。

进一步地,所述第三步具体包括如下步骤:

S31、函数块P表示为代码块的集合,P={L_1,L_2,……,L_m};

S32、对于代码块L_k进行分词处理:根据汇编语言的特征,对代码块的文本进行分词处理;

S33、将代码块L_k序列映射成特征向量:使用哈希函数将每个代码块生成一组长度为64位向量,得到代码块L_k对应的哈希向量Hash_k;

S34、分词词频统计,代码块L_k的各个分词进行词频统计,以每个分词出现的频度作为该分词权值,T_k={…,mov:X,…},X为mov出现的频度。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京计算机技术及应用研究所,未经北京计算机技术及应用研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202110988539.2/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top