固件中二进制文件的解析方法、装置、设备和存储介质制造方法及图纸

技术编号:36213961 阅读:15 留言:0更新日期:2023-01-04 12:10
本申请提供一种固件中二进制文件的解析方法、装置、设备和存储介质,用于解决相关技术中IDA签名无法跨平台进行函数识别以及函数识别方法的误报率较高导致逆向分析效率低的问题。本申请中,分别对待识别函数的待识别字符串集合和对照函数对应的对照字符串集合进行提取,然后将任一待识别函数与任一对照函数组成一个函数组合,对比函数组合中两个函数之间的相似度,从而识别出待识别函数的函数名,最终,根据对照函数的函数名,以及确定出的待识别函数的函数名,对固件中二进制文件进行逆向分析。本申请实施例利用字符串集合进行函数识别,能够实现跨平台的函数识别,降低了函数识别算法的误报率,提高了对固件中二进制文件的逆向分析效率。逆向分析效率。逆向分析效率。

【技术实现步骤摘要】
固件中二进制文件的解析方法、装置、设备和存储介质


[0001]本申请涉及物联网
,特别涉及一种固件中二进制文件的解析方法、装置、设备和存储介质。

技术介绍

[0002]随着物联网厂商安全意识的增强,相关厂商为了防止自己的物联网设备的固件被逆向研究,通常会去除固件中二进制文件的符号表,符号表的丢失给安全研究人员逆向分析其固件造成了一定困难。但实际情况中,厂商设备型号较多,部分型号可能存在具备符号表的固件(比如TP

Link Vxworks系统存在完整的符号表),或者存在一些不再维护的历史固件,这些固件中部分二进制文件的符号表没有被去除,本申请便可以利用具备符号表的二进制文件,自动化识别其他型号设备最新固件中二进制文件的函数。
[0003]相关技术中,自动化函数识别技术以IDA签名为代表,利用IDA签名技术可使用具备符号表的二进制文件来制作出一个函数签名用于识别函数,但不同型号的物联网设备固件中的二进制文件通常具备不同架构(例如ARM/X86/MIPS等),IDA签名无法跨平台去识别函数。
[0004]现有跨平台的函数识别技术一般基于函数“中间”指令块,即把一个函数通过特定算法生成多个指令块,再用这些指令块生成区别于伪代码的“中间”指令块,这些指令块具备平台无关特性,可以用于跨平台的函数识别。但在物联网设备的固件中,即使是同一厂商的同一功能的不同二进制文件中,具有相同函数名称的函数实现过程差别也是非常大的,从“中间”指令块的相似度去进行函数识别误报率较高。

技术实现思路
<br/>[0005]本申请的目的是提供一种固件中二进制文件的解析方法、装置、设备和存储介质,用于解决相关技术中IDA签名无法跨平台进行函数识别以及相关跨平台函数识别方法的误报率较高导致对固件中二进制文件逆向分析的效率低的问题。
[0006]第一方面,本申请实施例提供了一种固件中二进制文件的解析方法,所述方法包括:
[0007]获取未标注函数名的固件中二进制文件,将所述固件中二进制文件中的符合预设条件的字符串进行提取处理,得到至少一个待识别函数的待识别字符串集合;
[0008]获取标注函数名的固件中二进制文件,将所述固件中二进制文件中的符合预设条件的字符串进行提取处理,得到不同对照函数分别对应的对照字符串集合;
[0009]将任一待识别函数与任一对照函数组成一个函数组合,根据所述函数组合对应的待识别字符串集合及对照字符串集合,确定函数组合中两个函数之间的相似度;
[0010]当函数组合中两个函数之间的相似度处于第一阈值范围内时,判定所述函数组合为具有相同函数名的强相似函数组合,得到所述待识别函数的函数名;
[0011]根据对照函数的函数名,确定的待识别函数的函数名,对所述固件中二进制文件
进行逆向分析。
[0012]在一种可能的实施方式中,还包括:
[0013]当函数组合中两个函数之间的相似度处于第二阈值范围内时,确定所述函数组合为弱相似函数组合;
[0014]对确定为弱相似函数组合中两个函数,分别确定调用的函数和被调用的函数;
[0015]根据所述调用的函数和被调用的函数的关系,确定弱相似函数组合中待识别函数的函数名;
[0016]所述第一阈值范围的下限为所述第二阈值范围的上限,所述调用的函数和所述被调用的函数数量相同。
[0017]在一种可能的实施方式中,根据所述调用的函数和被调用的函数的关系,确定弱相似函数组合中待识别函数的函数名包括:
[0018]将对照函数的任一调用函数和待识别函数的任一调用函数组成一个调用函数组合,得到调用函数集合;
[0019]将对照函数的任一被调用函数和待识别函数的任一被调用函数组成一个被调用函数组合,得到被调用函数集合;
[0020]若弱相似函数组合中待识别函数的调用函数和被调用函数为强相似函数关系,且调用函数集合和被调用函数集合组成的调用关系集合为相似函数集合的子集,则确定函数名一致;
[0021]其中,所述相似函数集合为所述强相似函数组合形成的集合。
[0022]在一种可能的实施方式中,所述将所述固件中二进制文件中的符合预设条件的字符串进行提取处理,得到至少一个待识别函数的待识别字符串集合,或者,将所述固件中二进制文件中的符合预设条件的字符串进行提取处理,得到不同对照函数分别对应的对照字符串集合,包括:
[0023]获取所述固件中二进制文件包含的所有字符串;
[0024]采用分隔符对所述字符串进行切割,得到对应不同函数的第一字符串集合;
[0025]删除所述第一字符串集合中长度小于预设长度的字符串,得到对应不同函数的第二字符串集合;
[0026]从所述第二字符串集合提取非有效的英文单词字符串,得到对应不同函数的至少一个待识别函数的待识别字符串集合或不同对照函数分别对应的对照字符串集合。
[0027]在一种可能的实施方式中,所述根据所述函数组合对应的待识别字符串集合及对照字符串集合,确定函数组合中两个函数之间的相似度,包括:
[0028]根据所述函数组合对应的待识别字符串集合及对照字符串集合,确定函数组合中两个函数的对应的待识别字符串集合与对照字符串集合的交集;
[0029]分别确定函数组合中两个函数的对应的待识别字符串集合与对照字符串集合中字符串的总长度以及交集中字符串的总长度;
[0030]确定交集中字符串的总长度分别与函数组合中两个函数的对应的待识别字符串集合与对照字符串集合中的比值,将较大的比值作为函数组合中两个函数之间的相似度。
[0031]在一种可能的实施方式中,还包括:
[0032]当两个函数之间的相似度处于第三阈值范围内时,确定两个函数为不相似函数,
并确定两个函数的函数名不一致;
[0033]所述第二阈值范围的下限为所述第三阈值范围的上限。
[0034]第二方面,本申请实施例还提供一种固件中二进制文件的解析装置,所述装置包括:
[0035]待识别字符串获取模块,被配置为获取未标注函数名的固件中二进制文件,将所述固件中二进制文件中的符合预设条件的字符串进行提取处理,得到至少一个待识别函数的待识别字符串集合;
[0036]对照字符串获取模块,被配置为获取标注函数名的固件中二进制文件,将所述固件中二进制文件中的符合预设条件的字符串进行提取处理,得到不同对照函数分别对应的对照字符串集合;
[0037]相似度确定模块,被配置为将任一待识别函数与任一对照函数组成一个函数组合,根据所述函数组合对应的待识别字符串集合及对照字符串集合,确定函数组合中两个函数之间的相似度;
[0038]强相似函数判定模块,被配置为当函数组合中两个函数之间的相似度处于第一阈值范围内时,判定所述函数组合为具有相同函数名的强相似函数组合,得到所述待识别函数的函数名;
[0039]固件中二进制文件解析模块,被配置为根据对照函数的函数名,确定的待识本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种固件中二进制文件的解析方法,其特征在于,所述方法包括:获取未标注函数名的固件中二进制文件,将所述固件中二进制文件中的符合预设条件的字符串进行提取处理,得到至少一个待识别函数的待识别字符串集合;获取标注函数名的固件中二进制文件,将所述固件中二进制文件中的符合预设条件的字符串进行提取处理,得到不同对照函数分别对应的对照字符串集合;将任一待识别函数与任一对照函数组成一个函数组合,根据所述函数组合对应的待识别字符串集合及对照字符串集合,确定函数组合中两个函数之间的相似度;当函数组合中两个函数之间的相似度处于第一阈值范围内时,判定所述函数组合为具有相同函数名的强相似函数组合,得到所述待识别函数的函数名;根据对照函数的函数名,确定的待识别函数的函数名,对所述固件中二进制文件进行逆向分析。2.根据权利要求1所述的方法,其特征在于,还包括:当函数组合中两个函数之间的相似度处于第二阈值范围内时,确定所述函数组合为弱相似函数组合;对确定为弱相似函数组合中两个函数,分别确定调用的函数和被调用的函数;根据所述调用的函数和被调用的函数的关系,确定弱相似函数组合中待识别函数的函数名;所述第一阈值范围的下限为所述第二阈值范围的上限,所述调用的函数和所述被调用的函数数量相同。3.根据权利要求2所述的方法,其特征在于,根据所述调用的函数和被调用的函数的关系,确定弱相似函数组合中待识别函数的函数名,包括:将对照函数的任一调用函数和待识别函数的任一调用函数组成一个调用函数组合,得到调用函数集合;将对照函数的任一被调用函数和待识别函数的任一被调用函数组成一个被调用函数组合,得到被调用函数集合;若弱相似函数组合中待识别函数的调用函数和被调用函数为强相似函数关系,且调用函数集合和被调用函数集合组成的调用关系集合为相似函数集合的子集,则确定函数名一致;其中,所述相似函数集合为所述强相似函数组合形成的集合。4.根据权利要求1所述的方法,其特征在于,所述将所述固件中二进制文件中的符合预设条件的字符串进行提取处理,得到至少一个待识别函数的待识别字符串集合,或者,将所述固件中二进制文件中的符合预设条件的字符串进行提取处理,得到不同对照函数分别对应的对照字符串集合,包括:获取所述固件中二进制文件包含的所有字符串;采用分隔符对所述字符串进行切割,得到对应不同函数的第一字符串集合;删除所述第一字符串集合中长度小于预设长度的字符串,得到对应不同函数的第二字符串集合;从所述第二字符串集合提取非有效的英文单词字符串,得到对应不同函数的至少一个待识别函数的待识别字符串集合或不同对照函数分别对应的对照字...

【专利技术属性】
技术研发人员:魏凡马良李东宏陈杰赵亮李泽高剑
申请(专利权)人:北京神州绿盟科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1