CN112733151A - 嵌入式设备固件解析方法、装置、介质及电子设备 - Google Patents
嵌入式设备固件解析方法、装置、介质及电子设备 Download PDFInfo
- Publication number
- CN112733151A CN112733151A CN202110050102.4A CN202110050102A CN112733151A CN 112733151 A CN112733151 A CN 112733151A CN 202110050102 A CN202110050102 A CN 202110050102A CN 112733151 A CN112733151 A CN 112733151A
- Authority
- CN
- China
- Prior art keywords
- firmware
- information
- information entropy
- analysis
- analyzed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 174
- 238000000034 method Methods 0.000 claims abstract description 58
- 238000004590 computer program Methods 0.000 claims description 8
- 238000011068 loading method Methods 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims description 5
- 238000011049 filling Methods 0.000 claims description 5
- 239000002609 medium Substances 0.000 description 13
- 230000008569 process Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000000630 rising effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 206010063385 Intellectualisation Diseases 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 239000012120 mounting media Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例公开了一种嵌入式设备固件解析方法、装置、介质及电子设备。所述方法包括:根据分析步长和偏移量读取待解析固件的固件数据;分别计算各所述分析步长内读取的所述固件数据的信息熵,并将所述信息熵进行存储,得到信息熵结果序列;根据所述信息熵结果序列,确定所述待解析固件的解析结果是否存在有效信息。本申请针对待解析固件数据自身特征提出了嵌入式设备固件解析方法,提高了固件解析方法的适用性,有效的提高了程序逻辑的安全分析效率。
Description
技术领域
本申请实施例涉及计算机应用技术领域,尤其涉及一种嵌入式设备固件解析方法、装置、介质及电子设备。
背景技术
近年来,随着自动驾驶、物联网技术的快速发展,车辆的智能化、网联化不断推进,车载嵌入式智能设备的软件已十分复杂。智能汽车各个MCU(Microcontroller Unit,微控制单元)是与车辆动力系统、安全保护系统等部分直接相关的零部件。MCU中包括固件,MCU中的固件一旦出现安全问题,可直接导致车辆出现刹车失灵、突然加速等严重危及驾驶员和乘客人身安全的状况。因此,对MCU中的固件进行安全分析是十分必要的。
对嵌入式设备固件进行安全分析的关键在于对嵌入式设备中的固件进行解析,目前的固件解析方法,通常使用binwalk、FACT或基于“文件级别的块指纹(File Signature)识别方法”衍生的分析软件和方法,对嵌入式设备中的固件数据的结构进行解析。但是,基于“文件级别的块指纹(File Signature)识别方法”衍生的分析软件和方法,对固件的解析结果依赖于固件格式结构化特征库的完备程度,对于固件格式结构化特征库中具有非标准固件头的固件无法给出有效的解析结果。
发明内容
本申请实施例提供一种嵌入式设备固件解析方法、装置、介质及电子设备,可以实现对嵌入式设备中的固件进行解析,以提高程序逻辑的安全分析效率。
第一方面,本申请实施例提供了一种嵌入式设备固件解析方法,所述方法包括:
根据分析步长和偏移量读取待解析固件的固件数据;
分别计算各所述分析步长内读取的所述固件数据的信息熵,并将所述信息熵进行存储,得到信息熵结果序列;
根据所述信息熵结果序列,确定所述待解析固件的解析结果是否存在有效信息。
第二方面,本申请实施例提供了一种嵌入式设备固件解析装置,所述装置包括:
固件数据读取模块,用于根据分析步长和偏移量读取待解析固件的固件数据;
信息熵计算模块,用于分别计算各所述分析步长内读取的所述固件数据的信息熵,并将所述信息熵进行存储,得到信息熵结果序列;
有效信息确定模块,用于根据所述信息熵结果序列,确定所述待解析固件的解析结果是否存在有效信息。
第三方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例所述的嵌入式设备固件解析方法。
第四方面,本申请实施例提供了一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例所述的嵌入式设备固件解析方法。
本申请实施例所提供的技术方案,通过根据分析步长和偏移量读取待解析固件的固件数据;分别计算各所述分析步长内读取的所述固件数据的信息熵,并将所述信息熵进行存储,得到信息熵结果序列;根据所述信息熵结果序列,确定所述待解析固件的解析结果是否存在有效信息。本申请所提供的技术方案,以更贴合固件数据自身特征的方式读取待解析固件中固件数据,用表征固件数据本身数据特征的信息熵作为解析结果的特征评估的主要指标,实现对待解析固件的解析,本申请针对待解析固件数据自身特征提出了嵌入式设备固件解析方法,提高了固件解析方法的适用性,有效的提高了程序逻辑的安全分析效率。
附图说明
图1是本申请实施例一提供的一种嵌入式设备固件解析方法的流程图;
图2是本申请实施例二提供的另一种嵌入式设备固件解析方法的流程图;
图3是本申请实施例三提供的一种嵌入式设备固件解析装置的结构示意图;
图4是本申请实施例五提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
实施例一
图1是本申请实施例一提供的一种嵌入式设备固件解析方法的流程图,本实施例可适用于对嵌入式设备中的固件进行解析的情况。该方法可以由本申请实施例所提供的嵌入式设备固件解析装置执行,该装置可以由软件和/或硬件的方式来实现,并可集成于运行此系统的电子设备中。
如图1所示,所述嵌入式设备固件解析方法包括:
S110、根据分析步长和偏移量读取待解析固件的固件数据。
其中,固件是指写入嵌入式设备存储器中的程序。固件数据是指从待解析固件中提取的数据文件。具体的,可以通过在线读取(ISP)、仿真调试(ICE)、拆焊(Desoldering)主板上的外存储器(Flash)等手段,从承载固件的目标嵌入式设备中提取固件数据。
其中,分析步长是指一次性读取固件数据的长度。示例性的,在分析步长为32字长的情况下,在读取待解析固件的固件数据时,每次均读取长度为32字长的一段固件数据。在读取了长度为一个分析步长的固件数据以后,根据偏移量确定下次读取固件数据的起始位置,该位置即为偏移地址。分析步长和偏移量共同确定了需要读取的固件数据的区间,根据分析步长和偏移量读取全部固件数据。
为了从待解析固件中尽可能地获取更多的有效信息,需要综合考虑待解析固件的相关信息,在一个可选的实施例中,在所述根据分析步长和偏移量读取待解析固件的固件数据之前,所述方法还包括:获取所述待解析固件的产品配置信息,并加载所述待解析固件的固件数据;根据所述产品配置信息和所述固件数据确定初始分析步长和初始偏移量。
其中,产品配置信息是指用于描述待解析固件以及承载该待解析固件的产品的说明性信息,具体的,产品配置信息包括但不限于:产品型号、控制器类型、大端小端模式、固件上运行的系统和通信单元。产品配置信息越全面,采用根据其确定的初始分析步长和初始偏移量读取的固件数据中越可能包括有效信息。在读取固件数据之前,先将固件数据加载到固件安全分析平台中,可选的,根据不同固件数据大小,可使用并行加载模块式对固件数据加载效率进行优化。
根据产品配置信息和固件数据确定初始分析步长和初始偏移量,可选的,根据面向嵌入式设备硬件属性的寄存器字长(Bytes Width)作为分析步长这一关键变量的初始值,用改进Binwalk软件按固件数据的文件长度求取分析步长。其中,Binwalk可以自动完成指定文件的扫描,智能发掘潜藏在文件中所有可疑的文件类型及文件系统。Binwalk具备文本过滤、文件提取、字节比较和信息熵分析等功能,是固件分析的必备工具。
在一个可选的实施例中,所述待解析固件为MCU(Microcontroller Unit,微控制单元)中的固件。
MCU具有的功能单一、系统环境封闭、与硬件联系紧密直接、包含控制逻辑表达的固件难以被获取等特点,MCU的固件与消费级智能设备(如家用路由器、网络摄像头)的固件不同。MCU的固件生成过程中,多数不需要经过文件压缩处理,而是通过编译工具,直接编译源代码,后生成烧录在MCU中的固件。消费级智能设备的固件通常以压缩文件、特定文件系统镜像等形式存储于设备的外存储器中,MCU的固件数据形式更为丰富。鉴于MCU的上述特点,本申请实施例提出了的固件解析方法更加贴近固件数据自身特征,本实施例提供的固件解析方法不仅可以解析出MCU固件中的有效信息还可以用于解析MPU(MicroprocessorUnit,微处理器)固件中的有效信息。此外,将本发明实施例中提出的固件解析方法应用GPU(Graphics Processing Unit,图形处理器)进行并行固件数据处理,可以提高程序逻辑的安全分析效率。
S120、分别计算各所述分析步长内读取的所述固件数据的信息熵,并将所述信息熵进行存储,得到信息熵结果序列。
其中,信息熵用于表示信息量大小或者数据混杂程度的量用Ex表示。分别计算各所述分析步长内读取的所述固件数据的信息熵,具体的可以通过Binwalk的-E命令获取待解析固件的熵谱,再分别计算各分析步长内读取的所述固件数据的信息熵。值得注意的是,一个分析步长内读取与分析步长长度相同的一段固件数据,根据分析步长和偏移量可以将待解析固件中固件数据切分为多个固件数据段,将偏移量设置为不同的数值,会使得各个固件数据段之间可能会存在交叉。值得注意的是,偏移量的大小应该小于等于分析步长的长度。通过这样设置,可以保证待解析固件的固件数据可以全部被读取到。固件数据段的数量在这里不作限定,具体依据实际情况确定。每个固件数据段均对应一个信息熵,可选的,将信息熵按照偏移地址进行存储,得到信息熵结果序列[E1,E2,E3…Em]。具体的,可以按照偏移地址递增的顺序对将该偏移地址对应固件数据段的信息熵值进行存储得到信息熵结果序列。信息熵结果序列中信息熵的数量与待解析固件中固件数据的读取次数一致。
在一个可选的实施例中,在所述分别计算各所述分析步长内读取的所述固件数据的信息熵之前,所述方法还包括:若在所述分析步长内读取的所述固件数据的长度与所述分析步长不一致,则对所述固件数据进行填充。
由于固件文件长度和分析步长可能会存在不能完全匹配的情况,示例性的,在分析步长为32字长的情况下,经过多次读取后,最后一次只读取到16字长的固件数据段,由于需要计算分析步长内读取到固件数据的信息熵,因此需要使得每个分析步长内读取到的固件数据段长度一致。如果在所述分析步长内读取的所述固件数据的长度与所述分析步长不一致,则对所述固件数据进行填充。具体的,可以向固件数据中补充数字0,以使固件数据长度和分析步长一致,进而完成各分析步长内读取的固件数据信息熵的计算。
S130、根据所述信息熵结果序列,确定所述待解析固件的解析结果是否存在有效信息。
由于信息熵反应的是信息量的大小,通过分析整个信息熵结果序列中信息熵数值变化,判断固件数据不同区域信息熵值的分布是否存在明显差异,进而判断解析结果中是否存在有效信息。
由于对固件进行解析是在对固件漏洞挖掘或者对固件进行安全分析的必要步骤,得到的固件解析结果是作为后续对固件中程序逻辑进行分析的过程的输入。在本申请实施例中,判断待解析固件的解析结果中是否存在有效信息是以解析结果中包括的信息对后续程序逻辑分析过程是否有用来评判的。具体的,可以根据解析结果得到固件数据中固件标志性数据、固件数据加密与否和固件数据的加密方式等信息,则可视为解析结果中包括有效信息。
根据所述信息熵结果序列,确定所述待解析固件的解析结果是否存在有效信息。具体的,可以判断信息熵结果序列中是否存在明显上升沿。示例性的,相邻信息熵数值的差值与差异阈值进行比较,若该差值大于差异阈值即可确定信息熵结果序列中存在明显上升沿。其中,差异阈值是指由技术人员根据实际情况预先设置的,在这里不作限定。示例性的,差异阈值可以为0.05。
本申请实施例所提供的技术方案,通过根据分析步长和偏移量读取待解析固件的固件数据;分别计算各所述分析步长内读取的所述固件数据的信息熵,并将所述信息熵进行存储,得到信息熵结果序列;根据所述信息熵结果序列,确定所述待解析固件的解析结果是否存在有效信息。本申请所提供的技术方案,以更贴合固件数据自身特征的方式读取待解析固件中固件数据,用表征固件数据本身数据特征的信息熵作为解析结果的特征评估的主要指标,实现对待解析固件的解析,本申请针对待解析固件数据自身特征提出了嵌入式设备固件解析方法,提高了固件解析方法的适用性,有效的提高了程序逻辑的安全分析效率。
实施例二
图2是本申请实施例二提供的另一种嵌入式设备固件解析方法的流程图。本实施例在上述实施例的基础上进行进一步地优化。具体优化为,根据所述信息熵结果序列,确定所述待解析固件的解析结果是否存在有效信息,包括以下至少一项:若所述信息熵结果序列中存在落入第一预设数值范围的信息熵,则确定所述待解析固件存在敏感信息泄露风险的有效信息;若所述信息熵结果序列中存在连续第二设定数量的信息熵出现规律性波动,且所述规律性波动出现在所述待解析固件特定位置,则确定所述待解析固件包括软件符号或者调试信息的有效信息;若所述信息熵结果序列中存在不小于第三设定数值的信息熵,则确定所述待解析固件中不存在带有加密的数据部分的有效信息。
如图2所示,所述嵌入式设备固件解析方法包括:
S210、根据分析步长和偏移量读取待解析固件的固件数据。
S220、分别计算各所述分析步长内读取的所述固件数据的信息熵,并将所述信息熵进行存储,得到信息熵结果序列。
S230、若所述信息熵结果序列中存在落入第一预设数值范围的信息熵,则确定所述待解析固件存在敏感信息泄露风险的有效信息。
其中,第一预设数值范围是由相关技术人员根据实际情况设置的经验值,在这里不作限定,具体依据实际情况确定。示例性的,第一预设数值范围为(0.45,0.85],即表示信息熵结果序列[E1,E2,E3…Em]中存在任意偏移地址对应的信息熵值Ei∈(0.45,0.85],表明待解析固件的固件数据内含有大量明文数据,待解析固件存在敏感信息泄露的风险。
S240、若所述信息熵结果序列中存在连续第二设定数量的信息熵出现规律性波动,且所述规律性波动出现在所述待解析固件特定位置,则确定所述待解析固件包括软件符号或者调试信息的有效信息。
其中,第二设定数量是由相关技术人员根据实际情况设置的经验值,在这里不作限定,具体依据实际情况确定。规律性波动是指在偏移地址m到偏移地址n之间信息熵序列出现的变化趋势,又在信息熵结果序列中再次出现,则信息熵序列出现的变化趋势即为规律性波动。偏移地址m到偏移地址n之间对应的信息熵的数量即为第二设定数量。具体信息熵的变化趋势在这里不作限定,具体依据实际情况确定。可选的,通过固件安全分析平台应用统计分析确定信息熵结果序列的规律性波动。由于固件数据包括固件头部结构、设备标识信息、固件格式标识等信息,且上述信息在固件数据中并不是无序的,具备一定的排列顺序。因此,在发现固件数据的信息熵结果序列出现规律性波动的同时,对信息熵规律性波动出现的位置进行进一步的判断。若所述信息熵结果序列中存在连续第二设定数量的信息熵出现规律性波动,且所述规律性波动出现在所述待解析固件特定位置,则确定所述待解析固件包括软件符号或者调试信息的有效信息。
S250、若所述信息熵结果序列中存在不小于第三设定数值的信息熵,则确定所述待解析固件中不存在带有加密的数据部分的有效信息。
其中,第三设定数值是由相关技术人员根据实际情况设置的经验值,在这里不作限定,具体依据实际情况确定。具体的,第三设定数值可以设置较大数值。示例性的,将第三设定数值设置为0.98,若信息熵结果序列中存在不小于0.98的信息熵,即信息熵结果序列中存在数值大于等于0.98的信息熵,则确定待解析固件中不存在带有加密的数据部分的有效信息。
若通过分析待解析固件的信息熵结果序列,判断固件数据不同区域信息熵值的分布不存在明显差异,表明待解析固件的解析结果中不存在有效信息。导致解析结果中不存在有效信息的原因可能是分析步长与固件数据不相适应,分析步长过大或者过小,一次读取到的固件数据段长度过长或者过短,使得固件数据段对应的信息熵差异不明显。出现这种情况,则需要对分析步长进行调整,调整一次读取固件数据的长度,然后根据本申请实施例一所提供的嵌入式设备固件解析方法再次对待解析固件进行解析。
为了更准确的确定解析结果中是否存在有效信息,在一个可选的实施例中,在所述得到信息熵结果序列之后,所述方法还包括:根据所述信息熵结果序列生成信息熵统计直方图,并所述信息熵统计直方图展示给用户,以供所述用户根据所述信息熵统计直方图判断所述解析结果中是否存在有效信息。
其中,信息熵统计直方图是根据信息熵结果序列上生成的统计直方图,信息熵统计直方图的横坐标为偏移地址,纵坐标为该偏移地址对应的固件数据段的信息熵。
信息熵统计直方图的相对于信息熵结果序列更具有直观性,在由固件安全分析平台自动确定解析结果中是否存在有效信息以后,可以将信息熵统计直方图发送给用户,由用户根据信息熵统计直方图判断信息熵统计直方图是否存在明显的上升沿,进而判断解析结果中是否存在有效信息。
在一个可选的实施例中,在确定所述待解析固件的解析结果不存在有效信息之后,所述方法还包括:按照预设规则对所述分析步长进行调整以对所述初始分析步长进行更新。
其中,预设规则是指由相关技术人员根据实际情况预先设置的,在这里不作限定,具体依据实际情况确定。示例性的,预设规则可以是将分析步长的数值逐步调大的规则。可将分析步长初始值设置为较小的数值,在确定所述待解析固件的解析结果不存在有效信息之后,可以适当将分析步长的数值调大,得到调整以后的分析步长,用调整以后的分析步长更新初始分析步长,再根据更新后的分析步长读取固件数据。相应的,预设规则也可以是将分析步长的数值逐步调小的规则。可将分析步长初始值设置为较大的数值,在确定所述待解析固件的解析结果不存在有效信息之后,可以适当将分析步长的数值调小,得到调整以后的分析步长,用调整以后的分析步长更新初始分析步长,再根据更新后的分析步长读取固件数据。可选的,除了将分析步长单向地调大或者调小,还可以利用分析步长自动调整方法,根据分析步长、与该分析步长对应的信息熵结果列和解析结果的大量统计数据,实现分析步长的自动调整。
可选的,除了根据信息熵结果序列中各信息熵数值大小以及序列中信息熵的变化趋势对解析结果中是否存在有效信息进行判断,还可以通过固件数据中固件头标识和固件结构标识等固件数据结构特征标识,对固件数据中的有效信息进行提取。通过读取固件数据,可以提取疑似固件标记性数据,示例性的,提取到的数据可以是BDCfg\x00。综合固件数据结构特征标识以及对信息熵结果序列的分析结果还可以正确识别干扰数据,向用户提供建议程序起始位置以及固件内文件偏移。程序起始位置以及固件内文件偏移对软件功能逻辑分析具有重要意义,正确的程序起始位置以及固件内文件偏移信息,可以防止进行程序逻辑分析过程中,因相对地址错误导致大范围分析失效。
本申请实施例所提供的技术方案,通过根据分析步长和偏移量读取待解析固件的固件数据;分别计算各所述分析步长内读取的所述固件数据的信息熵,并将所述信息熵进行存储,得到信息熵结果序列;根据所述信息熵结果序列,确定所述待解析固件的解析结果是否存在有效信息。本申请所提供的技术方案,以更贴合固件数据自身特征的方式读取待解析固件中固件数据,用表征固件数据本身数据特征的信息熵作为解析结果的特征评估的主要指标,实现对待解析固件的解析,本申请针对待解析固件数据自身特征提出了嵌入式设备固件解析方法,提高了固件解析方法的适用性,有效的提高了程序逻辑的安全分析效率。
实施例三
图3是本申请实施例三提供的一种嵌入式设备固件解析装置,本实施例可适用于对嵌入式设备中的固件进行解析的情况。所述装置可由软件和/或硬件实现,并可集成于智能终端等电子设备中。
如图3所示,该装置可以包括:固件数据读取模块310、信息熵计算模块320和有效信息确定模块330。
固件数据读取模块310,用于根据分析步长和偏移量读取待解析固件的固件数据;
信息熵计算模块320,用于分别计算各所述分析步长内读取的所述固件数据的信息熵,并将所述信息熵进行存储,得到信息熵结果序列;
有效信息确定模块330,用于根据所述信息熵结果序列,确定所述待解析固件的解析结果是否存在有效信息。
本申请实施例所提供的技术方案,通过根据分析步长和偏移量读取待解析固件的固件数据;分别计算各所述分析步长内读取的所述固件数据的信息熵,并将所述信息熵进行存储,得到信息熵结果序列;根据所述信息熵结果序列,确定所述待解析固件的解析结果是否存在有效信息。本申请所提供的技术方案,以更贴合固件数据自身特征的方式读取待解析固件中固件数据,用表征固件数据本身数据特征的信息熵作为解析结果的特征评估的主要指标,实现对待解析固件的解析,本申请针对待解析固件数据自身特征提出了嵌入式设备固件解析方法,提高了固件解析方法的适用性,有效的提高了程序逻辑的安全分析效率。
可选的,所述装置还包括:固件数据填充模块,用于在所述分别计算各所述分析步长内读取的所述固件数据的信息熵之前,若在所述分析步长内读取的所述固件数据的长度与所述分析步长不一致,则对所述固件数据进行填充。
可选的,有效信息确定模块330,包括以下至少一个有效信息确定子模块:
第一有效信息确定子模块,用于若所述信息熵结果序列中存在落入第一预设数值范围的信息熵,则确定所述待解析固件存在敏感信息泄露风险的有效信息;
第二有效信息确定子模块,用于若所述信息熵结果序列中存在连续第二设定数量的信息熵出现规律性波动,且所述规律性波动出现在所述待解析固件特定位置,则确定所述待解析固件包括软件符号或者调试信息的有效信息;
第三有效信息确定子模块,用于若所述信息熵结果序列中存在不小于第三设定数值的信息熵,则确定所述待解析固件中不存在带有加密的数据部分的有效信息。
可选的,所述装置还包括:信息获取模块,用于在所述根据分析步长和偏移量读取待解析固件的固件数据之前,获取所述待解析固件的产品配置信息,并加载所述待解析固件的固件数据;初始分析步长和初始偏移量确定模块,用于根据所述产品配置信息和所述固件数据确定初始分析步长和初始偏移量。
可选的,所述装置还包括:分析步长更新模块,用于在确定所述待解析固件的解析结果不存在有效信息之后,按照预设规则对所述分析步长进行调整以对所述初始分析步长进行更新。
可选的,所述装置还包括:信息熵统计直方图生成模块,用于在所述得到信息熵结果序列之后,根据所述信息熵结果序列生成信息熵统计直方图,并所述信息熵统计直方图展示给用户,以供所述用户根据所述信息熵统计直方图判断所述解析结果中是否存在有效信息。
可选的,所述待解析固件为MCU中的固件。
本发明实施例所提供的一种嵌入式设备固件解析装置可执行本发明任意实施例所提供的一种嵌入式设备固件解析方法,具备执行一种嵌入式设备固件解析方法相应的功能模块和有益效果。
实施例四
本申请实施例四还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种嵌入式设备固件解析方法,该方法包括:
根据分析步长和偏移量读取待解析固件的固件数据;
分别计算各所述分析步长内读取的所述固件数据的信息熵,并将所述信息熵进行存储,得到信息熵结果序列;
根据所述信息熵结果序列,确定所述待解析固件的解析结果是否存在有效信息。
存储介质是指任何的各种类型的存储器电子设备或存储电子设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如DRAM、DDR RAM、SRAM、EDO RAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到计算机系统。第二计算机系统可以提供程序指令给计算机用于执行。术语“存储介质”可以包括可以驻留在不同未知中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。
当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的嵌入式设备固件解析操作,还可以执行本申请任意实施例所提供的嵌入式设备固件解析方法中的相关操作。
实施例五
本申请实施例五提供了一种电子设备,该电子设备中可集成本申请实施例提供的嵌入式设备固件解析装置,该电子设备可以是配置于系统内的,也可以是执行系统内的部分或者全部功能的设备。图4是本申请实施例五提供的一种电子设备的结构示意图。如图4所示,本实施例提供了一种电子设备400,其包括:一个或多个处理器420;存储装置410,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器420执行,使得所述一个或多个处理器420实现本申请实施例所提供的嵌入式设备固件解析方法,该方法包括:
根据分析步长和偏移量读取待解析固件的固件数据;
分别计算各所述分析步长内读取的所述固件数据的信息熵,并将所述信息熵进行存储,得到信息熵结果序列;
根据所述信息熵结果序列,确定所述待解析固件的解析结果是否存在有效信息。
当然,本领域技术人员可以理解,处理器420还实现本申请任意实施例所提供的嵌入式设备固件解析方法的技术方案。
图4显示的电子设备400仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图4所示,该电子设备400包括处理器420、存储装置410、输入装置430和输出装置440;电子设备中处理器420的数量可以是一个或多个,图4中以一个处理器420为例;电子设备中的处理器420、存储装置410、输入装置430和输出装置440可以通过总线或其他方式连接,图4中以通过总线450连接为例。
存储装置410作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块单元,如本申请实施例中的嵌入式设备固件解析方法对应的程序指令。
存储装置410可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储装置410可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置410可进一步包括相对于处理器420远程设置的存储器,这些远程存储器可以通过网络连接。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置430可用于接收输入的数字、字符信息或语音信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。输出装置440可包括显示屏、扬声器等电子设备。
本申请实施例提供的电子设备,可以在对嵌入式设备中的固件进行解析的情况下,提高程序逻辑的安全分析效率。
上述实施例中提供的嵌入式设备固件解析装置、介质及电子设备可执行本申请任意实施例所提供的嵌入式设备固件解析方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的嵌入式设备固件解析方法。
注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。
Claims (10)
1.一种嵌入式设备固件解析方法,其特征在于,所述方法包括:
根据分析步长和偏移量读取待解析固件的固件数据;
分别计算各所述分析步长内读取的所述固件数据的信息熵,并将所述信息熵进行存储,得到信息熵结果序列;
根据所述信息熵结果序列,确定所述待解析固件的解析结果是否存在有效信息。
2.根据权利要求1所述的方法,其特征在于,在所述分别计算各所述分析步长内读取的所述固件数据的信息熵之前,所述方法还包括:
若在所述分析步长内读取的所述固件数据的长度与所述分析步长不一致,则对所述固件数据进行填充。
3.根据权利要求1所述的方法,其特征在于,根据所述信息熵结果序列,确定所述待解析固件的解析结果是否存在有效信息,包括以下至少一项:
若所述信息熵结果序列中存在落入第一预设数值范围的信息熵,则确定所述待解析固件存在敏感信息泄露风险的有效信息;
若所述信息熵结果序列中存在连续第二设定数量的信息熵出现规律性波动,且所述规律性波动出现在所述待解析固件特定位置,则确定所述待解析固件包括软件符号或者调试信息的有效信息;
若所述信息熵结果序列中存在不小于第三设定数值的信息熵,则确定所述待解析固件中不存在带有加密的数据部分的有效信息。
4.根据权利要求1所述的方法,其特征在于,在所述根据分析步长和偏移量读取待解析固件的固件数据之前,所述方法还包括:
获取所述待解析固件的产品配置信息,并加载所述待解析固件的固件数据;
根据所述产品配置信息和所述固件数据确定初始分析步长和初始偏移量。
5.根据权利要求4所述的方法,其特征在于,在确定所述待解析固件的解析结果不存在有效信息之后,所述方法还包括:
按照预设规则对所述分析步长进行调整以对所述初始分析步长进行更新。
6.根据权利要求1所述的方法,其特征在于,在所述得到信息熵结果序列之后,所述方法还包括:
根据所述信息熵结果序列生成信息熵统计直方图,并所述信息熵统计直方图展示给用户,以供所述用户根据所述信息熵统计直方图判断所述解析结果中是否存在有效信息。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述待解析固件为MCU中的固件。
8.一种嵌入式设备固件解析装置,其特征在于,所述装置包括:
固件数据读取模块,用于根据分析步长和偏移量读取待解析固件的固件数据;
信息熵计算模块,用于分别计算各所述分析步长内读取的所述固件数据的信息熵,并将所述信息熵进行存储,得到信息熵结果序列;
有效信息确定模块,用于根据所述信息熵结果序列,确定所述待解析固件的解析结果是否存在有效信息。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一项所述的嵌入式设备固件解析方法。
10.一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-7中任一项所述的嵌入式设备固件解析方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110050102.4A CN112733151B (zh) | 2021-01-14 | 2021-01-14 | 嵌入式设备固件解析方法、装置、介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110050102.4A CN112733151B (zh) | 2021-01-14 | 2021-01-14 | 嵌入式设备固件解析方法、装置、介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112733151A true CN112733151A (zh) | 2021-04-30 |
CN112733151B CN112733151B (zh) | 2024-08-16 |
Family
ID=75593168
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110050102.4A Active CN112733151B (zh) | 2021-01-14 | 2021-01-14 | 嵌入式设备固件解析方法、装置、介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112733151B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113312220A (zh) * | 2021-05-26 | 2021-08-27 | 国家计算机网络与信息安全管理中心 | 一种固件隐患检测方法、装置及电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140298461A1 (en) * | 2013-03-29 | 2014-10-02 | Dirk Hohndel | Distributed traffic pattern analysis and entropy prediction for detecting malware in a network environment |
CN105488531A (zh) * | 2015-11-30 | 2016-04-13 | 中国科学院信息工程研究所 | 一种嵌入式设备固件解压成功的判断方法 |
EP3493092A1 (en) * | 2017-12-01 | 2019-06-05 | STMicroelectronics Inc | Secure firmware provisioning and device binding mechanism |
CN110765195A (zh) * | 2019-10-23 | 2020-02-07 | 北京锐安科技有限公司 | 一种数据解析方法、装置、存储介质及电子设备 |
US20200301670A1 (en) * | 2019-03-22 | 2020-09-24 | Bra-Ket Science, Inc. | Systems and Methods for Multi-Source True Random Number Generators, Including Multi-Source Entropy Extractor Based Quantum Photonic True Random Number Generators |
CN112686026A (zh) * | 2021-03-17 | 2021-04-20 | 平安科技(深圳)有限公司 | 基于信息熵的关键词提取方法、装置、设备及介质 |
-
2021
- 2021-01-14 CN CN202110050102.4A patent/CN112733151B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140298461A1 (en) * | 2013-03-29 | 2014-10-02 | Dirk Hohndel | Distributed traffic pattern analysis and entropy prediction for detecting malware in a network environment |
CN105027135A (zh) * | 2013-03-29 | 2015-11-04 | 英特尔公司 | 用于在网络环境中检测恶意软件的分布式流量模式分析和熵预测 |
CN105488531A (zh) * | 2015-11-30 | 2016-04-13 | 中国科学院信息工程研究所 | 一种嵌入式设备固件解压成功的判断方法 |
EP3493092A1 (en) * | 2017-12-01 | 2019-06-05 | STMicroelectronics Inc | Secure firmware provisioning and device binding mechanism |
US20200301670A1 (en) * | 2019-03-22 | 2020-09-24 | Bra-Ket Science, Inc. | Systems and Methods for Multi-Source True Random Number Generators, Including Multi-Source Entropy Extractor Based Quantum Photonic True Random Number Generators |
CN110765195A (zh) * | 2019-10-23 | 2020-02-07 | 北京锐安科技有限公司 | 一种数据解析方法、装置、存储介质及电子设备 |
CN112686026A (zh) * | 2021-03-17 | 2021-04-20 | 平安科技(深圳)有限公司 | 基于信息熵的关键词提取方法、装置、设备及介质 |
Non-Patent Citations (1)
Title |
---|
王猛涛;刘中金;常青;陈昱;石志强;孙利民;: "面向大规模嵌入式设备固件的自动化分析方法", 北京邮电大学学报, vol. 40, no. 1, pages 98 - 102 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113312220A (zh) * | 2021-05-26 | 2021-08-27 | 国家计算机网络与信息安全管理中心 | 一种固件隐患检测方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112733151B (zh) | 2024-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109299135A (zh) | 基于识别模型的异常查询识别方法、识别设备及介质 | |
US20120159629A1 (en) | Method and system for detecting malicious script | |
US20110271343A1 (en) | Apparatus, system and method for detecting malicious code | |
CN110717248A (zh) | 自动驾驶仿真场景的生成方法及系统、服务器及介质 | |
US20080127043A1 (en) | Automatic Extraction of Programming Rules | |
US20230087540A1 (en) | Communication permission list generation device, communication permission list generation method, and non-transitory computer readable-medium | |
CN111931179A (zh) | 基于深度学习的云端恶意程序检测系统及方法 | |
CN112491920A (zh) | 一种车载can总线的异常检测方法及装置 | |
CN112818569B (zh) | 一种属性驱动的安全协议符号化模型检测方法和系统 | |
CN111090593A (zh) | 确定崩溃归属的方法、装置、电子设备及存储介质 | |
CN112052156B (zh) | 一种模糊测试方法、装置和系统 | |
US20190042980A1 (en) | Method and device for generating a machine learning system and virtual sensor device | |
CN112733151B (zh) | 嵌入式设备固件解析方法、装置、介质及电子设备 | |
CN117725594A (zh) | 智能合约的多重复合检测方法、装置、设备及存储介质 | |
CN114422186B (zh) | 一种攻击检测方法、装置、电子设备及存储介质 | |
US11397662B2 (en) | Method for debugging computer program, device employing method, and storage medium | |
CN113820649B (zh) | 一种电能表固件的寿命可靠性测试方法和装置 | |
CN113342430A (zh) | 故障码的处理方法、装置、终端设备及可读存储介质 | |
WO2021104027A1 (zh) | 代码性能检测方法、装置、设备及存储介质 | |
CN118254807B (zh) | 驾驶行为优化方法、装置、车辆及存储介质 | |
WO2020010712A1 (zh) | 电子装置、用户骗保风险预警方法及存储介质 | |
CN115442642B (zh) | 视频推送方法、装置、服务器及存储介质 | |
CN118314424B (zh) | 基于边缘场景的车路协同自进化学习多模态校验方法 | |
CN111209796B (zh) | 驾驶行为检测方法、装置、电子设备及介质 | |
CN114021146B (zh) | 一种基于值集分析的非结构化差异补丁分析方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |