[发明专利]防程序因指针跑飞而令程序系统崩溃的软件方法有效
申请号: | 201710799875.6 | 申请日: | 2017-09-07 |
公开(公告)号: | CN107665113B | 公开(公告)日: | 2020-12-04 |
发明(设计)人: | 柳星瑞 | 申请(专利权)人: | 广东博立科技有限公司 |
主分类号: | G06F8/30 | 分类号: | G06F8/30 |
代理公司: | 厦门市新华专利商标代理有限公司 35203 | 代理人: | 徐勋夫 |
地址: | 523000 广东省东莞*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 程序 指针 系统 崩溃 软件 方法 | ||
本发明公开一种防程序因指针跑飞而令程序系统崩溃的软件方法,包括以下步骤:提供程序→程序访问→路径回查→程序执行→程序退出,其中,程序访问是通过用取每级子程序地址的逐级加地址门径的方法,逐级建立结点;路径回查是指程序直到最终执行子程序之前,就回溯历经的子程序各个地址是否正确,再决定是否运行该执行子程序代码;程序退出是指程序执行完毕后,开始逐级释放之前结点,原路返回。本发明方法可在整个嵌入式系统内对所有子程序进行类似加密的运行同时,完成了系统的数据保护,从而让每次子程序代码的执行都是系统的真实响应,而不是程序指针被干扰所到的代码所执行位置,这样实现程序稳定可靠运行,有效防止程序因指针跑飞而令程序系统崩溃。
技术领域
本发明涉及嵌入式编程软件设计领域技术,尤其是指一种防程序因指针跑飞而令程序系统崩溃的软件方法。
背景技术
嵌入性软件系统的数据校验及多重数据备份时,传统的防程序跑飞的方法是发现RAM数据乱的时候,重新从EEPROM读取。这种方式,存在致命漏洞之一是发现RAM数据乱的时候,再次读取的EEPROM或FLASH里面的数据时会再次被干扰时,程序会陷入反复的读取EEPROM循环,带来编程时的宝贵的RAM、EEPROM或FLASH的开销加大。
目前最可靠的数据保护方案,就是加硬件的加密芯片,执行某子程序前,需要跟硬件加密芯片交互认证密钥,程序再执行变更数据或做动作等操作。然而,嵌入式程序运行在各种电子产品上,周围环境千变万化、错综复杂,仅靠硬件防护也是无济于事。
发明内容
有鉴于此,本发明针对现有技术存在之缺失,其主要目的是提供一种防程序因指针跑飞而令程序系统崩溃的软件方法。
为实现上述目的,本发明采用如下之技术方案:
一种防程序因指针跑飞而令程序系统崩溃的软件方法,包括以下步骤:
(1)提供程序:程序结构包括有多层子程序;
(2)程序访问:程序每进一级子程序都要记住上一级入口地址、及本子程序入口地址,也就是建立NestCallStage数据结构之数组之每个结点,随着嵌套子程序的层层递进,NestCallStage数据结构之数组的每个单元会形成每个层级子程序的前层子程序入口地址、当前层入口地址、下一层子程序入口地址;
(3)路径回查和程序执行:当执行层级内子程序具体内容前,要逐级向上核查:上一层的next指针,就是下一层的last指针,一直核查到程序的复位处地址,这样都正确后,再执行子程序内的内容;若不正确,说明指针混乱,则把程序强行复位、避免错误执行;
(4)程序退出:程序执行完毕后,开始逐级释放NestCallStage数据结构数据之每个结点,把之前的各层子程序结点地址逐个回检,原路返回。
本发明与现有技术相比具有明显的优点和有益效果,具体而言,由上述技术方案可知,程序访问是通过用取每级子程序地址的逐级加地址门径的方法,直到最终执行子程序之前,回溯历经的子程序地址是否正确,再决定是否运行该子程序代码,可在整个嵌入式系统内对所有子程序进行类似加密的运行,同时完成了系统的数据保护,让每次子程序代码的执行都是系统想要的。这样,用简洁绝对可靠的方式,最终使系统完成的每个子程序都是系统的真实响应,而不是程序指针被干扰所到的代码所执行位置;相比传统方法,本发明可以推广用在全部嵌入式电子产品的程序系统内部,用简单的方式实现程序稳定可靠运行,有效防止程序因指针跑飞而令程序系统崩溃。
为更清楚地阐述本发明的结构特征和功效,下面结合附图与具体实施例来对本发明进行详细说明。
附图说明
图1是本发明之实施例的程序访问模拟示意图。
图2是本发明之实施例的程序访问层级的数据结构。
图3是本发明之实施例的建立结点程序。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东博立科技有限公司,未经广东博立科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710799875.6/2.html,转载请声明来源钻瓜专利网。