[发明专利]二进制可执行文件相似度分析方法、系统、电子设备及存储介质在审
申请号: | 202210493048.5 | 申请日: | 2022-05-07 |
公开(公告)号: | CN115017878A | 公开(公告)日: | 2022-09-06 |
发明(设计)人: | 陈灵锋;肖新光 | 申请(专利权)人: | 安天科技集团股份有限公司 |
主分类号: | G06F40/194 | 分类号: | G06F40/194;G06F16/13;G06K9/62 |
代理公司: | 北京科衡知识产权代理有限公司 11928 | 代理人: | 王淑静 |
地址: | 150028 黑龙江省哈尔滨市高新技术产*** | 国省代码: | 黑龙江;23 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 二进制 可执行文件 相似 分析 方法 系统 电子设备 存储 介质 | ||
本发明实施例公开一种二进制可执行文件相似度分析方法、系统、电子设备及存储介质,涉及二进制文件分析技术领域。所述方法包括:获取待分析二进制可执行文件的汇编代码;对所述汇编代码携带的汇编函数信息进行降维处理,得到对应的哈希值;根据所述哈希值确定所述待分析二进制可执行文件与样本文件的相似度。本发明通过对汇编代码的汇编函数信息降维处理,得到一个表征汇编代码特征的哈希值,基于该哈希值进行文件相似度比对分析,可以在一定程度上提高二进制可执行文件的分析效率;适用于恶意代码溯源分析、二进制可执行文件对应软件依赖库分析等场景中。
技术领域
本发明涉及二进制文件分析技术领域,尤其涉及一种二进制可执行文件相似度分析方法、系统、电子设备及存储介质。
背景技术
在计算机科学中,控制流图(CFG,Control Flow Graph)是利用数学中图的表示方式,标示计算机程序执行过程中所经过的所有路径的流向。在机器语言汇编场景中,一个函数的汇编代码可以使用控制流图表示,控制流图中可以有一个或者若干个基本块,每个基本块又可以包含一条或者若干条汇编代码。
然而,本申请的发明人在实现本发明创造的过程中发现:在二进制可执行文件分析时,若直接使用函数汇编代码全量的信息去进行存储和查询,效率比较低。
发明内容
有鉴于此,本发明实施例提供一种二进制可执行文件相似度分析方法、系统、电子设备及存储介质,可以在一定程度上提高二进制可执行文件的分析效率。
为达到上述发明目的,采用如下技术方案:
第一方面,本发明实施例提供一种二进制可执行文件相似度分析方法,所述方法包括步骤:获取待分析二进制可执行文件的汇编代码;对所述汇编代码携带的汇编函数信息进行降维处理,得到对应的哈希值;根据所述哈希值确定所述待分析二进制可执行文件与样本文件的相似度。
可选地,所述汇编函数信息包括:助记符和操作数,所述汇编代码包含多条指令;
所述对所述汇编代码携带的汇编函数信息进行降维处理,得到对应的哈希值包括:
以第一指令为起点,根据第一指令中携带的助记符及操作数,按照顺序执行迭代运算,将所述汇编代码转换成控制流图;所述控制流图包含:基本块及边特征;
基于深度优先遍历算法,依次计算出所述控制流图中的所有基本块及距离对应基本块预定节点长度内的所有基本块;
将每一个基本块及距离该基本块预定节点长度内的所有基本块构成一组控制流子图,得到多组控制流子图;每组控制流子图包含的控制流子图的数量与所述预定节点长度相同;
基于得到的多组所述控制流子图,计算所述控制流图的边特征对应的哈希值,以及计算所述控制流图包含的每一条指令中携带的助记符与操作数对应的哈希值。
可选地,所述基于得到的多组所述控制流子图,计算所述控制流图的边特征对应的哈希值包括:
基于每一个控制流子图的边特征进行拓扑排序;所述边特征包含:入边,出边及自环;
根据所述拓扑排序的结果,选取一个质数进行哈希计算,得到每一个控制流子图的身份识别码;所述身份识别码用于唯一标识控制流子图,以区分不同的控制流子图;
对每一个控制流子图,计算出所述边特征对应的哈希值;
以其中一个控制流子图为计算起点,对所有哈希值进行叠加更新,得到所述控制流图边特征的哈希值。
可选地,所述操作数为立即数;
基于得到的多组所述控制流子图,计算所述控制流图包含的每一条指令中携带的助记符与操作数对应的哈希值包括:
遍历所述控制流图的多个控制流子图中包含的指令,提取出每条指令中的立即数;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于安天科技集团股份有限公司,未经安天科技集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210493048.5/2.html,转载请声明来源钻瓜专利网。