CN116955060A - 软件执行流程监控方法、监控系统及存储介质 - Google Patents
软件执行流程监控方法、监控系统及存储介质 Download PDFInfo
- Publication number
- CN116955060A CN116955060A CN202310541155.5A CN202310541155A CN116955060A CN 116955060 A CN116955060 A CN 116955060A CN 202310541155 A CN202310541155 A CN 202310541155A CN 116955060 A CN116955060 A CN 116955060A
- Authority
- CN
- China
- Prior art keywords
- instruction
- software
- detection engine
- hardware detection
- execution
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 85
- 238000012544 monitoring process Methods 0.000 title claims abstract description 60
- 238000001514 detection method Methods 0.000 claims abstract description 96
- 230000002159 abnormal effect Effects 0.000 claims abstract description 24
- 230000005856 abnormality Effects 0.000 claims abstract description 10
- 238000013507 mapping Methods 0.000 claims description 53
- 238000012545 processing Methods 0.000 claims description 16
- 239000000523 sample Substances 0.000 claims description 9
- 238000002372 labelling Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 7
- 230000008447 perception Effects 0.000 description 5
- 239000012634 fragment Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
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/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/32—Monitoring with visual or acoustical indication of the functioning of the machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种软件执行流程监控方法、监控系统及存储介质,软件执行流程监控方法应用于监控系统中的硬件探测引擎,硬件探测引擎和处理器耦接,包括:硬件探测引擎在软件执行过程中,捕捉软件运行的指令执行流;硬件探测引擎根据软件运行过程中的上下文信息,对指令执行流进行合理性判断,并在判断结果异常时,向处理器发送异常提示信息。通过上述方式,本申请提供的软件执行流程监控方法可以减少处理器的资源消耗,且实现对软件执行流程的监控。
Description
技术领域
本申请涉及软件执行流程监控技术领域,特别是软件执行流程监控方法、监控系统及存储介质。
背景技术
常见的防止软件执行流程与预设流程不一致的方法是,通过在软件对应的程序中插入检测代码的方式实现,虽然该方式可以有效防止软件执行流程与预设流程不一致,但资源消耗较大,且不适合实际的部署应用。
发明内容
本申请提供一种软件执行流程监控方法、监控系统及存储介质,通过对指令执行流进行监控的方式,可以减少处理器的资源消耗,且实现对软件执行流程的监控。
为了解决上述技术问题,本申请采用的一个技术方案是:提供一种软件执行流程的监控方法,应用于监控系统中的硬件探测引擎,硬件探测引擎和处理器耦接,包括:硬件探测引擎在软件执行过程中,捕捉软件运行的指令执行流;硬件探测引擎根据软件运行过程中的上下文信息,对指令执行流进行合理性判断,并在判断结果异常时,向处理器发送异常提示信息。
其中,硬件探测引擎根据软件运行过程中的上下文信息,对指令执行流进行合理性判断,包括:硬件探测引擎利用指令执行流中的当前指令、下一指令、根据软件运行过程中的上下文信息,预测出下一指令与预期执行路径的偏离程度;硬件探测引擎对偏离程度进行合理性判断。
其中,硬件探测引擎中存储有关系映射表,关系映射表为指令标签与软件中的程序地址的关系映射表,指令标签基于编译器对软件中的指令进行标签化处理得到。
其中,硬件探测引擎对偏离程度进行合理性判断之后,包括:硬件探测引擎从关系映射表中确定指令执行流中的指令对应的指令标签;硬件探测引擎对指令标签进行哈希处理,得到完整执行路径哈希值;硬件探测引擎利用完整执行路径哈希值和标准执行哈希值进行比对,得到比对结果;基于比对结果确定判断结果。
其中,硬件探测引擎对指令标签进行哈希处理,得到完整执行路径哈希值,包括:对所有指令标签按照指令执行流排序;对排序后的所有指令标签进行哈希处理,得到完整执行路径哈希值。
其中,关系映射表为指令标签与软件中的特定程序地址的关系映射表,指令标签基于编译器对软件中的指令进行标签化处理得到,特定程序为在执行过程中不能通过所述编译器进行优化和任意跳转的程序。
其中,标准执行哈希值是利用特定程序接收正常数据和异常数据的执行流程,得到覆盖特定程序的所有执行路径,并对所有执行路径进行哈希运算得到的。
其中,软件中的特定程序包括多个,每一特定程序对应一关系映射表;硬件探测引擎从关系映射表中确定指令执行流中的指令对应的指令标签之前,包括:硬件探测引擎利用特定程序确定对应关系映射表。
其中,硬件探测引擎从关系映射表中确定指令执行流中的指令对应的指令标签,包括:硬件探测引擎从解密后的关系映射表中确定指令执行流中的指令对应的指令标签;其中,利用硬件加解密引擎对关系映射表解密。
为了解决上述技术问题,本申请采用的另一技术方案是:提供一种软件执行流程的监控系统,该监控系统包括处理器和硬件探测引擎。
其中,硬件探测引擎与处理器耦接,用于在软件执行过程中,捕捉软件运行的指令执行流;硬件探测引擎根据软件运行过程中的上下文信息,对指令执行流进行合理性判断,并在判断结果异常时,向处理器发送异常提示信息。
为了解决上述技术问题,本申请采用的另一技术方案是:提供一种计算机可读存储介质,该计算机可读存储介质用于存储计算机程序,计算机程序在被处理器执行时用于实现上述的软件执行流程的监控方法。
本申请的有益效果是:区别于现有技术,本申请提供的软件执行流程的监控方法应用于监控系统中的硬件探测引擎,该硬件探测引擎和处理器耦接,硬件探测引擎在软件执行过程中,捕捉软件运行的指令执行流,进而根据软件运行过程中的上下文信息,对指令执行流进行合理性判断,并在判断结果异常时,向处理器发送异常提示信息的方式,利用额外的硬件探测引擎对指令执行流进行合理性判断,无需使用处理器的资源进行相关操作,进而节省处理器的资源消耗。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:
图1是本申请提供的软件执行流程监控方法第一实施例的流程示意图;
图2是本申请提供的关系映射表一实施例的示意图;
图3是本申请提供的确定判断结果一实施例的流程示意图;
图4是本申请提供的软件执行流程监控方法第二实施例的流程示意图;
图5是本申请提供的软件执行流程监控系统一实施例的结构示意图;
图6是本申请提供的电子设备一实施例的结构示意图;
图7是本申请提供的计算机可读存储介质一实施例的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参阅图1,图1是本申请提供的软件执行流程监控方法第一实施例的流程示意图,该方法可以应用于监控系统中的硬件探测引擎,硬件探测引擎和处理器耦接,包括:
步骤11:硬件探测引擎在软件执行过程中,捕捉软件运行的指令执行流。
在一些实施例中,监控系统中的硬件探测引擎通过总线与处理器进行通信连接,处理器可以是CPU(Central Processing Unit,中央处理器)。处理器可以是一个独立的芯片器件,而本申请的技术方案也可以是SOC(System on Chip,系统级芯片),即本申请的监控系统可以在一个芯片内部实现,也可以部署到一个PCB(Printed Circuit Board,印制电路板)上,此时可以通过几个单独的芯片组成一个系统。
可以理解,软件通常是利用不同的程序按照相关逻辑构成。每一程序实际对应了一系列指令。另外,软件包含的各程序都拥有一个唯一的用户标识(如ID)和数字签名,用户标识可以用于区分不同的程序,数字签名可以验证程序是否为目标厂商发布。硬件探测引擎在软件执行过程中,可以利用数字签名确定程序的完整性,进而执行与程序对应的指令。这些指令的执行顺序可以称为指令执行流,指令执行流包括若干个按照执行顺序排列的指令。
步骤12:硬件探测引擎根据软件运行过程中的上下文信息,对指令执行流进行合理性判断,并在判断结果异常时,向处理器发送异常提示信息。
在一些实施例中,硬件探测引擎利用指令执行流中的当前指令、下一指令、根据软件运行过程中的上下文信息,预测出下一指令与预期执行路径的偏离程度,接着硬件探测引擎对偏离程度进行合理性判断。其中,合理性判断可以具体按照偏离程度确定是否属于合理偏离范围,若是,则下一指令的偏离程度属于合理偏离,若否,则下一指令的偏离程度属于不合理偏离。
具体地,硬件探测引擎中包含预先加载的指令流程感知模型,该指令执行流程感知模型可以通过实时采集指令的标签信息,以利用指令执行流中的当前指令、下一指令、根据软件运行过程中的上下文信息,预测出下一条指令与预期执行路径的偏离程度,其中,偏离程度分为未偏离和已偏离。若为已偏离,则表明此时结果是异常的,硬件探测引擎将会向处理器发出异常警告,以使处理器进行相应的操作。如,处理器可以根据异常警告再次对对应的指令进行合理性判断,以验证硬件探测引擎判断的正确性。
其中,指令流程感知模型可以是使用针对特定程序执行的所有正常数据和异常数据进行训练得到。特定程序可以是敏感程序,正常数据为敏感程序被执行时能正常使用、进行相应操作的数据,异常数据为敏感程序被执行时不能正常使用、不能正常进行相应操作的数据。
其中,上下文信息指的是软件运行时处理器的状态信息、权限信息和/或堆栈信息等。
在其他实施例中,指令流程感知模型可以是使用针对所有程序执行的所有正常数据和异常数据进行训练得到。
在一些实施例中,在处理器运行下一条指令时,硬件探测引擎会同步捕捉到对应的指令,以及硬件探测引擎会将当前指令、当前指令的地址、下一条指令、下一条指令的地址和软件运行过程中程序的输入数据等上下文信息提供给流程感知模型,该流程感知模型会预测下一条指令是否在合理的执行路径上。判断下一条指令是否在合理的执行路径,可以通过下一条指令与预期执行路径之间的偏离程度确定,即通过偏离程序进行合理性判断。
另外,硬件探测引擎可以基于白名单机制或黑名单机制确定合理的执行路径和不合理的执行路径。其中,白名单机制包含流程感知模型重点关注的合理路径,即可以通过白名单机制确定合理的执行路径;黑名单机制包含流程感知模型重点关注的不合理路径,即可以通过黑名单机制确定不合理的执行路径。
另外,硬件探测引擎中存储有关系映射表,该关系映射表是预先加载至硬件探测引擎中的,如图2所示,关系映射表包括指令标签和地址两部分内容,关系映射表为指令标签与软件中的程序地址的关系映射表,指令标签基于编译器对软件中的指令进行标签化处理得到。换言之,指令与指令标签之间存在关联,指令标签与地址之间存在关联。
其中,每条指令的标签都包括指令的索引值,而与每一指令对应的标签包含的内容有索引值和指令类型,索引值用于将指令与标签进行关联。如,指令1对应的标签内容是索引1、指令类型1;指令2对应的标签内容是索引2、指令类型2。值得注意,不同指令之间的指令类型根据实际情况确定,可以相同,也可以不同。
在一应用场景中,在常用软件中,软件的某些功能会被设计成一个lib库,也可能只是一些代码片段,但无论是lib库还是代码片段,都有可能是对执行流程敏感的代码,即敏感程序/特定程序。其中,lib库包括静态链接lib库和动态链接dll库,静态链接lib库包含软件所有的代码,通过源代码文件编译生成,而动态链接dll库是dll文件中所有函数在dll文件中地址的说明。通过在总线上联接硬件探测引擎,硬件探测引擎可以在软件执行过程中,实时捕捉正在运行的指令执行流,以对捕捉到的指令执行流进行相应操作。
在软件开发过程中,需要使用专用编译器对特定程序进行编译,专用编译器在编译过程中可以对指令进行标签化处理,得到指令标签,同时可以得到地址和指令标签之间的映射表。其中,特定程序指的是对执行流程敏感的lib库或软件中的代码片段,如软件A中包含的一段程序逻辑是对执行流程敏感的、软件执行过程中不能通过所述编译器进行优化和任意跳转的程序;指令指的是处理器能识别的所有指令,处理器通过读取指令完成运算,且每一指令都附带有一个标签;地址指的是软件程序的加载地址,也是软件烧录至硬件设备(如手机)时,软件所对应的程序所在的地址,该地址在软件程序构建编译时就已经定义好,且烧录至硬件之后不可以随意更改。另,在软件运行或调用特定程序时,处理器从软件程序的加载地址获取指令。
特定程序在加载至系统过程中,需要将关系映射表加载至硬件探测引擎中,以作为硬件探测引擎判断指令执行流合理性的依据/资源。
在一些实施例中,参阅图3,硬件探测引擎对偏离程度进行合理性判断之后,包括以下流程:
步骤31:硬件探测引擎从关系映射表中确定指令执行流中的指令对应的指令标签。
在软件开发过程中,会对特定程序和关系映射表进行加密处理,得到加密的关系映射表和特定程序。进行加密处理涉及的加密算法可以是对称加密算法、非对称加密算法或其他,这里不作限制。
在一些实施例中,硬件加解密引擎对关系映射表解密,硬件探测引擎可以从解密后的关系映射表中确定指令执行流中的指令对应的指令标签。
在特定程序加载至系统的过程中,需要将关系映射表加载至硬件探测引擎中,而在特定程序加载过程中,需要先对特定程序和关系映射表进行解密并验证签名,以确保特定程序和关系映射表的机密性和完整性。
在其他实施例中,监控系统包含硬件加解密引擎,该硬件加解密引擎通过总线与硬件探测引擎、处理器和关系映射表存储区耦接(如硬件加解密引擎通过总线与CPU、硬件探测引擎和存储区联接,其中存储区存储有关系映射表),硬件加解密引擎可以用于对特定程序和关系映射表进行加密、解密处理。
步骤32:硬件探测引擎对指令标签进行哈希处理,得到完整执行路径哈希值。
在一些实施例中,特定程序在被执行时,硬件探测引擎可以根据地址在关系映射表中提取相应的指令标签,并根据指令执行流计算提取的指令标签的哈希值。在特定程序执行完毕时,硬件探测引擎会得到运行过程中所有指令按照指令执行流计算得到的完整执行路径哈希值。
另外,特定程序严格限制了指令的执行顺序,在特定程序中,实际的执行路径是有限的,实际的执行路径对应的范围可以通过对特定程序输入大量有效边界数据、无效测试数据进行训练得到。
在一些实施例中,对所有指令标签按照指令执行流排序,进而对排序后的所有指令标签进行哈希处理,得到完整执行路径哈希值。如,存在指令1、指令2、指令3和指令4,其中,“1”、“2”、“3”、“4”为对应指令的指令标签,此时对应的指令执行流是“4123”,此时需要对指令1、指令2、指令3和指令4按照“4123”进行排序,以对排序后的指令4、指令1、指令2和指令3进行哈希处理,得到完整执行路径哈希值。
在一些实施例中,关系映射表为指令标签与软件中的特定程序地址的关系映射表,指令标签基于编译器对软件中的指令进行标签化处理得到,特定程序为在执行过程中不能通过所述编译器进行优化和任意跳转的程序。
步骤33:硬件探测引擎利用完整执行路径哈希值和标准执行哈希值进行比对,得到比对结果。
在一些实施例中,硬件探测引擎中内嵌的指令流程感知模型,在接收正常数据和异常数据的指令执行流时,需要覆盖特定程序中所有的执行路径,并对所有可能的执行路径进行哈希运算,以得到标准执行哈希值。
即,标准执行哈希值是利用特定程序接收正常数据和异常数据的执行流程,得到覆盖特定程序的所有执行路径,并对所有执行路径进行哈希运算得到的。
硬件探测引擎可以对完整执行路径哈希值和标准执行哈希值进行比对,得到比对结果。
步骤34:基于比对结果确定判断结果。
若比对结果显示没有找到与完整执行路径哈希值对应的标准执行哈希值,则表明对指令执行流进行合理性判断得到的判断结果为异常,硬件探测引擎将向处理器发送异常提示信息。若可以找到与完整执行路径哈希值对应的标准执行哈希值,则表明判断结果正常。
在上述方式中,先利用指令执行流确定出偏离程度的方式,进行局部合理性判断,然后再执行完成后,从全局出发对实际的指令执行流进行整体判断,以此确保能够监控指令执行全过程,提升监控的准确性。
区别于现有技术,本申请提供的软件执行流程监控方法应用于监控系统中的硬件探测引擎,而硬件探测引擎与处理器耦接,硬件探测引擎可以在软件执行过程中,捕捉软件运行的指令执行流,接着根据软件运行过程中的上下文信息,对指令执行流进行合理性判断,并在判断结果异常时,向处理器发送异常提示信息。利用额外的硬件探测引擎进行指令执行流进行合理性判断,无需使用处理器的资源进行相关操作,可以减少资源消耗,且在执行流程与预设执行流程不一致时,可以生成相应提示/警告信息,以防止软件执行流程与预设执行流程不一致的问题,提升软件执行的安全性。
在一些实施例中,软件中的特定程序包括多个,每一特定程序对应一关系映射表。参阅图4,图4是本申请提供的软件执行流程监控方法第二实施例的流程示意图,应用于监控系统中的硬件探测引擎,硬件探测引擎与处理器耦接,该方法包括:
步骤41:硬件探测引擎在软件执行过程中,捕捉软件运行的指令执行流。
步骤42:硬件探测引擎根据软件运行过程中的上下文信息,对指令执行流进行合理性判断。
步骤41至步骤42可以与上述任一实施例具备相同或相似技术特征,这里不再赘述。
步骤43:硬件探测引擎利用特定程序确定对应关系映射表。
在软件开发过程中,利用专用编译器对特定程序进行编译,在编译过程中,可以对特定程序中的指令进行标签化处理,得到指令标签,以及生成地址与指令标签之间的关系映射表。硬件探测引擎可以从关系映射表中确定与指令执行流中指令对应的指令标签。如,与指令1对应的地址是地址1,则可以根据地址1确定指令1对应的指令标签是索引1和指令类型1。
因软件中的特定程序包括多个,每一特定程序对应一关系映射表,且每一特定程序都会有一个唯一用户标识(如ID)和数字签名,可以根据程序的唯一用户标识区分不同程序,根据数字签名去验证程序是否为厂商发布的程序,即首先根据唯一用户标识和数字签名确定出特定程序,然后利用特定程序确定出对应的关系映射表。
步骤44:硬件探测引擎从关系映射表中确定指令执行流中的指令对应的指令标签。
步骤45:硬件探测引擎对指令标签进行哈希处理,得到完整执行路径哈希值。
步骤46:硬件探测引擎利用完整执行路径哈希值和标准执行哈希值进行比对,得到比对结果。
步骤47:基于比对结果确定判断结果。
步骤48:在判断结果异常时,向处理器发送异常提示信息。
步骤44至步骤48可以上述任一实施例具备相同或相似技术特征,这里不再赘述。
区别于现有技术,本申请提供的软件执行流程监控方法应用于监控系统中的硬件探测引擎,该硬件探测引擎与处理器耦接,硬件探测引擎可以通过对指令执行流进行监控的方式,实现对软件执行流程监控,向处理器发送异常提示信息的方式,利用额外的硬件探测引擎进行指令执行流进行合理性判断,无需使用处理器的资源进行相关操作,进而节省处理器的资源消耗。且可以防止软件执行流程与预设执行流程不一致的问题,提升软件执行的安全性和软件执行的性能。
参阅图5,图5是本申请提供的软件执行流程监控系统一实施例的结构示意图,该监控系统50包括处理器501和硬件探测引擎502。其中,硬件探测引擎502与处理器501耦接,用于在软件执行过程中,捕捉软件运行的指令执行流;硬件探测引擎502根据软件运行过程中的上下文信息,对指令执行流进行合理性判断,并在判断结果异常时,向处理器501发送异常提示信息。
其中,处理器501是CPU;硬件探测引擎502可以是指令探测引擎。
另外,监控系统还可以包括硬件加解密引擎503,该硬件加解密引擎503通过总线与处理器501、硬件探测引擎502和关系映射表耦接,可以用于对关系映射表进行加密处理和解密处理,以确保关系映射表的完整性。
监控系统50包含的所有组件,可以集成在一块芯片内部,即是一个SOC,也可以扩展到PCB板上联接多个器件,这里不作限制。
本申请提供的软件执行流程监控系统可以用于实现上述任一实施例的软件执行流程监控方法,这里不再赘述。
参阅图6,图6是本申请提供的电子设备一实施例的结构示意图,该电子设备60包括存储器601和处理器501,存储器601用于存储计算机程序,处理器501用于执行计算机程序以实现上述任一实施例的软件执行流程监控方法,这里不再赘述。
参阅图7,图7是本申请提供的计算机可读存储介质一实施例的结构示意图,该计算机可读存储介质70用于存储计算机程序701,计算机程序701在被处理器执行时用于实现上述任一实施例的软件执行流程监控方法,这里不再赘述。
综上所述,本申请提供的软件执行流程监控方法可以应用于软件执行流程监控系统,本申请涉及的软件执行流程监控方法、监控系统可以实现对软件执行流程进行监控,且通过硬件探测引擎进行监控的方式,向处理器发送异常提示信息,利用额外的硬件探测引擎进行指令执行流进行合理性判断,无需使用处理器的资源进行相关操作,进而节省处理器的资源消耗,合适实际部署应用。
以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种软件执行流程的监控方法,其特征在于,应用于监控系统中的硬件探测引擎,所述硬件探测引擎和处理器耦接,所述方法包括:
所述硬件探测引擎在软件执行过程中,捕捉所述软件运行的指令执行流;
所述硬件探测引擎根据软件运行过程中的上下文信息,对所述指令执行流进行合理性判断,并在判断结果异常时,向所述处理器发送异常提示信息。
2.根据权利要求1所述的监控方法,其特征在于,所述硬件探测引擎根据软件运行过程中的上下文信息,对所述指令执行流进行合理性判断,包括:
所述硬件探测引擎利用所述指令执行流中的当前指令、下一指令、根据软件运行过程中的上下文信息,预测出所述下一指令与预期执行路径的偏离程度;
所述硬件探测引擎对所述偏离程度进行合理性判断。
3.根据权利要求2所述的监控方法,其特征在于,所述硬件探测引擎中存储有关系映射表,所述关系映射表为指令标签与所述软件中的程序地址的关系映射表,所述指令标签基于编译器对所述软件中的指令进行标签化处理得到;
所述硬件探测引擎对所述偏离程度进行合理性判断之后,包括:
所述硬件探测引擎从关系映射表中确定所述指令执行流中的指令对应的指令标签;
所述硬件探测引擎对所述指令标签进行哈希处理,得到完整执行路径哈希值;
所述硬件探测引擎利用所述完整执行路径哈希值和标准执行哈希值进行比对,得到比对结果;
基于所述比对结果确定所述判断结果。
4.根据权利要求3所述的监控方法,其特征在于,所述硬件探测引擎对所述指令标签进行哈希处理,得到完整执行路径哈希值,包括:
对所有指令标签按照所述指令执行流排序;
对排序后的所有指令标签进行哈希处理,得到完整执行路径哈希值。
5.根据权利要求3所述的监控方法,其特征在于,所述关系映射表为指令标签与所述软件中的特定程序地址的关系映射表,所述指令标签基于所述编译器对所述软件中的指令进行标签化处理得到,所述特定程序为在执行过程中不能通过所述编译器进行优化和任意跳转的程序。
6.根据权利要求5所述的监控方法,其特征在于,所述标准执行哈希值是利用所述特定程序接收正常数据和异常数据的执行流程,得到覆盖特定程序的所有执行路径,并对所有执行路径进行哈希运算得到的。
7.根据权利要求3所述的监控方法,其特征在于,所述软件中的特定程序包括多个,每一特定程序对应一所述关系映射表;
所述硬件探测引擎从关系映射表中确定所述指令执行流中的指令对应的指令标签之前,包括:
所述硬件探测引擎利用所述特定程序确定对应所述关系映射表。
8.根据权利要求3所述的监控方法,其特征在于,所述硬件探测引擎从关系映射表中确定所述指令执行流中的指令对应的指令标签,包括:
所述硬件探测引擎从解密后的所述关系映射表中确定所述指令执行流中的指令对应的指令标签;其中,利用硬件加解密引擎对所述关系映射表解密。
9.一种软件执行流程的监控系统,其特征在于,所述监控系统包括:
处理器;
硬件探测引擎,与所述处理器耦接,用于在软件执行过程中,捕捉所述软件运行的指令执行流;所述硬件探测引擎根据软件运行过程中的上下文信息,对所述指令执行流进行合理性判断,并在判断结果异常时,向所述处理器发送异常提示信息。
10.一种计算机可读储存介质,其特征在于,所述计算机可读储存介质用于存储计算机程序,所述计算机程序在被处理器执行时用于实现如权利要求1-8任一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2023102122996 | 2023-02-24 | ||
CN202310212299.6A CN116185778A (zh) | 2023-02-24 | 2023-02-24 | 软件执行流程监控方法、监控系统及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116955060A true CN116955060A (zh) | 2023-10-27 |
Family
ID=86448642
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310212299.6A Withdrawn CN116185778A (zh) | 2023-02-24 | 2023-02-24 | 软件执行流程监控方法、监控系统及存储介质 |
CN202310541155.5A Pending CN116955060A (zh) | 2023-02-24 | 2023-05-12 | 软件执行流程监控方法、监控系统及存储介质 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310212299.6A Withdrawn CN116185778A (zh) | 2023-02-24 | 2023-02-24 | 软件执行流程监控方法、监控系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN116185778A (zh) |
-
2023
- 2023-02-24 CN CN202310212299.6A patent/CN116185778A/zh not_active Withdrawn
- 2023-05-12 CN CN202310541155.5A patent/CN116955060A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
CN116185778A (zh) | 2023-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101978377B (zh) | 用于控制受保护操作模式期间的系统访问的方法和装置 | |
US7730545B2 (en) | Test access control for secure integrated circuits | |
TWI575397B (zh) | 利用運行期代理器及動態安全分析之應用程式逐點保護技術 | |
US9361170B2 (en) | Method for checking data consistency in a system on chip | |
US20070136728A1 (en) | Computer readable medium in which program is stored, computer data signal embodied in carrier wave, information processing apparatus that executes program, and program control method for executing program | |
CN109271789B (zh) | 恶意进程检测方法、装置、电子设备及存储介质 | |
Afrose et al. | CryptoAPI-Bench: A comprehensive benchmark on Java cryptographic API misuses | |
CN106815110A (zh) | 一种加速卡测试方法及装置 | |
CN107301082A (zh) | 一种实现操作系统完整性保护的方法和装置 | |
CN114462044A (zh) | 一种基于污点分析的uefi固件漏洞静态检测方法及装置 | |
CN104036193B (zh) | 一种应用程序的本地跨域漏洞检测方法及装置 | |
CN105791250A (zh) | 应用程序检测方法及装置 | |
CN112287357B (zh) | 一种针对嵌入式裸机系统的控制流验证方法与系统 | |
CN107368713B (zh) | 保护软件的方法和安全组件 | |
CN116414722B (zh) | 模糊测试处理方法、装置、模糊测试系统及存储介质 | |
CN117370296A (zh) | 一种车机日志文件获取方法、系统及车载终端 | |
McIntyre et al. | Trustworthy computing in a multi-core system using distributed scheduling | |
CN117272308A (zh) | 软件安全测试方法、装置、设备、存储介质及程序产品 | |
CN116955040A (zh) | 一种芯片读写性能测试方法、系统、设备及存储介质 | |
TWI403895B (zh) | 計算機的自動測試系統及其測試方法 | |
CN116955060A (zh) | 软件执行流程监控方法、监控系统及存储介质 | |
CN103530555B (zh) | 防止程序执行恶意操作的方法和装置 | |
CN111367505A (zh) | 一种JavaScript源代码保密方法、装置、设备及存储介质 | |
CN116541847A (zh) | 一种应用程序的安全检测方法及装置 | |
CN114741700A (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 |