【技术实现步骤摘要】
基于基本块上下文信息的二进制函数差分分析方法
本专利技术属于二进制程序分析
,特别涉及一种基于基本块上下文信息的二进制函数差分分析方法。
技术介绍
二进制函数差分分析技术定量的度量了两个给定二进制函数间(或两段二进制代码间)的差异,并产生细粒度的基本块级别的匹配。其广泛应用于各类二进制分析工作,例如漏洞检测,补丁分析等,是二进制程序分析领域内的一项关键且基础的技术。基本块匹配是二进制差分分析技术的核心,基本块匹配试图将两个函数中相同的基本块进行匹配,函数间未匹配的基本块被认为是差异所在。然而,若两个函数在不同位置存在多个相同基本块,就可能出现错位匹配了相同基本块的问题,这导致基本块匹配准确率降低,对函数差分分析结果的准确性带来影响。现有的静态差分分析方法多是依赖于代码语法信息,并未考虑到基本块间的相对位置关系以及函数控制流结构信息。此类方法由于没有考量基本块在函数中的对应位置,在基本块匹配过程中就很可能发生基本块错位匹配,导致差分分析结果不准确。
技术实现思路
为了解决上述由于基本块错位匹配 ...
【技术保护点】
1.一种基于基本块上下文信息的二进制函数差分分析方法,其特征在于,包括如下步骤:/nS1:通过反汇编工具对输入的两个待差分二进制函数进行反汇编处理,分别构建出两函数以汇编指令表示的控制流图;/nS2:对函数基本块信息进行提取及预处理,包括函数控制流图信息收集,指令标准化,基本块哈希值计算;/nS3:利用基本块哈希值完成两函数相同基本块的初步匹配,即将两函数中哈希值相同的基本块进行匹配;/nS4:针对基本块初步匹配结果,判断是否存在可能发生错位匹配的基本块,如果存在,则结合该基本块上下文信息再次进行匹配;如果不存在,则进入差分结果收集步骤;/nS5:对于可能发生错位匹配的基本 ...
【技术特征摘要】
1.一种基于基本块上下文信息的二进制函数差分分析方法,其特征在于,包括如下步骤:
S1:通过反汇编工具对输入的两个待差分二进制函数进行反汇编处理,分别构建出两函数以汇编指令表示的控制流图;
S2:对函数基本块信息进行提取及预处理,包括函数控制流图信息收集,指令标准化,基本块哈希值计算;
S3:利用基本块哈希值完成两函数相同基本块的初步匹配,即将两函数中哈希值相同的基本块进行匹配;
S4:针对基本块初步匹配结果,判断是否存在可能发生错位匹配的基本块,如果存在,则结合该基本块上下文信息再次进行匹配;如果不存在,则进入差分结果收集步骤;
S5:对于可能发生错位匹配的基本块,通过结合该基本块的上下文信息,计算两函数中与该基本块邻接的局部区域的相似度,再根据相似度得分,利用贪心策略完成基本块准确匹配,包括结合上下文信息的相似度计算和基本块贪心匹配;
S6:根据基本块匹配结果,过滤掉两函数中所有匹配成功的基本块对,收集两个函数中剩余未得到匹配的基本块,并将这些基本块作为函数差分分析结果,至此完成了函数差分分析,算法结束。
2.根据权利要求1所述基于基本块上下文信息的二进制函数差分分析方法,其特征在于,所述步骤S2中,对函数基本块信息进行提取及预处理,获取基本块邻接节点信息,完成基本块指令标准化及哈希值计算,步骤S2具体包括:
S201:控制流图信息提取:通过对函数控制流图的分析,收集如下信息:
1)基本块指令信息,一个基本块内的所有汇编指令;
2)基本块结构信息,一个基本块在控制流图中的所有邻接基本块;
S202:指令标准化:对基本块中的指令进行标准化处理,包括:
1)地址标准化:将具体的地址替换为“address”;
2)内存标准化:将内存寻址替换为“mem”;
3)寄存器标准化:将具体的寄存器替换为“reg”;
S203:基本块哈希值计算:将基本块中标准化后的指令当作字符串处理,并按照基本块内指令序列的顺序,将所有指令连接成为一个字符串,再对此字符串根据哈希算法计算哈希值。
3.根据权利要求1所述基于基本块上下文信息的二进制函数差分分析方法,其特征在于,所述步骤S3中,根据基本块哈希值计算结果,找出两个函数中哈希值相同的基本块,判定为相同基本块,并将相同哈希值的基本块放入同一个“篮子”,若一个“篮子”中仅有两个基本块且分别来源于两个函数,则这两个基本块互相匹配,若一个“篮子”中有多个分别来源于两个函数的基本块且来源于两个函数的基本块数量相等,则这些基本块互相匹配。
4.根据权利要求1所述基于基本块上下文信息的二进制函数差分分析方法,其特征在于,所述步骤S4中,判断是否存在可能发生错位匹配的基本块,其中,所述基本块错位匹配是指,在两函数中存在相同基本块且该基本块在两函数中的数量不一致,从而在基本块匹配过程中由于无法确定基本块对应位置而错位匹配了相同基本块,即未能正确地将两函数中相同位置的相同基本块进行匹配,基本块发生错位匹配需要满足两个条件:
1)两个函数中包含相同的基本块,即同一个“篮子”中,包含分别来自两个函数的基本块;
2)该相同基本块在两个函数中重复出现的次数不一致;
筛查所有“篮子”,找出满足上述条件的基本块。
5.根据权利要求1所述基于基本块上下文信息的二进制函数差分分析方法,其特征在于,所述步骤S5中,对可能发生错位匹配的基本块进行匹配,步骤S5具体包括:
S501:结合上下文信息的相似度计算:在一个可能发生基本块错位匹配的“篮子”中,对于分别来自于两个函数的相同基本块集合BB1和BB2,将BB1中每一个基本块与BB2中每一个基本块分别组合,利用结合上下文信息的相似度计算方式计算所有基本块对之间的相似度得分...
【专利技术属性】
技术研发人员:范铭,徐一飞,刘烃,
申请(专利权)人:西安交通大学,
类型:发明
国别省市:陕西;61
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。