[发明专利]一种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)       将文件指针指向文件的末尾,获取文件的长度;

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于株洲南车时代电气股份有限公司,未经株洲南车时代电气股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201210083785.4/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top