CN110727542A - 一种Hex文件处理方法及应用 - Google Patents

一种Hex文件处理方法及应用 Download PDF

Info

Publication number
CN110727542A
CN110727542A CN201910881899.5A CN201910881899A CN110727542A CN 110727542 A CN110727542 A CN 110727542A CN 201910881899 A CN201910881899 A CN 201910881899A CN 110727542 A CN110727542 A CN 110727542A
Authority
CN
China
Prior art keywords
hex file
data
record
crc
processing method
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
Application number
CN201910881899.5A
Other languages
English (en)
Other versions
CN110727542B (zh
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.)
Shaanxi Fast Gear Co Ltd
Original Assignee
Shaanxi Fast Gear 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 Shaanxi Fast Gear Co Ltd filed Critical Shaanxi Fast Gear Co Ltd
Priority to CN201910881899.5A priority Critical patent/CN110727542B/zh
Publication of CN110727542A publication Critical patent/CN110727542A/zh
Application granted granted Critical
Publication of CN110727542B publication Critical patent/CN110727542B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)

Abstract

本发明属于嵌入式系统文件处理方法,具体涉及一种Hex文件处理方法及应用,包括以下步骤:步骤1,对Hex文件的Block进行分组,每组至少包括一个Block,对每组Block的指定地址段进行CRC校验,得到相应的CRC校验码,将CRC校验码按照Intel格式放入指定地址位置,即CRC放置地址;所述指定地址段不含CRC放置地址;步骤2,对每条Record中的数据域进行加密,在Hex文件预刷写的控制器中设置相应解密程序;步骤3,重新计算每条加密后的Record的校验和;步骤4,向预刷写的控制器中刷写处理后的Hex文件,预刷写的控制器利用解密程序进行解密;步骤5,预刷写的控制器核算CRC校验码。本发明的Hex文件处理方法解决了现有技术中Hex格式的文件直接用于程序刷写容易由于数据外流导致程序被破解或重写的问题。

Description

一种Hex文件处理方法及应用
技术领域
本发明属于嵌入式系统文件处理方法,具体涉及一种Hex文件处理方法及应用。
背景技术
Hex文件是为某特定MCU创建的一种文件格式,该文件中记录了MCU内部PROM运行所需的程序和数据,该格式的文件目前已是嵌入式系统行业普遍采用的一种文件形式。在嵌入式开发环境下开发的代码通过编译、链接等一系列步骤最终会生成Hex文件,通过编译处理生成的Hex文件中以明文的形式记录了控制器PROM中存储的代码和数据等内容,如果直接用于程序刷写很容易造成数据外流,进而导致程序被破解或重写。
发明内容
本发明的主要目的是在于解决现有技术中Hex格式的文件直接用于程序刷写容易由于数据外流导致程序被破解或重写的问题,提供一种Hex文件处理方法及应用。
为实现上述目的,本发明提供如下技术方案:
一种Hex文件处理方法,其特殊之处在于,包括以下步骤:
步骤1,CRC校验:
对Hex文件的Block进行分组,每组至少包括一个Block,对每组Block的指定地址段进行CRC校验,得到相应的CRC校验码,将CRC校验码按照Intel格式放入指定地址位置,即CRC放置地址;所述指定地址段不含CRC放置地址;
步骤2,加密:
对每条Record中的数据域进行加密,数据长度域、地址域、数据类型域以及校验和域不变,并在Hex文件预刷写的控制器中设置相应解密程序;
步骤3,计算校验和:
重新计算每条加密后的Record的校验和;
步骤4,刷写及解密:
向预刷写的控制器中刷写经步骤1至步骤3处理后的Hex文件,预刷写的控制器利用步骤2中所述的解密程序对Hex文件进行解密;
步骤5,核算:
预刷写的控制器核算CRC校验码,若一致,则Hex文件数据准确,进行存储;否则,Hex文件数据错误,丢弃数据。
进一步地,所述步骤1之前还包括,对Hex文件中的每条Record进行字节填充,使得每条Record的格式和长度一致,后续的数据处理更加便捷。
进一步地,步骤1中,所述CRC校验采用CRC32校验。
进一步地,步骤2中,所述对每条Record中的数据域进行加密,具体是对每条Record中的数据域进行AES加密。其他加密方法也同样适用于本发明,AES加密方法对内存的需求较低,破解难度大且运算速度快,更有利于实现数据的快速处理和传输。
进一步地,步骤2中,所述对每条Record中的数据域进行加密,具体是对每条Record中的数据域进行AES128加密。
如上所述Hex文件处理方法在汽车TCU中的应用。
与现有技术相比,本发明的有益效果是:
1.本发明Hex文件处理方法,通过CRC校验和加密两个主要过程,将原始Hex文件中的内容进行了变形处理但仍符合Hex文件格式,不影响刷写,用以避免原始代码暴露。先通过CRC校验,得到特定地址段数据的CRC校验码,用于最后预刷写的控制器进行核算,确认数据是否准确;然后通过对每条Record的数据域进行加密并重新计算校验和;最终加密后的Hex文件与原Hex文件格式一致,在刷写之后通过控制器解密后使用,有效防止原始数据在传输过程中被获取、破解或重写,保证了数据传输的安全性。
2.本发明对每条Record进行字节填充,使每条Record格式与长度一致,使后续数据处理更加方便。
3.本发明使用AES加密,运算速度快,对内存的需求较低,破解难度大,数据的安全性更高;采用AES128加密,在保证数据安全性的同时密钥长度适当。
4.本发明中的HEX文件处理方法用于汽车的TCU中,使汽车在驾驶中能够实现更加准确的控制,避免TCU的源代码被破解利用。
附图说明
图1为本发明Hex文件处理方法的流程示意图。
具体实施方式
下面将结合本发明的实施例和附图,对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例并非对本发明的限制。
本实施例中的Hex文件处理方法主要包括了CRC校验和加密两个过程,对预设数量Block进行校验,用于最终控制器核算数据是否准确;对Hex文件每条Record的数据域进行加密,并重新计算相应的校验和,保证了加密后Hex文件与原始文件的格式一致。避免了Hex文件被盗用、重写或破解。具体包括以下步骤:
步骤1,CRC校验,
对Hex文件的Block进行分组,每组至少包括一个Block,对每组Block的指定地址段进行CRC校验,得到相应的CRC校验码,将CRC校验码按照Intel格式放入指定地址位置,即CRC放置地址;所述指定地址段不含CRC放置地址;
步骤2,加密,对每条Record中的数据域进行加密,并在Hex文件预刷写的控制器中设置相应解密程序;
步骤3,计算校验和,重新计算每条加密后的Record的校验和;
步骤4,刷写及解密,向预刷写的控制器中刷写经步骤1至步骤3处理后的Hex文件,预刷写的控制器利用步骤2中所述的解密程序对Hex文件进行解密;
步骤5,核算,预刷写的控制器内部引导程序核算CRC校验码,若一致,则Hex文件数据准确,进行存储;否则,Hex文件数据错误,丢弃数据。
上述步骤1中的CRC校验,可以以每组Block为单位进行校验,也可以按照指定地址段为校验单位,如第一个Block中某行Record到第二个Block中某行Record,或者第一个Block中某个地址到第二个Block中某个地址。
实施例一
对汽车TCU中需要刷写的Hex文件进行处理,具体为:
步骤1,对Hex文件每4个Block进行CRC32校验,得到相应的CRC32校验码,按照Intel格式放入指定地址位置,即最高有效位放置在高地址上的逆序方式;
步骤2,对每条Record中的数据域进行AES128加密,数据长度域、加载地址域、数据类型域、校验和域等不变,在TCU内部启动程序中设置相应的解密程序;
步骤3,重新计算每条加密后的Record的校验和;
步骤4,向TCU中刷写经步骤1至步骤3处理后的Hex文件,TCU内部启动程序进行解密;
步骤5,TCU核算CRC32校验码,若一致,则Hex文件数据准确,存储至TCU内存中;否则,Hex文件数据错误,丢弃数据。之后可查找原因或重新刷写。
实施例二
对汽车TCU中需要刷写的Hex文件进行处理,具体为:
步骤1,对Hex文件中的每条Record进行字节填充,使每条Record格式和长度保持一致,便于后续的数据操作处理;
步骤2,对Hex文件每个Block进行CRC32校验,得到相应的CRC32校验码,按照Intel格式放入指定地址位置,即最高有效位放置在高地址上的逆序方式;
步骤3,对每条Record中的数据域进行AES128加密,数据长度域、地址域、数据类型域和校验和域等不变,在TCU内部启动程序中设置相应的解密程序;
步骤4,重新计算每条加密后的Record的校验和;
步骤5,向TCU中刷写经步骤1至步骤4处理后的Hex文件,TCU内部启动程序进行解密;
步骤6,TCU核算CRC32校验码,若一致,则Hex文件数据准确,存储至TCU内存中;否则,Hex文件数据错误,丢弃数据。之后可查找原因或重新刷写。
实施例三
对汽车ESC中需要刷写的Hex文件进行处理,具体为:
步骤1,对Hex文件的Block进行分组,根据需要每组Block的数量不等,对每组Block的指定地址段进行CRC16校验,得到相应的CRC16校验码,按照Intel格式放入指定地址位置,即最高有效位放置在高地址上的逆序方式;
步骤2,对每条Record中的数据域进行AES192加密,数据长度域、地址域、数据类型域和校验和域等不变,在ESC内部启动程序中设置相应的解密程序;
步骤3,重新计算每条加密后的Record的校验和;
步骤4,向ESC中刷写经步骤1至步骤3处理后的Hex文件,ESC内部启动程序进行解密;
步骤5,ESC核算CRC16校验码,若一致,则Hex文件数据准确,存储至ESC内存中;否则,Hex文件数据错误,丢弃数据。之后可查找原因或重新刷写。
实施例四
对电瓶车BMS中需要刷写的Hex文件进行处理,具体为:
步骤1,对Hex文件中的每条Record进行字节填充,使每条Record格式和长度保持一致,便于后续的数据操作处理;
步骤2,对Hex文件每5个Block进行CRC32校验,得到相应的CRC32校验码,按照Intel格式放入指定地址位置,即最高有效位放置在高地址上的逆序方式;
步骤3,对每条Record中的数据域进行AES256加密,数据长度域、地址域、数据类型域和校验和域等不变,在BMS内部启动程序中设置相应的解密程序;
步骤4,重新计算每条加密后的Record的校验和;
步骤5,向BMS中刷写经步骤1至步骤4处理后的Hex文件,BMS内部启动程序进行解密;
步骤6,BMS核算CRC32校验码,若一致,则Hex文件数据准确,存储至BMS内存中;否则,Hex文件数据错误,丢弃数据。之后可查找原因或重新刷写。
上述实施例一至实施例四中,对Hex文件的Block进行分组,本发明的Hex文件处理方法在对Block进行分组时,既可以平均分组,还可以进行不平均分组,且每组的Block数可以是一个也可以是多个,此处不再赘述;以指定地址段Record为单位进行CRC校验也可以,过程相似也不再重复。具体的分组形式可以根据需求进行调整。另外,进行CRC校验时,可以是对多个指定地址段进行CRC校验,也可以是对某一指定地址段进行CRC校验,根据Hex文件的应用和处理需求进行具体设计。
本发明的Hex文件处理方法可以用于各种场景下的Hex文件,其中的加密方法可以根据使用需求选用任何用于数据加密的方法,本实施例中选用的AES加密方法,主要是考虑其对内存要求较低,且运行速度快,尤其是在汽车的TCU中更加适用。另外,对于CRC校验的具体方法,计算或查表法均可使用,依据实际使用需要。
如下对本发明中出现的英文缩写或名称进行解释:
MCU:Microcontroller Unit,微型控制单元,又称单片微型计算机或单片机。
PROM:Programmable Read Only Memory,可编程只读存储器。
TCU:Transmission Control Unit,自动变速箱控制单元。
ESC:Electrical Speed Controller,电子稳定控制系统。
BMS:Battery Management System,电池管理系统。
Record:指Hex文件中每行记录的概念。
Block:指Hex文件中块的概念。
域:Hex文件中每条Record划分为6个域,即标示符域、数据长度域、加载地址域、数据类型域、数据域、校验和域。
以上所述仅为本发明的实施例,并非对本发明保护范围的限制,凡是利用本发明说明书及附图内容所作的等效结构变换,或直接或间接运用在其他相关的技术领域,均包括在本发明的专利保护范围内。

Claims (6)

1.一种Hex文件处理方法,其特征在于,包括以下步骤:
步骤1,CRC校验:
对Hex文件的Block进行分组,每组至少包括一个Block,对每组Block的指定地址段进行CRC校验,得到相应的CRC校验码,将CRC校验码按照Intel格式放入指定地址位置,即CRC放置地址;所述指定地址段不含CRC放置地址;
步骤2,加密:
对每条Record中的数据域进行加密,数据长度域、地址域、数据类型域以及校验和域不变,并在Hex文件预刷写的控制器中设置相应解密程序;
步骤3,计算校验和:
重新计算每条加密后的Record的校验和;
步骤4,刷写及解密:
向预刷写的控制器中刷写经步骤1至步骤3处理后的Hex文件,预刷写的控制器利用步骤2中所述的解密程序对Hex文件进行解密;
步骤5,核算:
预刷写的控制器核算CRC校验码,若一致,则Hex文件数据准确,进行存储;否则,Hex文件数据错误,丢弃数据。
2.如权利要求1所述一种Hex文件处理方法,其特征在于:所述步骤1之前还包括,对Hex文件中的每条Record进行字节填充。
3.如权利要求1所述一种Hex文件处理方法,其特征在于:步骤1中,所述CRC校验采用CRC32校验。
4.如权利要求1所述一种Hex文件处理方法,其特征在于:步骤2中,所述对每条Record中的数据域进行加密,具体是对每条Record中的数据域进行AES加密。
5.如权利要求4所述一种Hex文件处理方法,其特征在于:步骤2中,所述对每条Record中的数据域进行加密,具体是对每条Record中的数据域进行AES128加密。
6.权利要求1至5任一项所述Hex文件处理方法在汽车TCU中的应用。
CN201910881899.5A 2019-09-18 2019-09-18 一种Hex文件处理方法及应用 Active CN110727542B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910881899.5A CN110727542B (zh) 2019-09-18 2019-09-18 一种Hex文件处理方法及应用

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910881899.5A CN110727542B (zh) 2019-09-18 2019-09-18 一种Hex文件处理方法及应用

Publications (2)

Publication Number Publication Date
CN110727542A true CN110727542A (zh) 2020-01-24
CN110727542B CN110727542B (zh) 2023-02-28

Family

ID=69219223

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910881899.5A Active CN110727542B (zh) 2019-09-18 2019-09-18 一种Hex文件处理方法及应用

Country Status (1)

Country Link
CN (1) CN110727542B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113093694A (zh) * 2021-03-18 2021-07-09 东风汽车集团股份有限公司 一种基于uds的车载电控单元数据刷写方法及系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1538655A (zh) * 2003-02-17 2004-10-20 ���ǵ�����ʽ���� 用于块级偏移密本方式操作的设备及其方法
CN1636374A (zh) * 2001-11-06 2005-07-06 皇家飞利浦电子股份有限公司 带有标题压缩的无线通信设备
US20060129901A1 (en) * 2004-12-10 2006-06-15 Fujitsu Limited Method of writing data and channel adapter
CN101727095A (zh) * 2008-10-30 2010-06-09 联创汽车电子有限公司 汽车电子控制器的Flash的在线烧写方法
CN107491336A (zh) * 2017-09-05 2017-12-19 武汉理工大学 一种汽车电控模块刷新系统及方法
CN107688463A (zh) * 2017-09-21 2018-02-13 杭州全维技术股份有限公司 一种嵌入式设备版本文件打包的方法
CN108491224A (zh) * 2018-07-09 2018-09-04 深圳市路畅科技股份有限公司 一种车载软件更新方法及系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1636374A (zh) * 2001-11-06 2005-07-06 皇家飞利浦电子股份有限公司 带有标题压缩的无线通信设备
CN1538655A (zh) * 2003-02-17 2004-10-20 ���ǵ�����ʽ���� 用于块级偏移密本方式操作的设备及其方法
US20060129901A1 (en) * 2004-12-10 2006-06-15 Fujitsu Limited Method of writing data and channel adapter
CN101727095A (zh) * 2008-10-30 2010-06-09 联创汽车电子有限公司 汽车电子控制器的Flash的在线烧写方法
CN107491336A (zh) * 2017-09-05 2017-12-19 武汉理工大学 一种汽车电控模块刷新系统及方法
CN107688463A (zh) * 2017-09-21 2018-02-13 杭州全维技术股份有限公司 一种嵌入式设备版本文件打包的方法
CN108491224A (zh) * 2018-07-09 2018-09-04 深圳市路畅科技股份有限公司 一种车载软件更新方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ZHIQIANG YANG 等: "The implementation of CRC-16 based on a novel FPGA: A collection of reconfiguration operations(ReOps)", 《 2016 13TH IEEE INTERNATIONAL CONFERENCE ON SOLID-STATE AND INTEGRATED CIRCUIT TECHNOLOGY (ICSICT)》 *
叶俊 等: "一种基于CAN总线的DSP程序加载技术", 《电子技术应用》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113093694A (zh) * 2021-03-18 2021-07-09 东风汽车集团股份有限公司 一种基于uds的车载电控单元数据刷写方法及系统
CN113093694B (zh) * 2021-03-18 2022-05-20 东风汽车集团股份有限公司 一种基于uds的车载电控单元数据刷写方法及系统

Also Published As

Publication number Publication date
CN110727542B (zh) 2023-02-28

Similar Documents

Publication Publication Date Title
CN110968844B (zh) 离线状态下的软件授权方法、服务器及可读存储介质
CN101231622B (zh) 基于闪存的数据存储方法和设备、及数据读取方法和设备
US11368299B2 (en) Self-encryption drive (SED)
US7428610B2 (en) Writing to flash memory
CN107688463B (zh) 一种嵌入式设备版本文件打包的方法
KR20160052690A (ko) 하드웨어에서 데이터 프레임 세그먼트들의 선택적인 병합을 제공하는 고성능 시스템
US20080270427A1 (en) Method and Apparatus for Configuring a Control Device, and Corresponding Control Device
TWI519953B (zh) 資料儲存裝置以及快閃記憶體控制方法
DE69901424T2 (de) Rechnerdatei-integritätsprüfung
US8983072B2 (en) Portable data carrier featuring secure data processing
TW201207862A (en) Memory identification code generating method, management method, controller and storage system
CN110727542B (zh) 一种Hex文件处理方法及应用
TW201532061A (zh) 資料儲存裝置以及資料加擾與解擾方法
US5719885A (en) Storage reliability method and apparatus
CN110502250A (zh) 一种升级方法及基板管理控制器
CN106156550A (zh) 一种芯片防破解的方法
EP2568655A2 (en) Method for authenticating a storage device, machine-readable storage medium, and host device
US11347860B2 (en) Randomizing firmware loaded to a processor memory
CN116991671A (zh) Dcs控制器及其可信启动的审计日志记录方法和系统
CN103685471A (zh) 一种以独占方式对软件客户端进行更新的方法及系统
CN107168650B (zh) 一种对bios的存储器中的数据的处理方法及装置
CN112463042B (zh) 一种数据卷导入数据校验方法、装置、终端及存储介质
CN114091041A (zh) 一种基于嵌入式设备的数据传输方法、装置、设备及介质
CN110874225B (zh) 一种数据校验方法、装置、嵌入式设备及存储介质
CN102096777A (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