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)中校 ...
【技术保护点】
1.一种软件模块执行顺序监视方法,其特征在于:包括以下步骤:(1)软件初始化阶段:枚举软件模块各执行分支情况并根据执行顺序将每个软件模块地址依次排序;(2)全局校验值缓冲区获取:在执行软件模块前,计算步骤(1)中所有地址的校验值,存入全局校验值缓冲区;(3)本地校验值缓冲区获取:每个运行周期结束时,根据运行周期过程中实际所调用的软件模块按照执行顺序将其地址存储在数组中,并以步骤(2)中同样的方法计算数组的校验值,计算得到的校验值存储于本地校验值缓冲区;(4)对比判断:在全局校验值缓冲区中查询是否存在本地校验值缓冲区中的校验值。
【技术特征摘要】
1.一种软件模块执行顺序监视方法,其特征在于:包括以下步骤:(1)软件初始化阶段:枚举软件模块各执行分支情况并根据执行顺序将每个软件模块地址依次排序;(2)全局校验值缓冲区获取:在执行软件模块前,计算步骤(1)中所有地址的校验值,存入全局校验值缓冲区;(3)本地校验值缓冲区获取:每个运行周期结束时,根据运行周期过程中实际所调用的软件模块按照执行顺序将其地址存储在数组中,并以步骤(2)中同样的方法计算数组的校验值,计算得到的校验值存储于本地校验值缓冲区;(4)对比判断:在全局校验值缓冲区中查询是否存在本地校验值缓冲区中的校验值。2.根据权利要求1所述的监视方法,其特征在于:所述步骤(2)、(3)中校验值的计算方法采用CRC8、CRC16或CRC32。3.根据权利要求1所述的监视方法,其特征在于:所述监视方法通过建立软件模块执行顺序集合定义全局校验值缓冲区:将所有调用的软件模块各种执行分支情况集合至所述软件模块执行顺序集合中,所述软件模块执行顺序集合中的每个元素均按照软件模块执行顺序进行各软件模块地址依次排序,所述软件模块地址作为唯一的存储地址,计算软件模块执行顺序集合中的所有软件模块地址的校验...
【专利技术属性】
技术研发人员:陈闯,于金生,王鹏飞,钱玉君,
申请(专利权)人:南京科远自动化集团股份有限公司,大唐南京发电厂,
类型:发明
国别省市:江苏,32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。