CN110727542B - 一种Hex文件处理方法及应用 - Google Patents
一种Hex文件处理方法及应用 Download PDFInfo
- Publication number
- CN110727542B CN110727542B CN201910881899.5A CN201910881899A CN110727542B CN 110727542 B CN110727542 B CN 110727542B CN 201910881899 A CN201910881899 A CN 201910881899A CN 110727542 B CN110727542 B CN 110727542B
- Authority
- CN
- China
- Prior art keywords
- hex file
- data
- record
- crc
- hex
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding 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
-
- 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/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution 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文件是为某特定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中的应用。
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 CN110727542A (zh) | 2020-01-24 |
CN110727542B true 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) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113093694B (zh) * | 2021-03-18 | 2022-05-20 | 东风汽车集团股份有限公司 | 一种基于uds的车载电控单元数据刷写方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1538655A (zh) * | 2003-02-17 | 2004-10-20 | ���ǵ�����ʽ���� | 用于块级偏移密本方式操作的设备及其方法 |
CN1636374A (zh) * | 2001-11-06 | 2005-07-06 | 皇家飞利浦电子股份有限公司 | 带有标题压缩的无线通信设备 |
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 | 深圳市路畅科技股份有限公司 | 一种车载软件更新方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4437953B2 (ja) * | 2004-12-10 | 2010-03-24 | 富士通株式会社 | データ書込み方法とチャネルアダプタ |
-
2019
- 2019-09-18 CN CN201910881899.5A patent/CN110727542B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1636374A (zh) * | 2001-11-06 | 2005-07-06 | 皇家飞利浦电子股份有限公司 | 带有标题压缩的无线通信设备 |
CN1538655A (zh) * | 2003-02-17 | 2004-10-20 | ���ǵ�����ʽ���� | 用于块级偏移密本方式操作的设备及其方法 |
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)
Title |
---|
The implementation of CRC-16 based on a novel FPGA: A collection of reconfiguration operations(ReOps);Zhiqiang Yang 等;《 2016 13th IEEE International Conference on Solid-State and Integrated Circuit Technology (ICSICT)》;20161028;第1482-1484页 * |
一种基于CAN总线的DSP程序加载技术;叶俊 等;《电子技术应用》;20031130(第11期);第32-34页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110727542A (zh) | 2020-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3719636B1 (en) | Processing system, related integrated circuit, device and method | |
US7428610B2 (en) | Writing to flash memory | |
CN101231622B (zh) | 基于闪存的数据存储方法和设备、及数据读取方法和设备 | |
KR20160052690A (ko) | 하드웨어에서 데이터 프레임 세그먼트들의 선택적인 병합을 제공하는 고성능 시스템 | |
CN107688463B (zh) | 一种嵌入式设备版本文件打包的方法 | |
CN107194242A (zh) | 固件升级方法和装置 | |
US20080270427A1 (en) | Method and Apparatus for Configuring a Control Device, and Corresponding Control Device | |
TW201525691A (zh) | 資料儲存裝置以及快閃記憶體控制方法 | |
US20130185484A1 (en) | File programming method and associated device for nand flash | |
CN110727542B (zh) | 一种Hex文件处理方法及应用 | |
CN113065169A (zh) | 一种文件存证方法、装置及设备 | |
CN101923476A (zh) | 文件安装系统及文件安装方法 | |
CN108199827A (zh) | 客户端代码完整性校验方法、存储介质、电子设备及系统 | |
US10353584B2 (en) | Data storage device and method for rewriting parameters thereof | |
EP2568655B1 (en) | Method for authenticating a storage device, machine-readable storage medium, and host device | |
CN110719494B (zh) | 一种实现cdn流媒体数据防篡改的方法及系统 | |
CN116821006B (zh) | 闪存数据防丢失与擦写平衡方法、系统、装置和介质 | |
US20200410102A1 (en) | Randomizing Firmware Loaded to a Processor Memory | |
CN101609492B (zh) | 嵌入式设备的加解密方法和系统 | |
CN116991671A (zh) | Dcs控制器及其可信启动的审计日志记录方法和系统 | |
CN112463042B (zh) | 一种数据卷导入数据校验方法、装置、终端及存储介质 | |
CN106326310B (zh) | 一种手机客户端软件的资源加密更新方法 | |
CN110516457B (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 |