用于监控机动车控制器工作系统中的堆栈存储器的方法技术方案

技术编号:10359907 阅读:112 留言:0更新日期:2014-08-27 16:02
本发明专利技术涉及一种用于对于在机动车的控制器的工作系统(100)中的堆栈存储器进行监控的方法,其中在执行一种能够执行的程序代码之前,检查(3)堆栈存储器的特征参数,在执行了所述能够执行的程序代码之后,检查(7)所述堆栈存储器的特征参数,比较(8)在执行所述能够执行的程序代码之前和之后的堆栈存储器的特征参数,并且当在执行所述能够执行的程序代码之前和之后的堆栈存储器的特征参数不同时,执行(20)一种预先定义的动作。

【技术实现步骤摘要】

本专利技术涉及一种用于对于在机动车的控制器的工作系统中的堆栈存储器进行监控的方法。
技术介绍
本专利技术涉及用于机动车控制器的工作系统,所述工作系统尤其可以是实时的。例如,这种工作系统是根据OSEK标准(“Qffene Systeme und deren Schnittstellen fiir dieElektronik im Kraftfahrzeug (用于机动车中的电子装置的敞开系统及其接口)”)的工作系统。“实时”被定义为在预先给定的时间间隔内可用的结果的确定的时间特性。例如,实时系统用在机动车中,以便能够使确定的敏感过程(发动机控制、ABS、安全气囊等)可以根据所定义的时间计划来进行。对于用于这种工作系统的软件的编程来说,所谓的堆栈存储器(也称为下推存储器或者后进先出存储器)非常重要。用数据连续地写入并读取堆栈存储器。在此,适用LIFO(Last in First out (后进先出))原理,其中所述堆栈存储器以颠倒的顺序被读取,已经按该顺序对该堆栈存储器进行了写入。逐个地处理该堆栈存储器,也就是说,仅可以读取并处理所述堆栈存储器的当前的存储器输入。堆栈指针(stack pointer,也称为Stapelzeiger)包含了该当前存储器输入的存储器地址。每条线(Thread)通常具有自身的堆栈存储器。在该相应的堆栈存储器中包含了作为各个存储器输入的参数、变量或者参数和变量的存储器地址,这些存储器输入对于执行所述线的子程序来说是必需的。此外,所述堆栈存储器还包含在处理了子程序之后对于线的继续来说必要的返回地址和返回值。如果堆栈指针未包含当前存储器输入的存储器地址,而是包含了另一个存储器输入的存储器地址,则这会导致所述线的功能故障,导致所述工作系统的严重故障,以及甚至导致工作系统的损毁。例如,错误的可执行的程序代码可能导致这种功能故障和错误,通过该错误的可执行的程序代码不允许对于堆栈存储器进行数据存取。然而,攻击者通常也利用这个薄弱环节。例如,攻击者借助于堆栈存储器的返回地址导致执行恶意的程序代码或者有害的软件。因此,值得追求的是,提供这样的可能性,即能够阻止由于对堆栈存储器的错误存取而导致的机动车中控制器的工作系统的故障功能。
技术实现思路
根据本专利技术,提出了一种具有权利要求1的特征的、用于监控在机动车的控制器的工作系统中的堆栈存储器的方法。从属权利要求的主题以及随后的说明是有利的设计方案。在根据本专利技术的方法中,在执行一种可执行的程序代码之前,检查堆栈存储器的特征参数。在执行所述可执行的程序代码之后,重新检查所述堆栈存储器的特征参数。比较在执行所述可执行的程序代码之前和之后的堆栈存储器的特征参数,并且当在执行所述可执行的程序代码之前和之后的堆栈存储器的特征参数不同时,执行一种预先定义的动作。本专利技术的优点: 可以在执行每个程序代码之前或之后执行根据本专利技术的方法。因此,基于对堆栈存储器的错误的存取检查每个程序代码。借助于根据本专利技术的方法可以立即识别出,何时可执行的程序代码对于堆栈存储器错误地进行了存取。因此,识别出错误的程序代码,该错误的程序代码例如由于错误编码的软件共享对象、编码错误或编译错误而对于堆栈存储器错误地进行了存取。避免了对堆栈存储器的负面影响以及利用堆栈存储器的不固定的参数来执行代码。这对于履行安全相关的功能(例如ABS、EPS、安全气囊等)的机动车控制器、尤其是实时机动车控制器来说是特别有利的。特征参数可以借助于检测代码来确定,在执行所述可执行的程序代码之前和之后执行该检测代码过程。在执行所述程序代码之前的特征参数被存储在专门的存储器区域中。在执行所述程序代码之后的当前的特征参数同样可以被存储,或者直接与在所述执行之前被存储的特征参数进行比较。选择一参数来作为所述堆栈存储器的特征参数,根据该参数可以理解,是否对所述堆栈存储器错误地进行了存取。堆栈指针有利地被用作堆栈存储器的特征参数。因此,监控了所述堆栈存储器的一种一致性条件,该一致性条件表明,在执行程序代码之前和之后所述堆栈指针应该指向堆栈存储器的相同的存储器输入。例如,未被工作系统检测到的、堆栈指针的变化会导致,再次写入堆栈存储器的存储器输入和重要数据。像开头所述的那样,这可能导致线(Thread)的功能故障,导致工作系统的严重故障,或者甚至导致工作系统的损毁。这种错误或损坏可以通过本专利技术得以避免。此外,能识别出那些想不允许地对于堆栈指针或堆栈存储器进行存取的有害的软件和攻击者。尤其能够阻止所述堆栈存储器的下溢或上溢。当下溢时,读取空的堆栈存储器。当上溢时,在堆栈存储器中不再存在足够的存储器位置来添加其它的存储器输入以及利用其它数据来写入堆栈存储器。因此可以阻止由于上溢和/或下溢而可能出现的程序损毁或功能故障。所述可执行的程序代码优选设计为过程、功能、任务、下级程序、子程序和/或软件实体。可以由工作系统本身或者通过应用程序来执行该可执行的程序代码。原则上适合的是,在每次执行之前控制每个可执行的程序代码。作为预先定义的动作,优选阻止重新执行所述可执行的程序代码。可执行的程序代码可以移动至一种隔离(Quarantine)中。此外,可以向使用者发出故障报警和/或在故障报告中建立一种输入。作为预先定义的动作,有利地在执行所述可执行的程序代码之前再次建立所述特征参数。因此,撤销了通过所述可执行的程序代码不期望地对于所述特征参数的改变。也可以设想,在执行所述可执行的程序代码之前,创建所述堆栈存储器的安全副本,并在执行所述可执行的程序代码之后重建该安全副本。作为预先定义的动作,优选确定识别号码、文件路径和/或存储器地址,其描述了所述可执行的程序代码的特征。因此,明确地识别所述可执行的程序代码,并实现了正确的错误定位。这些关于所述可执行的程序代码的信息能够用于故障报警或故障报告。[0021 ] 在本专利技术的优选的实施方案中,通过一种包装(Wrapper)来检查所述堆栈存储器的特征参数。在信息提取领域中,把用于从确定的数据源里自动地提取(半)结构化的数据的程序称为“包装”。在所述方法的过程中,所述包装由工作系统调出,或者也由其它程序、软件或软件实体调出。尤其可以通过执行了根据本专利技术的方法的实施方案的软件来调出该包装。可以适当地使用多个包装,尤其可以为每个单个的堆栈存储器使用自身的包装。根据本专利技术的计算单元,例如机动车的控制器尤其在程序技术方面设计用于,执行根据本专利技术的方法。以软件形式执行所述方法是有利的,因为这导致了特别低的成本,尤其当正在执行的控制器还用于其它任务,且因此本来就存在时。用于提供计算机程序的合适的数据载体尤其是软盘、硬盘、闪存、EEPR0M、⑶-ROM、DVD等。也可以通过计算机网络(因特网、内联网等)来下载程序。由说明书和附图得到本专利技术的其它优点和设计方案。当然,在不脱离本专利技术的框架的情况下,上文所述的和下文仍将阐述的特征不仅能以分别给出的组合、而且还能以其它组合或者单独地使用。【附图说明】根据实施例在附图中示意性地示出本专利技术,且在下文中参考所述附图详细地描述本专利技术。附图简要地示出: 图1示意性示出了根据本专利技术的方法的优选实施方案的框图。【具体实施方式】图1中示意性地示出根了据本专利技术的方法的优选实施方案来作为框本文档来自技高网
...

【技术保护点】
一种用于监控机动车控制器工作系统(100)中的堆栈存储器的方法,其中‑在执行一种能够执行的程序代码之前,检查堆栈存储器的特征参数(3),‑在执行了所述能够执行的程序代码之后,检查所述堆栈存储器的特征参数(7),‑比较在执行所述能够执行的程序代码之前和之后的所述堆栈存储器的特征参数(8),以及‑当在执行所述能够执行的程序代码之前和之后的所述堆栈存储器的特征参数不同时,执行至少一个预先定义的动作(20)。

【技术特征摘要】
2013.02.22 DE 102013202961.61.一种用于监控机动车控制器工作系统(100)中的堆栈存储器的方法,其中 -在执行一种能够执行的程序代码之前,检查堆栈存储器的特征参数(3), -在执行了所述能够执行的程序代码之后,检查所述堆栈存储器的特征参数(7 ), -比较在执行所述能够执行的程序代码之前和之后的所述堆栈存储器的特征参数(8),以及 -当在执行所述能够执行的程序代码之前和之后的所述堆栈存储器的特征参数不同时,执行至少一个预先定义的动作(20)。2.根据权利要求1所述的方法,其中,所述堆栈存储器的特征参数是堆栈指针。3.根据权利要求1或2所述的方法,其中,所述能够执行的程序代码设计为过程、功能、任务、下级程序、子程序和/或软件实体。4.根据前述权利要求中任一项...

【专利技术属性】
技术研发人员:C库茨
申请(专利权)人:罗伯特·博世有限公司
类型:发明
国别省市:德国;DE

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1