[发明专利]一种ELF文件添加CRC校验的方法无效
申请号: | 201210083785.4 | 申请日: | 2012-03-27 |
公开(公告)号: | CN102662789A | 公开(公告)日: | 2012-09-12 |
发明(设计)人: | 刘永阳;肖家博;杨卫峰;宁侨 | 申请(专利权)人: | 株洲南车时代电气股份有限公司 |
主分类号: | G06F11/10 | 分类号: | G06F11/10 |
代理公司: | 长沙正奇专利事务所有限责任公司 43113 | 代理人: | 卢宏 |
地址: | 412001*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 elf 文件 添加 crc 校验 方法 | ||
技术领域
本发明涉及嵌入式系统数据通信领域,特别是一种ELF文件校验方法。
背景技术
随着嵌入式科技的高速发展,嵌入式产品应用越来越广泛,比如高速铁路、通讯设备等,嵌入式开发包括硬件和软件开发,为了提高开发速度,在嵌入式软件开发中一般会采用文件系统,将文件和数据保存在文件系统当中,文件系统使用能带来很多的好处,比如使用简单方便、API接口丰富、上手和开发速度快,同时文件传递也很方便。
但是嵌入式系统有时应用在环境严酷的场合,复杂的周围环境、软件缺陷等可能导致文件内容被破坏或者改写,特殊情况下还有可能造成文件系统的损坏。通常,嵌入式系统启动的时候从文件系统里面读取应用程序来执行,如果文件系统内部的应用文件被损坏,那么可能会造成系统启动或者运行异常,导致系统不稳定;此外,由于嵌入式系统下的传输协议较为简单,缺乏足够的容错机制,在文件更新过程中也有可能发生数据丢失、输出传错等情况,这样传输到文件系统的文件可能已经被改写,这种损坏的文件是不能使用的,带来的后果通常不可预知,在目前的嵌入式系统中,一般没有提供文件完整性校验方法,不能判断文件是否是正确可用的;另外,即使文件已经发生损坏,也不能立刻检测出来,文件的完整性不能得到保障。
目前,在一般的嵌入式系统的设计中,使用文件系统来保存文件和数据,保存的文件包括启动程序和应用程序,比如使用vxWorks实时操作系统的嵌入式系统一般把vxWorks image文件和应用程序(.out文件)等放在文件系统内,vxWorks image和.out应用程序均属于ELF文件(Executable and Linkable Format),ELF文件结构见图1,最前面是ELF头(ELF Header),紧接着是ELF文件的各个段,比如代码段,最后还要一些辅助结构,比如字符串表、符号表等;ELF文件开始的ELF头定义了ELF魔数、文件机器字节长度、数据存储方式、版本、运行平台、ABI版本、ELF重定位类型、硬件平台、入口地址、段表位置和长度等信息,其中关键的一点是记录了段表(Section Table)的位置和长度,通过段表的位置可以从ELF文件中读出段表内容,然后从中得到代码段、数据段等的位置、长度以及其他属性。操作系统在加载ELF文件的时候会用到段表来定位和访问各个段的属性信息,从段表里面获取代码段、数据段的地址和长度信息并将代码段、数据段从文件中相应位置拷贝到内存的相应区域,从而实现可执行文件的装载和运行。
文件的完整性主要体现在加载和更新的时候,加载的时候加载错误文件会导致启动失败或者异常,文件更新的时候也可会出错。目前的方案是,在加载的时候一般是依靠操作系统提供检测方法,检查ELF头是否有效,但并不能检查整个ELF文件;在传输过程中,一般依靠传输协议来保证,比如FTP、xmodem等协议,在嵌入式环境中传输协议只能保证传输过程中的准确性,但是并不能保证写到存储器上的内容是正确的,保存过程也有可能会出错。
目前CRC校验一般有两种方式:(1)将文件和文件的CRC校验和放在不同的位置,比如使用其他的另外一个文件来存放需要校验的文件CRC校验和;(2)将CRC校验和等一些信息放置在校验文件头部,即在文件的开始添加一个校验文件头。
上述两种方法都有缺点:方法1,由于文件和CRC校验和分别存放,需要从其他地方取的CRC校验和,使得校验过程麻烦,而且容易出现校验和丢失后无法校验的情况;方法2会破坏ELF文件结构,因为ELF标准要求在ELF文件的开始是ELF头,如果在文件前面添加一个校验文件头之后就不再是ELF文件(成为一种新文件),因此这样做会破坏ELF文件结构,导致操作系统不能直接加载该类型文件,如果要加载的话需要另外单独为这种新文件类型编写加载程序,这样会提高系统的复杂度,而且换操作系统平台之后加载程序需要重写,降低通用性。
发明内容
本发明所要解决的技术问题是,针对现有技术不足,提供一种ELF文件添加CRC校验的方法,避免使用错误和损坏的文件,提高嵌入式系统的可靠性,有效保证加载正确文件和文件更新的正确性,保障文件的完整性。
为解决上述技术问题,本发明所采用的技术方案是:一种ELF文件添加CRC校验的方法,该方法包括以下步骤:
1) 在ELF文件末尾添加一个校验文件头;
2) 打开添加了校验文件头的ELF文件;
3) 将文件指针指向文件的末尾,获取文件的长度;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于株洲南车时代电气股份有限公司,未经株洲南车时代电气股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210083785.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种信息安全评估方法
- 下一篇:一种新型光电LED幻影模块庭院景观灯