一种固件更新方式的识别方法和装置制造方法及图纸

技术编号:27238359 阅读:20 留言:0更新日期:2021-02-04 12:08
本发明专利技术公开了一种固件更新方式的识别方法和装置,所述方法包括:对待识别的固件进行初步逆向处理:将所述固件中的每个函数的名称以及地址进行对应保存;遍历所有函数的名称,查找出名称具有通信关键字的函数;根据查找出的函数的地址,获取所述函数的代码;在确定出获取的该函数的代码中有固件更新相关代码后,根据所述固件更新相关代码识别出所述固件的更新方式。应用本发明专利技术不需要在实际设备上运行固件,不需要进行数据流捕获的过程,而以更简单的方法实现固件更新方式的识别,解析出固件更新使用的协议、策略等信息,以助于固件的安全性的分析。全性的分析。全性的分析。

【技术实现步骤摘要】
一种固件更新方式的识别方法和装置


[0001]本专利技术涉及固件
,特别是指一种固件更新方式的识别方法和装置。

技术介绍

[0002]固件(Firmware)就是写入EPROM(可擦写可编程只读存储器)或EEPROM(电可擦可编程只读存储器)中的程序。
[0003]固件是指设备内部保存的设备“驱动程序”,通过固件,操作系统才能按照标准的设备驱动实现特定机器的运行动作,比如光驱、刻录机等都有内部固件。
[0004]固件是担任着一个系统最基础最底层工作的软件。而在硬件设备中,固件就是硬件设备的灵魂,因为一些硬件设备除了固件以外没有其它软件组成,因此固件也就决定着硬件设备的功能及性能。
[0005]可嵌入式设备由于各种原因(功能升级、修复bugs等)需要对固件进行升级,即需要对固件进行更新。
[0006]目前对固件的更新方式的识别过程,需要在实际设备上运行固件,且需要相应的一套抓包设备,通过监听、抓包、流量分析进行固件空中升级的数据流捕获,从而进行流量包的拆解,分析得出固件的更新方式。然而,该过程中需要分析的数据庞大、复杂,有时候也会漏掉一些流量数据,分析出的协议也可能不完整。

技术实现思路

[0007]有鉴于此,本专利技术的目的在于提出一种固件更新方式的识别方法和装置,不需要在实际设备上运行固件,不需要进行数据流捕获的过程,而以更简单的方法实现固件更新方式的识别,解析出固件更新使用的协议、策略等信息,以助于固件的安全性的分析。
[0008]基于上述目的,本专利技术提供一种固件更新方式的识别方法,包括:
[0009]对待识别的固件进行初步逆向处理:将所述固件中的每个函数的名称以及地址进行对应保存;
[0010]遍历所有函数的名称,查找出名称具有通信关键字的函数;
[0011]根据查找出的函数的地址,获取所述函数的代码;
[0012]在确定出获取的该函数的代码中有固件更新相关代码后,根据所述固件更新相关代码识别出所述固件的更新方式。
[0013]进一步,所述对待识别的固件进行初步逆向处理,还包括:将所述固件中所有的可见字符串进行保存;以及
[0014]在所述获取所述函数的代码后,还包括:
[0015]若获取的所有函数的代码中没有固件更新相关代码,则遍历保存的可见字符串是否有通信关键字;
[0016]若查找到具有通信关键字的可见字符串,则确定出该可见字符串所在函数以及与该函数具有调用关系的函数;
[0017]若确定出的函数中有固件更新相关代码,则根据所述固件更新相关代码识别出所述固件的更新方式。
[0018]本专利技术还提供一种固件更新方式的识别装置,包括:
[0019]函数查找模块,用于对待识别的固件进行初步逆向处理:将所述固件中的每个函数的名称以及地址进行对应保存;遍历所有函数的名称,查找出名称具有通信关键字的函数;
[0020]固件更新代码查找模块,用于根据所述函数查找模块查找出的函数的地址,获取所述函数的代码;在确定出获取的该函数的代码中有固件更新相关代码后,根据所述固件更新相关代码识别出所述固件的更新方式。
[0021]本专利技术还提供一种电子设备,包括中央处理单元、信号处理和存储单元,以及存储在信号处理和存储单元上并可在中央处理单元上运行的计算机程序,其中,所述中央处理单元执行如上所述的固件更新方式的识别方法。
[0022]本专利技术的技术方案中,对待识别的固件进行初步逆向处理:将所述固件中的每个函数的名称以及地址进行对应保存;遍历所有函数的名称,查找出名称具有通信关键字的函数;根据查找出的函数的地址,获取所述函数的代码;在确定出获取的该函数的代码中有固件更新相关代码后,根据所述固件更新相关代码识别出所述固件的更新方式;从而不需要在实际设备上运行固件,也不需要进行数据流捕获的过程,可以更简单的方法实现固件更新方式的识别,解析出固件更新使用的协议、策略等信息,以助于固件的安全性的分析。
附图说明
[0023]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0024]图1为本专利技术实施例提供的一种固件更新方式的识别方法流程图;
[0025]图2为本专利技术实施例提供的一种固件中函数的名称以及地址的示意图;
[0026]图3为本专利技术实施例提供的一种固件中可见字符串的示意图;
[0027]图4为本专利技术实施例提供的一种固件更新方式的识别装置的内部结构框图;
[0028]图5为本专利技术实施例提供的一种电子设备硬件结构示意图。
具体实施方式
[0029]为使本专利技术的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本专利技术进一步详细说明。
[0030]需要说明的是,除非另外定义,本专利技术实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是
间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
[0031]本专利技术的专利技术人考虑到,现有固件更新分析技术方案具有操作繁琐,分析粒度粗等问题;本专利技术的技术方案中,采用的固件更新方式的识别方法中,对固件中的数据字段进行功能推断。因此,需要对固件更新方法进行初步的信息搜集,查明固件的类型,得到固件的架构以及运行时需要的环境等信息,之后进行逆向工程,得到关于此固件的所有相关函数。之后观察是否存在符号表,如果存在符号表,搜索update、OTA相关函数名字,如果存在,那么便可以直接得到结果;如果不存在符号表,那么就搜索可见字符串,提取可见字符串并进行语义分析,以识别出固件更新的方式。如此,不需要在实际设备上运行固件,也不需要进行数据流捕获的过程,从而可以更简单的方法实现固件更新方式的识别,解析出固件更新使用的协议、策略等信息,以助于固件的安全性的分析。
[0032]下面结合附图详细说明本专利技术实施例的技术方案。
[0033]本专利技术实施例提供的一种固件更新方式的识别方法,流程如图1所示,包括如下步骤:
[0034]步骤S101:对待识别的固件进行初步逆向处理:将所述固件中的每个函数的名称以及地址进行对应保存。
[0035]具体地,在对固件更新方法进行初步的信息搜集,查明固件的类型,得到固件的架构本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种固件更新方式的识别方法,其特征在于,包括:对待识别的固件进行初步逆向处理:将所述固件中的每个函数的名称以及地址进行对应保存;遍历所有函数的名称,查找出名称具有通信关键字的函数;根据查找出的函数的地址,获取所述函数的代码;在确定出获取的该函数的代码中有固件更新相关代码后,根据所述固件更新相关代码识别出所述固件的更新方式。2.根据权利要求1所述的方法,其特征在于,所述对待识别的固件进行初步逆向处理,还包括:将所述固件中所有的可见字符串进行保存;以及在所述获取所述函数的代码后,还包括:若获取的所有函数的代码中没有固件更新相关代码,则遍历保存的可见字符串是否有通信关键字;若查找到具有通信关键字的可见字符串,则确定出该可见字符串所在函数以及与该函数具有调用关系的函数;若确定出的函数中有固件更新相关代码,则根据所述固件更新相关代码识别出所述固件的更新方式。3.根据权利要求2所述的方法,其特征在于,所述确定出该可见字符串所在函数以及与该函数具有调用关系的函数,具体为:确定出该可见字符串所在函数;并确定出该函数调用的函数,以及调用该函数的函数。4.根据权利要求1-3任一所述的方法,其特征在于,所述通信关键字具体包括:蓝牙、套接字、更新、网络、流量。5.根据权利要求1-3任一所述的方法,其特征在于,所述固件更新相关代码具体为:通过网页、或链接获取文件并将所述文件替换掉所述固件中的一个、或多个函数的代码。6.一种固件更新方式的识别...

【专利技术属性】
技术研发人员:李明春舒梓峰
申请(专利权)人:北京软慧科技有限公司
类型:发明
国别省市:

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

1