CN112597503A - 一种基于中断向量的固件检测方法与装置 - Google Patents

一种基于中断向量的固件检测方法与装置 Download PDF

Info

Publication number
CN112597503A
CN112597503A CN202011519057.4A CN202011519057A CN112597503A CN 112597503 A CN112597503 A CN 112597503A CN 202011519057 A CN202011519057 A CN 202011519057A CN 112597503 A CN112597503 A CN 112597503A
Authority
CN
China
Prior art keywords
firmware
bin
optimized
bytes
interrupt vector
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.)
Pending
Application number
CN202011519057.4A
Other languages
English (en)
Inventor
赵克安
胡孟杰
黄萍
俞利明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Supcon Instrument Co ltd
Zhejiang Supcon Technology Co Ltd
Original Assignee
Zhejiang Supcon Instrument Co ltd
Zhejiang Supcon Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang Supcon Instrument Co ltd, Zhejiang Supcon Technology Co Ltd filed Critical Zhejiang Supcon Instrument Co ltd
Priority to CN202011519057.4A priority Critical patent/CN112597503A/zh
Publication of CN112597503A publication Critical patent/CN112597503A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于中断向量的固件检测方法与装置,S1:启动嵌入式系统,进而运行校验单元对优化bin固件进行校验,获取优化bin固件的总字节数量记为N;S2:将优化bin固件的N字节按每4字节组成一个无符号整形数据,将若干无符号整形数据进行累加得到累加和校验值记为V;S3:判断校验和数据V是否为0,若V等于0,则校验通过,若V不等于0,则判定ARM芯片存在异常。本发明在固件中增加校验单元,代替常规的boot程序进行固件校验,不改变固件代码的结构,不通过外部存储器件获取固件的长度,因此本发明有设计简单,稳定可靠,无需运行boot程序,快速实现固件的校验,保证检测可靠执行。

Description

一种基于中断向量的固件检测方法与装置
技术领域
本发明属于嵌入式系统技术领域,尤其涉及一种基于中断向量的固件检测方法与装置。
背景技术
在嵌入式系统中,保证可执行代码的正确性是十分重要的,它在系统可靠性中是不可或缺的。现有技术下,通常会先执行boot程序,通过boot程序获取固件的长度和校验码,经过计算后对固件进行校验,如果校验通过,则跳转到固件代码处执行;如果校验不通过,则不执行。
通常,boot程序是严重地依赖于硬件而实现的,特别是在嵌入式平台。boot是嵌入式系统在加电后执行的第一段代码,在它完成CPU和相关硬件的初始化之后,再将操作系统映像或固化的嵌入式应用程序装在到内存中然后跳转到操作系统所在的空间,启动操作系统运行。对于嵌入式系统,boot是基于特定硬件平台来实现的,因此,几乎不可能为所有的嵌入式系统建立一个通用的boot,不同的处理器架构都有不同的boot。boot不但依赖于CPU的体系结构,而且依赖于嵌入式系统板级设备的配置。对于2块不同的嵌入式板而言,即使它们使用同一种处理器,要想让运行在一块板子上的boot程序也能运行在另一块板子上,一般也都需要相应修改boot的源程序。因此,设计boot程序对一个嵌入式系统需要付出大量的研发成本、测试成本、生产成本(需要二次烧录)和维护成本,不利于产品的快速推出。
此外,在嵌入式系统中,由于部分CPU设计方面原因,无法支持boot程序,固件校验实现困难。
发明内容
本发明的技术目的是提供一种基于中断向量的固件检测方法与装置,以解决固件校验实现困难的技术问题。
为解决上述问题,本发明的技术方案为:
一种基于中断向量的固件检测方法,应用烧录于嵌入式系统的优化bin固件进行固件检测,优化bin固件包括用于实现固件自检的检测单元,包括如下步骤:
S1:启动嵌入式系统,进而运行校验单元对优化bin固件进行校验,获取优化bin固件的总字节数量记为N;
S2:将优化bin固件的N字节按每4字节组成一个无符号整形数据,将若干无符号整形数据进行累加得到累加和校验值记为V;
S3:判断累加和校验值V是否为0,若V等于0,则校验通过,若V不等于0,则判定ARM芯片存在异常。
进一步优选地,在步骤S1之前还包括构建优化bin固件,具体包括以下步骤:
A1:构建优化bin固件的校验单元和功能单元,校验单元用于实现固件检测,功能单元用于实现嵌入式系统正常运行;
A2:将检验单元和功能单元通过交叉编译得到bin固件;
A3:修改bin固件的中断向量,得到优化bin固件;
A4:将优化bin固件烧录至嵌入式系统中ARM芯片的ROM。
其中,在步骤A3中,修改bin固件的中断向量得到优化bin固件具体包括如下步骤:
B1:获取bin固件的总字节数量记为M,若M能被4整除,则令I=M,若M不能被4整除,则基于M通过计算公式得到I,其中,I为能被4整除的整数值;
计算公式为I=(M/4+1)×4,其中,/为相除取整符号;
B2:将bin固件基于补0方式将总字节数量M增加到I;
B3:获取ARM芯片中断向量地址m和n,将整数值I写入bin固件m字节处;
B4:将bin固件每4字节组成一个无符号整形数据,并将若干无符号整形数据累加得到数值O,将数值O按位取反并加上数值1获得数值P,将数值P写入bin固件n字节处,得到优化bin固件。
一种基于中断向量的固件检测的固件检测装置,包括:
数据获取模块,用于获取优化bin固件的总字节数量及数据;
数据处理模块,用于对获取的所述总字节数量进行数据处理,得到累加和校验值;
校验判断模块,用于判断累加和校验值是否为0,若为0,则校验通过,若不为0,则校验不通过。
一种计算机设备,包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行如权利要求1至3中任一项的基于中断向量的固件检测方法。
一种存储有计算机可读指令的存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至3中任一项的基于中断向量的固件检测方法。
本发明由于采用以上技术方案,使其与现有技术相比具有以下的优点和积极效果:
本发明在固件中增加校验单元,代替常规的使用boot程序进行固件校验的方法,将bin固件中未使用到的中断向量地址用于储存待校验信息,不改变固件代码的结构,不通过外部存储器件获取固件的长度,因此本发明有设计简单,稳定可靠,无需运行boot程序,不改变固件文件结构,快速实现固件的校验,保证了代码的可靠执行的技术效果。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。
图1为本发明一个实施例中基于中断向量的固件检测方法流程示意图;
图2为本发明一个实施例中构建优化bin固件流程示意图;
图3为本发明一个实施例中修改bin固件的中断向量得到优化bin固件流程示意图;
图4为本发明一个实施例中基于中断向量的固件检测的固件检测装置示意图。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
以下结合附图和具体实施例对本发明提出的一种基于中断向量的固件检测方法作进一步详细说明。根据下面说明和权利要求书,本发明的优点和特征将更清楚。
实施例1
参看图1,本实施例提供一种具体适用于STM32F10x系芯片的基于中断向量的固件检测方法。
首先参看图2,在步骤S1之前,构建含校验单元的bin固件,修改bin固件的中断向量,得到优化bin固件。具体地,构建校验单元和功能单元,校验单元用于实现对bin固件地校验,功能单元用于对STM32F10x系芯片的嵌入式系统提供软件支持,因此本实施例中bin固件包括校验单元和功能单元,将检验单元和功能单元通过交叉编译得到bin固件。
后续修改bin固件中保留的中断向量。参看图3,在本实施例中,获取bin固件的总字节数量记为M,若总字节数量M能被4整除,则令I=M,若M不能被4整除,则计算得到,即将M除以4取整数加上1后乘以4,I作为bin固件所需的总字节数,通过文件工具将bin固件基于补0方式将总字节数量M增加到I。
获取STM32F10x系芯片两个中断向量地址28至35,中断向量地址28至35是保留的中断向量,将总字节数I通过文件工具写入bin固件28-31字节处;将bin固件的总字节数I的每4字节组成一个无符号整形数据,并将若干无符号整形数据累加得到数值O,将数值O按位取反并加上数值1获得数值P,通过文件工具将数值P写入bin固件32至35字节处,最终得到优化bin固件。
接着,将得到的优化bin固件烧录至STM32F10x系芯片的ROM中。
参看图1,为STM32F10x系芯片上电启动,运行bin固件,此时,检测单元最先启动,对优化bin固件进行校验,开始固件检测流程。检测单元分别从STM32F10x系芯片ROM地址的第28-31字节处获取优化bin固件的总字节数量记为N。将优化bin固件的N字节按每4字节组成一个无符号整形数据,将若干无符号整形数据进行累加得到累加和校验值记为V。判断累加和校验值V是否为0,若V等于0,则校验通过,功能单元继续执行相应任务,若V不等于0,则校验未通过,可重新烧录进行判断,若仍未通过则判断该STM32F10x系芯片存在异常。
实施例2
参看图1,本实施例提供一种具体适用于LPC178x_7x系芯片基于中断向量的固件检测方法。
首先参看图2,在步骤S1之前,构建含校验单元的bin固件,修改bin固件的中断向量,得到优化bin固件。具体地,构建校验单元和功能单元,校验单元用于实现对bin固件地校验,功能单元用于对LPC178x_7x系芯片的嵌入式系统提供软件支持,因此本实施例中bin固件包括校验单元和功能单元,将检验单元和功能单元通过交叉编译得到bin固件。
后续修改bin固件中保留的中断向量。参看图3,在本实施例中,获取bin固件的总字节数量记为M,若总字节数量M能被4整除,则令I=M,若M不能被4整除,则计算得到,即将M除以4取整数加上1后乘以4,I作为bin固件所需的总字节数,通过文件工具将bin固件基于补0方式将总字节数量M增加到I。
获取LPC178x_7x系芯片两个中断向量地址28-35,中断向量地址28-32是保留的中断向量,将总字节数I通过文件工具写入bin固件28-31字节处;将bin固件的总字节数I的每4字节组成一个无符号整形数据,并将若干无符号整形数据累加得到数值O,将数值O按位取反并加上数值1获得数值P,通过文件工具将数值P写入bin固件32-35字节处,最终得到优化bin固件。
接着,将得到的优化bin固件烧录至LPC178x_7x系芯片的ROM中。
参看图1,为LPC178x_7x系芯片上电启动,运行bin固件,此时,检测单元最先启动,对优化bin固件进行校验,开始固件检测流程。检测单元分别从LPC178x_7x系芯片ROM地址的第28-31字节处获取优化bin固件的总字节数量记为N。将优化bin固件的N字节按每4字节组成一个无符号整形数据,将若干无符号整形数据进行累加得到累加和校验值记为V。判断累加和校验值V是否为0,若V等于0,则校验通过,功能单元继续执行相应任务,若V不等于0,则校验未通过,可重新烧录进行判断,若仍未通过则判断该LPC178x_7x系芯片存在异常。
实施例3
参看图1,本实施例提供一种具体适用于LPC111x、LPC11Cxx系芯片基于中断向量的固件检测方法。
首先参看图2,在步骤S1之间,构建含校验单元的bin固件,修改bin固件的中断向量,得到优化bin固件。具体地,构建校验单元和功能单元,校验单元用于实现对bin固件地校验,功能单元用于对本实施例芯片的嵌入式系统提供软件支持,因此本实施例中bin固件包括校验单元和功能单元,将检验单元和功能单元通过交叉编译得到bin固件。
后续修改bin固件中保留的中断向量。参看图3,在本实施例中,获取bin固件的总字节数量记为M,若总字节数量M能被4整除,则令I=M,若M不能被4整除,则计算得到,即将M除以4取整数加上1后乘以4,I作为bin固件所需的总字节数,通过文件工具将bin固件基于补0方式将总字节数量M增加到I。
获取本实施例芯片两个中断向量地址为字节数88-95处,中断向量地址88-95是保留的中断向量,将总字节数I通过文件工具写入bin固件88-91字节处;将bin固件的总字节数I的每4字节组成一个无符号整形数据,并将若干无符号整形数据累加得到数值O,将数值O按位取反并加上数值1获得数值P,通过文件工具将数值P写入bin固件92-95字节处,最终得到优化bin固件。
接着,将得到的优化bin固件烧录至本实施例芯片的ROM中。
最后,在步骤S3中,为LPC178x_7x系芯片上电启动,运行bin固件,此时,检测单元最先启动,对优化bin固件进行校验。检测单元分别从本实施例芯片ROM地址的第88-91字节处获取优化bin固件的总字节数量记为N。将优化bin固件的N字节按每4字节组成一个无符号整形数据,将若干无符号整形数据进行累加得到累加和校验值记为V。判断累加和校验值V是否为0,若V等于0,则校验通过,功能单元继续执行相应任务,若V不等于0,则校验未通过,可重新烧录进行判断,若仍未通过则判断该LPC178x_7x系芯片存在异常。
实施例4
参看图4,本实施例提供一种能够实现实施例1至3的一种基于中断向量的固件检测的固件检测装置,包括:
数据获取模块,用于获取优化bin固件的总字节数量及数据;
数据处理模块,用于对获取的所述总字节数量进行数据处理,得到累加和校验值;
校验判断模块,用于判断累加和校验值是否为0,若为0,则校验通过,若不为0,则校验不通过
实施例5
本实施例还提供一种计算机设备,包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行如权利要求1至3中任一项的基于中断向量的固件检测方法。
实施例6
本实施例还提供一种存储有计算机可读指令的存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至3中任一项的基于中断向量的固件检测方法。
上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式。即使对本发明作出各种变化,倘若这些变化属于本发明权利要求及其等同技术的范围之内,则仍落入在本发明的保护范围之中。

Claims (6)

1.一种基于中断向量的固件检测方法,其特征在于,应用烧录于嵌入式系统的优化bin固件进行固件检测,所述优化bin固件包括用于实现固件自检的检测单元,包括如下步骤:
S1:启动所述嵌入式系统,进而运行所述校验单元对所述优化bin固件进行校验,获取所述优化bin固件的总字节数量记为N;
S2:将所述优化bin固件的N字节按每4字节组成一个无符号整形数据,将若干无符号整形数据进行累加得到累加和校验值记为V;
S3:判断所述累加和校验值V是否为0,若V等于0,则校验通过,若V不等于0,则判定所述ARM芯片存在异常。
2.根据权利要求1所述的基于中断向量的固件检测方法,其特征在于,在所述步骤S1之前还包括构建所述优化bin固件,具体包括以下步骤:
A1:构建所述优化bin固件的所述校验单元和功能单元,所述校验单元用于实现固件检测,所述功能单元用于实现所述嵌入式系统正常运行;
A2:将所述检验单元和所述功能单元通过交叉编译得到bin固件;
A3:修改所述bin固件的中断向量,得到所述优化bin固件;
A4:将所述优化bin固件烧录至所述嵌入式系统中ARM芯片的ROM。
3.根据权利要求2所述的基于中断向量的固件检测方法,其特征在于,在所述步骤A3中,所述修改所述bin固件的中断向量得到所述优化bin固件具体包括如下步骤:
B1:获取所述bin固件的总字节数量记为M,若M能被4整除,则令I=M,若M不能被4整除,则基于M通过计算公式得到I,其中,I为能被4整除的整数值;
所述计算公式为I=(M/4+1)×4,其中,/为相除取整符号;
B2:将所述bin固件基于补0方式将总字节数量M增加到I;
B3:获取所述ARM芯片中断向量地址m和n,将整数值I写入所述bin固件m字节处;
B4:将所述bin固件每4字节组成一个无符号整形数据,并将若干无符号整形数据累加得到数值O,将所述数值O按位取反并加上数值1获得数值P,将所述数值P写入所述所述bin固件n字节处,得到所述优化bin固件。
4.一种基于中断向量的固件检测的固件检测装置,其特征在于,包括:
数据获取模块,用于获取优化bin固件的总字节数量及数据;
数据处理模块,用于对获取的所述总字节数量进行数据处理,得到累加和校验值;
校验判断模块,用于判断累加和校验值是否为0,若为0,则校验通过,若不为0,则校验不通过。
5.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至3中任一项所述的基于中断向量的固件检测方法。
6.一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至3中任一项所述的基于中断向量的固件检测方法。
CN202011519057.4A 2020-12-21 2020-12-21 一种基于中断向量的固件检测方法与装置 Pending CN112597503A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011519057.4A CN112597503A (zh) 2020-12-21 2020-12-21 一种基于中断向量的固件检测方法与装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011519057.4A CN112597503A (zh) 2020-12-21 2020-12-21 一种基于中断向量的固件检测方法与装置

Publications (1)

Publication Number Publication Date
CN112597503A true CN112597503A (zh) 2021-04-02

Family

ID=75199666

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011519057.4A Pending CN112597503A (zh) 2020-12-21 2020-12-21 一种基于中断向量的固件检测方法与装置

Country Status (1)

Country Link
CN (1) CN112597503A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114187604A (zh) * 2022-02-14 2022-03-15 山东信通电子股份有限公司 一种WebP图片的完整性校验方法、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107291497A (zh) * 2017-06-08 2017-10-24 Tcl通力电子(惠州)有限公司 多固件升级方法、系统及可读存储介质
US20180307479A1 (en) * 2017-04-24 2018-10-25 American Megatrends, Inc. System and method for performing firmware update by patching
CN111984655A (zh) * 2020-08-31 2020-11-24 中国电子科技集团公司第四十一研究所 一种智能噪声源校准数据固件存储扩展方法
CN112099833A (zh) * 2020-08-07 2020-12-18 北京控制工程研究所 一种星载计算机固件远程更新方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180307479A1 (en) * 2017-04-24 2018-10-25 American Megatrends, Inc. System and method for performing firmware update by patching
CN107291497A (zh) * 2017-06-08 2017-10-24 Tcl通力电子(惠州)有限公司 多固件升级方法、系统及可读存储介质
CN112099833A (zh) * 2020-08-07 2020-12-18 北京控制工程研究所 一种星载计算机固件远程更新方法
CN111984655A (zh) * 2020-08-31 2020-11-24 中国电子科技集团公司第四十一研究所 一种智能噪声源校准数据固件存储扩展方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114187604A (zh) * 2022-02-14 2022-03-15 山东信通电子股份有限公司 一种WebP图片的完整性校验方法、设备及介质

Similar Documents

Publication Publication Date Title
US7565579B2 (en) Post (power on self test) debug system and method
CN106547653B (zh) 计算机系统故障状态检测方法、装置及系统
TWI620061B (zh) 伺服器的偵錯裝置及其偵錯方法
CN111124921B (zh) 内存越界的检测方法、装置、设备和存储介质
CN111966549A (zh) 服务器的cpu压力测试方法、装置及计算机可读存储介质
US10642678B1 (en) PCI/PCIe-non-compliance-vulnerability detection apparatus and method
CN113590227A (zh) 一种嵌入式系统下的二进制烧写格式的加载方法及系统
US8370618B1 (en) Multiple platform support in computer system firmware
CN112925524A (zh) 一种检测驱动程序中不安全直接存储器访问的方法及装置
CN112597503A (zh) 一种基于中断向量的固件检测方法与装置
CN109117299B (zh) 服务器的侦错装置及其侦错方法
CN114385418A (zh) 通信设备的保护方法、装置、设备和存储介质
US20060282585A1 (en) Method and system for identifying peripheral component interconnect device information
JP2005149501A (ja) Dmaを使用して拡張カードでメモリをテストするためのシステムおよび方法
CN111857785A (zh) 一种mcu的启动方法、装置及终端设备
US20220188221A1 (en) Regression testing method and regression testing apparatus
CN110688320A (zh) 全局变量的检测方法、装置及终端设备
CN106293708B (zh) 信息处理方法及存储设备
US20070047346A1 (en) Semiconductor integrated circuit
CN114218882A (zh) 一种SoC芯片检验方法、装置及相关设备
CN112527660B (zh) 代码的静态检测方法和装置
CN111552960B (zh) 一种程序完整性的动态度量方法和装置
CN113220334B (zh) 程序故障定位方法、终端设备及计算机可读存储介质
CN117236277B (zh) 用于检查寄存器的方法及装置、电子设备
CN112084112B (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