CN109254898B - 一种软件模块执行顺序监视方法及监视系统 - Google Patents
一种软件模块执行顺序监视方法及监视系统 Download PDFInfo
- Publication number
- CN109254898B CN109254898B CN201811089252.0A CN201811089252A CN109254898B CN 109254898 B CN109254898 B CN 109254898B CN 201811089252 A CN201811089252 A CN 201811089252A CN 109254898 B CN109254898 B CN 109254898B
- Authority
- CN
- China
- Prior art keywords
- check value
- software module
- execution sequence
- addresses
- value buffer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种软件模块执行顺序监视方法及监视系统,该监视方法包括以下步骤:(1)枚举软件模块各执行分支情况并根据执行顺序将每个软件模块地址依次排序;(2)在执行软件模块前,计算步骤(1)中所有地址的校验值,存入全局校验值缓冲区;(3)每运行一个周期后,根据运行实际所调用的软件模块按照执行顺序将其地址存储在数组中,并以步骤(2)中同样的方法计算数组的校验值,计算得到的校验值存储于本地校验值缓冲区;(4)对比判断:在全局校验值缓冲区中查询是否存在本地校验值缓冲区中的校验值。本发明监视方法方便移植和实施,同时又能高效地监视软件模块按照预期设计的顺序执行。
Description
技术领域
本发明属于软件安全技术领域,特别涉及一种监视软件功能模块执行顺序的方法及技术。
背景技术
以计算机软、硬件为基础的相关安全产品中,软件功能模块不能够按照预期执行会对产品的功能及安全性产生极大影响,甚至当这种故障长时间累积,却始终不被发现时,会导致安全产品不能按照预期处理突发的外部事件,进而可能会造成人身财产损失,因此对软件模块的执行顺序进行监控显得尤为重要,当探测到执行顺序与设计预期不一致时,能够及时的采取有效的安全应对措施,不但能保护产品本身安全,延长产品的生命周期,也保护了用户的人身财产安全。有很多程序执行顺序的监视方法,有的局限于嵌入式软件,有的是通过看门狗方式进行监视,但这些方法都具有一定的局限性。
发明内容
本发明的目的是为了解决现有技术中存在的缺陷,提供一种方便移植和实施,同时又能高效地监视软件模块按照预期设计的顺序执行的方法。
为了达到上述目的,本发明提供了一种软件模块执行顺序监视方法,包括以下步骤:
(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所示中的当前软件模块执行顺序错误。
上述判断结果传送给本发明所述的状态指示模块,作为其他软件模块的输入参数,便于采取相应的安全措施。
可能的状态指示包括但不限于:控制台打印错误提示信息;弹出错误提示对话框;
根据上述状态指示可能采取的措施但不限于:停止软件的运行,并报告错误警告;给控制对象发送停止指令;忽视该错误继续软件运行。
Claims (4)
1.一种软件模块执行顺序监视方法,其特征在于:包括以下步骤:
(1)软件初始化阶段:枚举软件模块各执行分支情况并根据执行顺序将每个软件模块地址依次排序;
(2)全局校验值缓冲区获取:在执行软件模块前,计算步骤(1)中所有地址的校验值,存入全局校验值缓冲区;
(3)本地校验值缓冲区获取:每个运行周期结束时,根据运行周期过程中实际所调用的软件模块按照执行顺序将其地址存储在数组中,并以步骤(2)中同样的方法计算数组的校验值,计算得到的校验值存储于本地校验值缓冲区;
(4)对比判断:在全局校验值缓冲区中查询是否存在本地校验值缓冲区中的校验值。
2.根据权利要求1所述的监视方法,其特征在于:所述步骤(2)、(3)中校验值的计算方法采用CRC8、CRC16或CRC32。
3.根据权利要求1所述的监视方法,其特征在于:所述监视方法通过建立软件模块执行顺序集合定义全局校验值缓冲区:将所有调用的软件模块各种执行分支情况集合至所述软件模块执行顺序集合中,所述软件模块执行顺序集合中的每个元素均按照软件模块执行顺序进行各软件模块地址依次排序,所述软件模块地址作为唯一的存储地址,计算软件模块执行顺序集合中的所有软件模块地址的校验值,存入全局校验值缓冲区。
4.一种软件模块执行顺序监视系统,其特征在于:所述监视系统包括:
软件模块执行顺序集合,所有调用的软件模块各执行分支情况的集合;
全局校验值缓冲区,存储软件模块执行顺序集合的校验值;
本地校验值缓冲区,存储执行所调用的软件模块的校验值;
搜索模块,获取全局校验值缓冲区和本地校验值缓冲区中的校验值,进行比对判断,输出判断结果;
状态指示模块,接收判断结果,输出至其他软件模块;
所述软件模块执行顺序集合中的每个元素均按照软件模块执行顺序将模块地址进行排序,该模块地址为唯一的物理存储地址;
所述全局校验值缓冲区的校验值计算方法如下:根据软件模块执行顺序集合各种执行分支情况进行软件模块地址依次排序,采用CRC8、CRC16或CRC32算法计算所有地址的校验值;
所述本地校验值缓冲区的校验值计算方法如下:每运行一个周期后,根据该周期内执行的所有调用的软件模块按照执行顺序将其地址存储在数组中,以计算全局校验值缓冲区校验值同样的方法计算数组的校验值,存储于本地校验值缓冲区。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811089252.0A CN109254898B (zh) | 2018-09-18 | 2018-09-18 | 一种软件模块执行顺序监视方法及监视系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811089252.0A CN109254898B (zh) | 2018-09-18 | 2018-09-18 | 一种软件模块执行顺序监视方法及监视系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109254898A CN109254898A (zh) | 2019-01-22 |
CN109254898B true CN109254898B (zh) | 2021-09-24 |
Family
ID=65048313
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811089252.0A Active CN109254898B (zh) | 2018-09-18 | 2018-09-18 | 一种软件模块执行顺序监视方法及监视系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109254898B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110187663B (zh) * | 2019-06-19 | 2020-11-03 | 浙江中控技术股份有限公司 | 监控方法和装置 |
CN110716423B (zh) * | 2019-11-18 | 2021-08-31 | 南京科远智慧科技集团股份有限公司 | 一种应用于三重冗余超速保护装置的自动巡检方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101840361A (zh) * | 2009-03-17 | 2010-09-22 | 恩益禧电子股份有限公司 | 程序验证装置及其方法 |
CN103377096A (zh) * | 2012-04-20 | 2013-10-30 | 苏州富欣智能交通控制有限公司 | 颗粒度可调的任务调度验证方法 |
CN104504329A (zh) * | 2014-12-30 | 2015-04-08 | 中国人民解放军装备学院 | 一种程序运行时处理器指令校验方法 |
CN106022107A (zh) * | 2015-10-30 | 2016-10-12 | 北京中电华大电子设计有限责任公司 | 一种程序执行完整性保护方法和系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080034350A1 (en) * | 2006-04-05 | 2008-02-07 | Conti Gregory R | System and Method for Checking the Integrity of Computer Program Code |
US20160357958A1 (en) * | 2015-06-08 | 2016-12-08 | Michael Guidry | Computer System Security |
-
2018
- 2018-09-18 CN CN201811089252.0A patent/CN109254898B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101840361A (zh) * | 2009-03-17 | 2010-09-22 | 恩益禧电子股份有限公司 | 程序验证装置及其方法 |
CN103377096A (zh) * | 2012-04-20 | 2013-10-30 | 苏州富欣智能交通控制有限公司 | 颗粒度可调的任务调度验证方法 |
CN104504329A (zh) * | 2014-12-30 | 2015-04-08 | 中国人民解放军装备学院 | 一种程序运行时处理器指令校验方法 |
CN106022107A (zh) * | 2015-10-30 | 2016-10-12 | 北京中电华大电子设计有限责任公司 | 一种程序执行完整性保护方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109254898A (zh) | 2019-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106789306B (zh) | 通信设备软件故障检测收集恢复方法和系统 | |
US8473789B2 (en) | Memory leak monitoring system and associated methods | |
US20160041848A1 (en) | Methods and Apparatuses for Determining a Leak of Resource and Predicting Usage Condition of Resource | |
CN109254898B (zh) | 一种软件模块执行顺序监视方法及监视系统 | |
KR20110064971A (ko) | 추적점 기반의 고장 진단/복구 시스템 및 그 방법 | |
US11797420B2 (en) | Debug support program storage medium, debug support apparatus, and debug support method | |
CN111090593A (zh) | 确定崩溃归属的方法、装置、电子设备及存储介质 | |
CN109309594B (zh) | 通信设备电源故障分析的方法、装置、设备及存储介质 | |
CN117237678B (zh) | 用电行为异常检测方法、装置、设备及存储介质 | |
CN113487182B (zh) | 设备健康状态评估方法、装置、计算机设备和介质 | |
CN110704313A (zh) | Java虚拟机内存泄漏检测方法及装置 | |
CN114548280A (zh) | 故障诊断模型的训练、故障诊断方法及电子设备 | |
CN117055533A (zh) | 一种车载系统故障处理方法、装置、设备及介质 | |
CN111159051B (zh) | 死锁检测方法、装置、电子设备及可读存储介质 | |
CN109597728B (zh) | 测试设备的控制方法及装置、计算机可读存储介质 | |
CN114625106B (zh) | 车辆诊断的方法、装置、电子设备及存储介质 | |
CN111124809A (zh) | 一种服务器传感器系统的测试方法及装置 | |
CN109634796A (zh) | 一种计算机的故障诊断方法、装置及系统 | |
CN107273291B (zh) | 一种处理器调试方法及系统 | |
CN114872554A (zh) | 电池模组的故障处理方法、装置、电子设备及存储介质 | |
CN100369009C (zh) | 使用系统管理中断信号的监控系统及方法 | |
CN115096604A (zh) | 一种车辆故障状态检测方法及装置 | |
CN112799911A (zh) | 一种节点健康状态检测方法、装置、设备及存储介质 | |
CN112685424B (zh) | 发动机故障存储的处理方法和装置 | |
CN111352754A (zh) | 一种数据存储检错纠错方法及数据存储装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: No.1266 qingshuiting East Road, moling street, Jiangning District, Nanjing City, Jiangsu Province Applicant after: Nanjing Keyuan Intelligent Technology Group Co.,Ltd. Applicant after: NANJING ELECTRIC POWER PLANT OF DATANG Group Address before: No.1266 qingshuiting East Road, moling street, Jiangning District, Nanjing City, Jiangsu Province Applicant before: NANJING SCIYON AUTOMATION GROUP Co.,Ltd. Applicant before: NANJING ELECTRIC POWER PLANT OF DATANG Group |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |