一种软件模块执行顺序监视方法及监视系统技术方案

技术编号:20176504 阅读:61 留言:0更新日期:2019-01-23 00:19
本发明专利技术公开了一种软件模块执行顺序监视方法及监视系统,该监视方法包括以下步骤:(1)枚举软件模块各执行分支情况并根据执行顺序将每个软件模块地址依次排序;(2)在执行软件模块前,计算步骤(1)中所有地址的校验值,存入全局校验值缓冲区;(3)每运行一个周期后,根据运行实际所调用的软件模块按照执行顺序将其地址存储在数组中,并以步骤(2)中同样的方法计算数组的校验值,计算得到的校验值存储于本地校验值缓冲区;(4)对比判断:在全局校验值缓冲区中查询是否存在本地校验值缓冲区中的校验值。本发明专利技术监视方法方便移植和实施,同时又能高效地监视软件模块按照预期设计的顺序执行。

A Method and System for Monitoring the Execution Sequence of Software Modules

The invention discloses a software module execution sequence monitoring method and a monitoring system, which comprises the following steps: (1) enumerating the execution branches of the software module and sorting the addresses of each software module in turn according to the execution sequence; (2) before executing the software module, calculating the check values of all addresses in step (1) and storing them in the global check buffer; (3) each of the three steps. After running a cycle, according to the actual calling software module, the address is stored in the array according to the execution order, and the check value of the array is calculated by the same method in step (2). The calculated check value is stored in the local check value buffer; (4) Comparison judgment: query the global check value buffer for the existence of the check value buffer. Value. The monitoring method of the invention is convenient for transplantation and implementation, and can efficiently monitor the execution of software modules in accordance with the expected design sequence.

【技术实现步骤摘要】
一种软件模块执行顺序监视方法及监视系统
本专利技术属于软件安全
,特别涉及一种监视软件功能模块执行顺序的方法及技术。
技术介绍
以计算机软、硬件为基础的相关安全产品中,软件功能模块不能够按照预期执行会对产品的功能及安全性产生极大影响,甚至当这种故障长时间累积,却始终不被发现时,会导致安全产品不能按照预期处理突发的外部事件,进而可能会造成人身财产损失,因此对软件模块的执行顺序进行监控显得尤为重要,当探测到执行顺序与设计预期不一致时,能够及时的采取有效的安全应对措施,不但能保护产品本身安全,延长产品的生命周期,也保护了用户的人身财产安全。有很多程序执行顺序的监视方法,有的局限于嵌入式软件,有的是通过看门狗方式进行监视,但这些方法都具有一定的局限性。
技术实现思路
本专利技术的目的是为了解决现有技术中存在的缺陷,提供一种方便移植和实施,同时又能高效地监视软件模块按照预期设计的顺序执行的方法。为了达到上述目的,本专利技术提供了一种软件模块执行顺序监视方法,包括以下步骤:(1)软件初始化阶段:枚举软件模块各执行分支情况并根据执行顺序将每个软件模块地址依次排序;(2)全局校验值缓冲区获取:在执行软件模块前,计算步骤(1)中所有地址的校验值,存入全局校验值缓冲区;(3)本地校验值缓冲区获取:每个运行周期结束时,根据运行周期过程中实际所调用的软件模块按照执行顺序将其地址存储在数组中,并以步骤(2)中同样的方法计算数组的校验值,计算得到的校验值存储于本地校验值缓冲区;(4)对比判断:在全局校验值缓冲区中查询是否存在本地校验值缓冲区中的校验值。优选的,步骤(2)、(3)中校验值的计算方法采用CRC8、CRC16或CRC32。进一步的,上述监视方法通过建立软件模块执行顺序集合定义全局校验值缓冲区:将所有调用的软件模块各种执行分支情况集合至所述软件模块执行顺序集合中,所述软件模块执行顺序集合中的每个元素均按照软件模块执行顺序进行各软件模块地址依次排序,所述软件模块地址作为唯一的存储地址,计算软件模块执行顺序集合中的所有软件模块地址的校验值,存入全局校验值缓冲区。本专利技术还提供了一种软件模块执行顺序监视系统,该监视系统包括:软件模块执行顺序集合,所有调用的软件模块各执行分支情况的集合;全局校验值缓冲区,存储软件模块执行顺序集合的校验值;本地校验值缓冲区,存储执行所调用的软件模块的校验值;搜索模块,获取全局校验值缓冲区和本地校验值缓冲区中的校验值,进行比对判断,输出判断结果;状态指示模块,接收判断结果,输出至其他软件模块。进一步的,软件模块执行顺序集合中的每个元素均按照软件模块执行顺序将模块地址进行排序,该模块地址为唯一的物理存储地址。其中,全局校验值缓冲区的校验值计算方法如下:根据软件模块集合各种执行分支情况进行软件模块地址依次排序,采用CRC8、CRC16或CRC32算法计算所有地址的校验值。本地校验值缓冲区的校验值计算方法如下:每运行一个周期后,根据该次执行所有调用的软件模块按照执行顺序将其地址存储在数组中,以计算全局校验值缓冲区校验值同样的方法计算数组的校验值,存储于本地校验值缓冲区。本专利技术相比现有技术具有以下优点:本专利技术通过设定全局校验值缓冲区和本地校验值缓冲区进行所有软件模块地址的校验值和执行时调用软件模块地址的校验值比对,进行软件模块顺序正确性的确认,操作方便高效且方便移植,能够有效的监视软件模块的执行顺序。附图说明图1为本专利技术实施例公开的软件模块执行顺序监视系统结构示意图;图2为本专利技术实施例公开的全局的校验值缓冲区示意图;图3为本专利技术实施例公开的软件模块执行顺序集合的一种情况的示意图;图4为本专利技术实施例公开的本地的校验值缓冲区示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。如图1所示,为本专利技术一种软件模块执行顺序监视系统示意图,该监控系统包括:全局的校验值缓冲区100,其校验值来自软件模块执行顺序集合200,软件模块执行结束后计算校验值并存储到本地的校验值缓冲区500,搜索模块300根据全局的校验值缓冲区100和本地的校验值缓冲区500两个缓冲区中的校验值做出判断,其结果发送给状态指示模块400。如图2所示,为全局的校验值缓冲区示意图,其存储的校验值101根据软件模块的存储地址需具有唯一性,校验值根据软件模块集合各种执行分支情况进行各执行分支中软件模块地址依次排序,根据定义的校验算法(如CRC8、CRC16或CRC32等算法)计算所有地址的校验值;其大小102根据软件模块集合各种执行分支情况的个数来取值。如图3所示,软件模块执行顺序集合200的一种情况的示意图,当然还包含其他情况,不在本实施例中列出;其中202、203、205、206、207为软件模块;204为条件分支;201为软件模块起始点,207为软件模块结束点。其中,软件模块物理存储地址唯一;图3所示的软件执行流程包含两种执行顺序:第一种:Fun1,Fun2,Fun4,Fun5;第二种:Fun1,Fun2,Fun3,Fun5;上述两种执行顺序,按照模块地址排序,依据定义的校验算法计算校验值。软件模块集合200执行前,将上述两种情况的校验值存储到全局的校验值缓冲区100;软件模块集合200执行到达结束点图3所示207,将本次软件模块执行顺序校验值存储在图4所示本地的校验值缓冲区500内;同时将全局的校验值缓冲区100和本地的校验值缓冲区500中存储的校验值传送给搜索模块300。搜索模块300查询本地的校验值缓冲区500中的校验值是否在全局的校验值缓冲区100存在,进而判断软件模块执行顺序的结果。具体判断方法如下:若搜索模块300的返回值为真,则结果为如图3所示中的当前软件模块执行顺序正确;若搜索模块300的返回值为假,则结果为如图3所示中的当前软件模块执行顺序错误。上述判断结果传送给本专利技术所述的状态指示模块,作为其他软件模块的输入参数,便于采取相应的安全措施。可能的状态指示包括但不限于:控制台打印错误提示信息;弹出错误提示对话框;根据上述状态指示可能采取的措施但不限于:停止软件的运行,并报告错误警告;给控制对象发送停止指令;忽视该错误继续软件运行。本文档来自技高网...

【技术保护点】
1.一种软件模块执行顺序监视方法,其特征在于:包括以下步骤:(1)软件初始化阶段:枚举软件模块各执行分支情况并根据执行顺序将每个软件模块地址依次排序;(2)全局校验值缓冲区获取:在执行软件模块前,计算步骤(1)中所有地址的校验值,存入全局校验值缓冲区;(3)本地校验值缓冲区获取:每个运行周期结束时,根据运行周期过程中实际所调用的软件模块按照执行顺序将其地址存储在数组中,并以步骤(2)中同样的方法计算数组的校验值,计算得到的校验值存储于本地校验值缓冲区;(4)对比判断:在全局校验值缓冲区中查询是否存在本地校验值缓冲区中的校验值。

【技术特征摘要】
1.一种软件模块执行顺序监视方法,其特征在于:包括以下步骤:(1)软件初始化阶段:枚举软件模块各执行分支情况并根据执行顺序将每个软件模块地址依次排序;(2)全局校验值缓冲区获取:在执行软件模块前,计算步骤(1)中所有地址的校验值,存入全局校验值缓冲区;(3)本地校验值缓冲区获取:每个运行周期结束时,根据运行周期过程中实际所调用的软件模块按照执行顺序将其地址存储在数组中,并以步骤(2)中同样的方法计算数组的校验值,计算得到的校验值存储于本地校验值缓冲区;(4)对比判断:在全局校验值缓冲区中查询是否存在本地校验值缓冲区中的校验值。2.根据权利要求1所述的监视方法,其特征在于:所述步骤(2)、(3)中校验值的计算方法采用CRC8、CRC16或CRC32。3.根据权利要求1所述的监视方法,其特征在于:所述监视方法通过建立软件模块执行顺序集合定义全局校验值缓冲区:将所有调用的软件模块各种执行分支情况集合至所述软件模块执行顺序集合中,所述软件模块执行顺序集合中的每个元素均按照软件模块执行顺序进行各软件模块地址依次排序,所述软件模块地址作为唯一的存储地址,计算软件模块执行顺序集合中的所有软件模块地址的校验...

【专利技术属性】
技术研发人员:陈闯于金生王鹏飞钱玉君
申请(专利权)人:南京科远自动化集团股份有限公司大唐南京发电厂
类型:发明
国别省市:江苏,32

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

1