CN117909160A - 基于物联网的固件崩溃分析方法及装置 - Google Patents
基于物联网的固件崩溃分析方法及装置 Download PDFInfo
- Publication number
- CN117909160A CN117909160A CN202410308925.6A CN202410308925A CN117909160A CN 117909160 A CN117909160 A CN 117909160A CN 202410308925 A CN202410308925 A CN 202410308925A CN 117909160 A CN117909160 A CN 117909160A
- Authority
- CN
- China
- Prior art keywords
- internet
- firmware
- snapshot
- things
- crash
- 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.)
- Granted
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 88
- 238000000034 method Methods 0.000 claims abstract description 76
- 230000003993 interaction Effects 0.000 claims abstract description 64
- 230000008569 process Effects 0.000 claims abstract description 34
- 230000003068 static effect Effects 0.000 claims abstract description 10
- 238000005094 computer simulation Methods 0.000 claims description 52
- 230000006399 behavior Effects 0.000 claims description 27
- 239000000872 buffer Substances 0.000 claims description 16
- 230000015556 catabolic process Effects 0.000 claims description 15
- 238000013507 mapping Methods 0.000 claims description 14
- 238000012544 monitoring process Methods 0.000 claims description 13
- 238000004422 calculation algorithm Methods 0.000 claims description 11
- 238000009826 distribution Methods 0.000 claims description 5
- 230000006855 networking Effects 0.000 claims 1
- 238000004904 shortening Methods 0.000 abstract description 3
- 230000010365 information processing Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 13
- 230000002452 interceptive effect Effects 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 11
- 238000003860 storage Methods 0.000 description 11
- 238000004590 computer program Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000004088 simulation Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000007547 defect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000011835 investigation Methods 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请实施例提供一种基于物联网的固件崩溃分析方法及装置,涉及计算机信息处理技术领域,其中方法包括:在物联网设备运行过程中,记录与物联网设备的交互数据和快照信息;在物联网设备崩溃后,加载物联网设备的固件,基于快照信息还原固件在当前快照时和后续的状态信息;基于还原的固件实时的状态信息,自动化推理硬件反馈和中断事件,以还原固件从当前快照到崩溃之间的执行流;通过动态程序分析和静态程序分析的方式分析还原的执行流,确定崩溃成因。本申请实施例自动化对物联网系统崩溃成因进行分析,不仅极大地简化了系统调试的复杂性,而且显著减轻了人工调试的工作负担,为缩短故障排除的时间窗口和提高系统可维护性等方面提供了有力支持。
Description
技术领域
本申请属于计算机信息处理技术领域,更具体地,涉及一种基于物联网的固件崩溃分析方法及装置。
背景技术
相关技术中,崩溃分析技术可分为三类:基于硬件辅助的崩溃分析技术;基于核心转储的崩溃分析技术;基于实时监控的崩溃分析技术。
基于硬件辅助的分析技术中,利用硬件特性,例如因特尔处理器追踪(IntelProcessor Trace, Intel PT)和基于进阶精简指令集(Reduced Instruction SetComputer, RISC)机器(Advanced RISC Machine, ARM)架构的嵌入式跟踪宏单元(EembededTrace Macrocell, ETM),在崩溃点之前透明地记录指令执行信息,并基于此进行崩溃后的程序分析。该技术尽管十分有效,但许多嵌入式设备缺乏必要的硬件功能,无法应用于物联网领域。虽然ARM的芯片架构支持ETM,但为了减少硅片面积,物联网芯片制造商很少将其实装在生产用的芯片上。即使在带有ETM的芯片上,也缺乏可以支持设备内处理的保存跟踪信息的专用缓冲区(例如嵌入式跟踪缓冲区(Embedded Trace Buffer, ETB)、微跟踪缓冲区(Micro Trace Buffer, MTB)或嵌入式跟踪路由器(Embedded Trace Router,ETR))。物联网设备必须通过外部调试器才能获取ETM收集的跟踪信息,因此该技术无法实装在生产环境中的物联网设备。
对于核心转储的崩溃分析技术,CN115756934A中记载了一种应用崩溃分析方法及系统,首先获取崩溃应用的转储文件和内存映射文件并解析得到崩溃相关信息;其次基于当前崩溃特征及预设的多个崩溃类型分别对应的崩溃特征集,确定其所属的目标崩溃类型;最后利用崩溃类型,确定对应的调试参考信息来指导辅助分析方向。但是,该技术存在以下问题;第一,在崩溃分类后仍然需要极大的人工量来实现对崩溃的分析;第二,依赖人为规定的漏洞分类,出现多种类型组合的漏洞,和新型漏洞的时候无法进行合理的分类。同时,由于该技术面向通用计算机程序进行设计,当适用于物联网领域时会面临以下挑战;第一,尽管一些物联网实时操作系统能够实现崩溃转储的功能,但由于物联网设备资源的有限性,崩溃转储中记录的信息过少,无法满足分析的需求;第二,由于物联网设备对于中断的高度依赖,这种随机事件会导致转储文件中的特征具有随机性,影响分类的结果;第三,由于微控制单元(Microcontroller Unit, MCU)缺乏故障检测机制(例如分段错误),从崩溃点到漏洞成因点的距离通常很远,大大增加了特征识别和分析的障碍。
针对基于实时监控的崩溃分析技术,CN103034575A记载了另一种通过监控程序运行的崩溃分析方法和装置,首先在终端的目标中设置监控点,在程序运行中实时记录监控点的数据;当崩溃发生的时候,获取监控点的数据和参数并存储在镜像文件中,监控点的参数包括待测目标和终端中监控点的参数;分析人员在崩溃后获取镜像文件并定位崩溃的原因。但是,该技术无法适用于物联网环境,物联网设备缺乏足够的硬件资源,无法容纳一个监控程序实时记录程序的状态信息,也无法使用大量的内存来存储生成的监控点数据。
因此,如何实现物联网环境的固件崩溃分析,是亟待解决的问题。
发明内容
针对相关技术的缺陷,本申请的目的在于提供一种基于物联网的固件崩溃分析方法及装置,旨在实现物联网环境的固件崩溃分析。
第一方面,本申请实施例提供一种基于物联网的固件崩溃分析方法,应用于基于物联网的固件崩溃分析装置,包括:
在物联网设备运行过程中,记录与物联网设备的交互数据和快照信息;
在物联网设备崩溃后,加载物联网设备的固件,基于快照信息还原固件在当前快照时和后续的状态信息;
基于还原的固件实时的状态信息,自动化推理硬件反馈和中断事件,以还原固件从当前快照到崩溃之间的执行流;
通过动态程序分析和静态程序分析的方式分析还原的执行流,确定崩溃成因。
第二方面,本申请实施例还提供一种基于物联网的固件崩溃分析方法,应用于设置在边缘网关中的数据记录模块,包括:
在物联网设备运行过程中,记录与物联网设备的交互数据和快照信息;
在物联网设备崩溃后,发送交互数据和快照信息给动态仿真模块,以使动态仿真模块还原物联网设备的固件在当前快照时和后续的状态信息,以及还原固件从当前快照到崩溃之间的执行流。
在一些实施例中,记录与物联网设备的交互数据和快照信息,包括:
在链路层记录与物联网设备的交互数据,交互数据包括第一交互数据和第二交互数据,第一交互数据是物联网设备从传感器接收并发送给边缘网关的交互数据,第二交互数据是边缘网关发送给物联网设备的交互数据;
在记录的数据量占满边缘网关中物联网设备对应的缓冲区的情况下,记录物联网设备发送的快照信息,快照信息包含内存中有读写权限的数据段和寄存器段。
第三方面,本申请实施例还提供一种基于物联网的固件崩溃分析方法,应用于动态仿真模块,包括:
接收数据记录模块记录的物联网设备运行过程中边缘网关与物联网设备的交互数据和快照信息;
在物联网设备崩溃后,加载物联网设备的固件,基于快照信息还原固件在当前快照时和后续的状态信息,以及还原固件从当前快照到崩溃之间的执行流。
在一些实施例中,基于快照信息还原固件在当前快照时和后续的状态信息,包括:
确定物联网设备中固件的地址空间;
基于地址空间将固件映射到仿真器中,并加载固件的内容;
解析快照各部分在物联网设备中的内存分布;
将快照数据段分段加载至仿真器单元中的对应地址,并覆盖与固件的地址空间冲突的部分;将快照寄存器段依次加载至仿真器中的对应寄存器;
从快照覆盖的程序计数器指向的指令位置开始执行,并利用映射好的内存和寄存器来获取快照时固件的运行栈;
通过启发式递归反汇编算法反汇编程序计数器当前指向的指令;
利用软件模拟的指令执行来模拟固件的硬件执行过程。
在一些实施例中,还原固件从当前快照到崩溃之间的执行流,包括:
获取硬件行为推理模块自动化推理的硬件反馈和中断事件,还原固件从当前快照到崩溃之间的执行流;
向崩溃成因分析模块发送还原的执行流。
第四方面,本申请实施例还提供一种基于物联网的固件崩溃分析方法,应用于硬件行为推理模块,包括:
基于动态仿真模块还原的物联网设备固件实时的状态信息,自动化推理硬件反馈和中断事件;
将硬件反馈和中断事件推送至动态仿真模块,以还原固件从当前快照到崩溃之间的执行流。
在一些实施例中,自动化推理硬件反馈和中断事件,包括:
在接收到动态仿真模块发送的内存映射寄存器的读取指令的情况下,基于寄存器的地址自动化区分硬件反馈,并利用动态推理算法推测反馈值;
对动态仿真模块的状态信息进行实时监控,在固件处理完数据后自动化触发中断事件。
在一些实施例中,基于寄存器的地址自动化区分硬件反馈,包括:
在寄存器的地址为外部输入寄存器的情况下,从物联网设备对应的缓冲区获取记录的数据;
在寄存器的地址为内部输入寄存器的情况下,基于动态仿真模块的状态信息自动化推理硬件反馈。
第五方面,本申请实施例还提供一种基于物联网的固件崩溃分析装置,包括:
数据记录模块,用于在物联网设备运行过程中,记录与物联网设备的交互数据和快照信息;
动态仿真模块,用于在物联网设备崩溃后,加载物联网设备的固件,基于快照信息还原固件在当前快照时和后续的状态信息;
硬件行为推理模块,用于基于还原的固件实时的状态信息,自动化推理内存映射寄存器的读写和中断事件,以还原固件从当前快照到崩溃之间的执行流;
崩溃成因分析模块,用于通过动态程序分析和静态程序分析的方式分析还原的执行流,确定崩溃成因。
第六方面,本申请实施例还提供一种基于物联网的固件崩溃分析装置,包括:
数据记录模块,用于在物联网设备运行过程中,记录与物联网设备的交互数据和快照信息;
数据发送模块,用于在物联网设备崩溃后,发送交互数据和快照信息给动态仿真模块,以使动态仿真模块还原物联网设备的固件在当前快照时和后续的状态信息,以及还原固件从当前快照到崩溃之间的执行流。
第七方面,本申请实施例还提供一种基于物联网的固件崩溃分析装置,包括:
数据接收模块,用于接收数据记录模块记录的物联网设备运行过程中边缘网关与物联网设备的交互数据和快照信息;
动态仿真模块,用于在物联网设备崩溃后,加载物联网设备的固件,基于快照信息还原固件在当前快照时和后续的状态信息,以及还原固件从当前快照到崩溃之间的执行流。
第八方面,本申请实施例还提供一种基于物联网的固件崩溃分析装置,包括:
硬件行为推理模块,用于基于动态仿真模块还原的物联网设备固件实时的状态信息,自动化推理硬件反馈和中断事件;
数据发送模块,用于将硬件反馈和中断事件推送至动态仿真模块,以还原固件从当前快照到崩溃之间的执行流。
第九方面,本申请实施例还提供一种电子设备,包括:至少一个存储器,用于存储程序;至少一个处理器,用于执行存储器存储的程序,当存储器存储的程序被执行时,处理器用于执行第一方面或第二方面或第三方面或第四方面所描述的方法。
第十方面,本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,当计算机程序在处理器上运行时,使得处理器执行第一方面或第二方面或第三方面或第四方面所描述的方法。
第十一方面,本申请实施例还提供一种计算机程序产品,当计算机程序产品在处理器上运行时,使得处理器执行第一方面或第二方面或第三方面或第四方面所描述的方法。
总体而言,通过本申请所构思的以上技术方案与相关技术相比,具有以下有益效果:
(1)通过解耦记录服务与物联网设备,有效减轻了记录操作对物联网设备性能和资源的影响,为物联网系统的可扩展性和效率提供了重要的优化;同时为物联网设备的大规模部署和长期运行提供了更为可行和可持续的解决方案,并为后续的崩溃分析在物联网领域的应用开启了新的可能性。
(2)通过记录物联网设备崩溃前的信息,成功排除了在物联网设备发生崩溃后获取其状态信息会得到不佳信息的难题。这允许获取设备崩溃发生时追溯到快照的状态信息,为系统故障排查提供了关键性的先验数据,弥补了传统崩溃分析在获取设备崩溃前一个阶段内相关信息方面的不足。
(3)利用高精度仿真器,对于那些无法直接记录的硬件反馈和随机事件,借助程序分析方法进行自动化的还原;显著减少了人工查找硬件手册的工作负担,极大地提高了自动化水平;通过在仿真环境中还原硬件反馈和随机事件,使得分析过程能够更加高效地获取崩溃执行中的动态信息。
(4)自动化对物联网系统崩溃成因进行分析,不仅极大地简化了系统调试的复杂性,而且显著减轻了人工调试的工作负担。开发人员能够更加迅速、精确地定位和理解系统崩溃的根本原因,从而提高了系统的可靠性和稳定性。这种自动化崩溃分析的方法为缩短故障排除的时间窗口以及提高系统可维护性等方面提供了有力支持。
附图说明
为了更清楚地说明本申请或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的物联网的架构示意图;
图2是本申请实施例提供的基于物联网的固件崩溃分析装置的结构示意图之一;
图3是本申请实施例提供的基于物联网的固件崩溃分析方法的流程示意图之一;
图4是本申请实施例提供的基于物联网的固件崩溃分析方法的流程示意图之二;
图5是本申请实施例提供的基于物联网的固件崩溃分析方法的流程示意图之三;
图6是本申请实施例提供的基于物联网的固件崩溃分析方法的流程示意图之四;
图7是本申请实施例提供的基于物联网的固件崩溃分析方法的流程示意图之五;
图8是本申请实施例提供的基于物联网的固件崩溃分析装置的结构示意图之二;
图9是本申请实施例提供的基于物联网的固件崩溃分析装置的结构示意图之三;
图10是本申请实施例提供的基于物联网的固件崩溃分析装置的结构示意图之四;
图11是本申请实施例提供的电子设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
图1是本申请实施例提供的物联网的架构示意图,如图1所示,整体架构包括:物联网设备、边缘网关和厂商云。边缘网关与多个物联网设备以及厂商云连接,作为物联网设备和厂商云通信的中间节点,负责管理物联网设备,实现本申请实施例提供的基于物联网的固件崩溃分析方法中的数据记录服务。厂商云负责实现后续的仿真和崩溃分析。
图2是本申请实施例提供的基于物联网的固件崩溃分析装置的结构示意图之一,如图2所示,该装置至少包括:
数据记录模块201,用于在物联网设备运行过程中,记录与物联网设备的交互数据和快照信息;
动态仿真模块202,用于在物联网设备崩溃后,加载物联网设备的固件,基于快照信息还原固件在当前快照时和后续的状态信息;
硬件行为推理模块203,用于基于还原的固件实时的状态信息,自动化推理硬件反馈和中断事件,以还原固件从当前快照到崩溃之间的执行流;
崩溃成因分析模块204,用于通过动态程序分析和静态程序分析的方式分析还原的执行流,确定崩溃成因。
其中,数据记录模块201设置在边缘网关中,动态仿真模块202、硬件行为推理模块203和崩溃成因分析模块204设置在厂商云中。
本申请实施例提供的基于物联网的固件崩溃分析,涉及到固件运行时系统的工作流程、崩溃后固件的加载、指令的仿真、硬件行为的推理、崩溃执行流的还原和崩溃成因的分析等。
图3是本申请实施例提供的基于物联网的固件崩溃分析方法的流程示意图之一,如图3所示,该方法的执行主体为基于物联网的固件崩溃分析装置,该方法至少包括以下步骤(Step):
S301、在物联网设备运行过程中,记录与物联网设备的交互数据和快照信息。
具体地,边缘设备在物联网设备运行过程中,实时记录与物联网设备的交互数据和快照信息。边缘网关与物联网设备的交互数据,具体包括边缘设备发送给物联网设备的数据和边缘设备接收到的物联网设备从传感器接收后转发的数据。快照信息是指数据存储的物联网设备某一时刻的状态记录。
S302、在物联网设备崩溃后,加载物联网设备的固件,基于快照信息还原固件在当前快照时和后续的状态信息。
具体地,当物联网设备发生崩溃之后,厂商云自动获取边缘网关记录的交互数据和快照信息,利用快照信息和物联网设备的可执行固件文件,来自动化的还原崩溃的执行流。在当前阶段,主要是将固件还原至当前快照记录时的状态信息,并持续进行后续的仿真还原。
S303、基于还原的固件实时的状态信息,自动化推理内存映射寄存器的读写和中断事件,以还原固件从当前快照到崩溃之间的执行流。
具体地,对于无法直接记录的硬件反馈和随机事件,需要在S302的基础上进行补全。基于S302中获取到的动态的状态信息,可以结合通用反馈算法自动化推理硬件的行为,还可以推理出触发中断的合理时机,从而在S202还原的动态流程中自动填入硬件反馈和触发中断等。
S304、通过动态程序分析和静态程序分析的方式分析还原的执行流,确定崩溃成因。
具体地,程序分析是指以某种语言书写的程序为对象,对其内部的运作流程进行分析,自动分析计算程序的正确性以及高效性等属性的过程。本申请实施例中主要针对物联网设备的程序崩溃之后,自动化地对崩溃成因进行分析。
通过前述步骤已经实现了固件从快照记录开始到崩溃发生之间的执行流的还原,采用一定的程序分析技术对还原的执行流进行分析,即可得到崩溃成因。
程序分析技术可以分为动态程序分析技术和静态程序分析技术。动态程序分析是指通过运行程序或者在程序运行期间进行分析;静态程序分析是指在不执行程序的情况下进行分析。可以考虑动态程序分析和静态程序分析的有效结合来进行崩溃分析,或者采用单一的程序分析技术来进行崩溃分析。
在实际执行中,动态程序分析技术可以采用符号执行技术。符号执行技术可以通过分析程序来得到特定代码区域执行的输入。即,使用符号执行分析一个程序时,该程序会使用符号值作为输入,而非一般执行程序时使用的具体值。在达到目标代码时,分析器可以得到相应的路径约束,然后通过约束求解器来得到可以触发目标代码的具体值。动态符号执行具有混合具体执行和符号执行的能力。
还原固件从当前快照到崩溃之间的执行流之后,可以获取到固件执行的指令序列、控制流的跳转目标和选择、内存访问指令的位置、地址和目标寄存器等信息,从而对崩溃执行流进行分析。
分析内容具体可以包括崩溃分析的起始点、崩溃与对应输入的关系等。利用动态仿真过程中的固件动态运行信息,通过动态程序分析可以挖掘固件执行中的错误指令来获取执行出错的位置;通过外部输入对程序的影响位置可以获取崩溃与对应输入的关系;还可以自动化地生成导致崩溃的错误输入模式等。各类分析内容最后可组合推送至展示页面供技术人员查阅。
本申请实施例提供的基于物联网的固件崩溃分析方法,自动化对物联网系统崩溃成因进行分析,不仅极大地简化了系统调试的复杂性,而且显著减轻了人工调试的工作负担。开发人员能够更加迅速、精确地定位和理解系统崩溃的根本原因,从而提高了系统的可靠性和稳定性。这种自动化崩溃分析的方法为缩短故障排除的时间窗口以及提高系统可维护性等方面提供了有力支持。
图4是本申请实施例提供的基于物联网的固件崩溃分析方法的流程示意图之二,如图4所示,该方法的执行主体为设置在边缘网关中的数据记录模块,该方法至少包括以下步骤:
S401、在物联网设备运行过程中,记录与物联网设备的交互数据和快照信息。
S402、在物联网设备崩溃后,发送交互数据和快照信息给动态仿真模块。
在一些实施例中,S401中记录与物联网设备的交互数据,具体包括:
在链路层记录与物联网设备的交互数据,该交互数据包括第一交互数据和第二交互数据,第一交互数据是物联网设备从传感器接收并发送给边缘网关的交互数据,第二交互数据是边缘网关发送给物联网设备的交互数据。
在一些实施例中,S401中记录快照信息,具体包括:
在记录的数据量占满边缘网关中物联网设备对应的缓冲区的情况下,记录物联网设备发送的快照信息,该快照信息包含内存中有读写权限的数据段和寄存器段。
具体地,边缘网关在固件运行时记录信息,其中记录的与物联网设备的交互数据,包括边缘网关接收的物联网设备从传感器接收并转发的第一交互数据,和边缘网关发送给物联网设备的第二交互数据。
物联网设备开始运行之后,用户使用厂商云经由边缘网关向物联网设备下发一些指令和请求。在数据传输过程中,边缘网关为物联网设备分配独立的缓冲区,记录边缘网关与物联网设备的交互数据。
其中,对于接收到的物联网设备发送的第一交互数据,包括环境数据等,边缘网关解包后进行记录;对于发送给物联网设备的第二交互数据,为了确保记录的数据与物联网设备接收到的数据(排除例如网络栈等加入的数据)之间的对应关系,边缘网关在固件从硬件接收数据的同一层记录。
可选地,交互数据可以通过数据报文的形式传输。进一步地,用户使用厂商云经由边缘网关下发的指令和请求,都是以传输协议所要求的报文格式进行传输的,具体的报文格式依据链路层的报文结构确定。这种统一的报文格式可以使得边缘网关记录的数据和物联网设备接收到的数据达成一致。因此,第一交互数据和第二交互数据的记录可以都在链路层进行,从而保证第一交互数据和第二交互数据之间的对应关系,使得边缘网关记录的数据和物联网设备接收的数据达成一致。
当记录与物联网设备的交互数据量占满边缘网关为物联网设备分配的整个缓冲区的时候,触发物联网设备通过打快照的方式记录下一次接收数据之前的固件状态并发生给边缘网关。边缘网关接收该快照并替换掉上一个快照,然后清空缓冲区,重新记录与该物联网设备新的交互数据。
在一些实施例中,快照信息主要包含内存中有读写权限的数据段和寄存器段。
具体地,为了快照可以在分析过程中可以被合理的加载,快照的格式中包括多个段,每个段的首部包含该段的内存首地址和长度。快照被物联网设备包装成对应协议的报文格式,由于报文的长度限制,快照被分割成多个报文,逐个被发送给边缘网关进行记录。
本申请实施例提供的基于物联网的固件崩溃分析方法,通过解耦记录服务与物联网设备,由边缘网关在固件运行时记录信息,有效减轻了记录操作对物联网设备性能和资源的影响,为物联网系统的可扩展性和效率提供了重要的优化,为物联网设备的大规模部署和长期运行提供了更为可行和可持续的解决方案,同时为后续的崩溃分析在物联网领域的应用开启了新的可能性。同时,通过记录物联网设备崩溃前的信息,成功排除了在物联网设备发生崩溃后获取其状态信息会得到不佳信息的难题。这允许获取设备崩溃发生时追溯到快照的状态信息,为系统故障排查提供了关键性的先验数据,弥补了传统崩溃分析在获取设备崩溃前一个阶段内相关信息方面的不足。
图5是本申请实施例提供的基于物联网的固件崩溃分析方法的流程示意图之三,如图5所示,该方法的执行主体为设置在厂商云中的动态仿真模块,该方法至少包括以下步骤:
S501、接收数据记录模块记录的物联网设备运行过程中边缘网关与物联网设备的交互数据和快照信息。
S502、在物联网设备崩溃后,加载物联网设备的固件,基于快照信息还原固件在当前快照时和后续的状态信息,以及还原固件从当前快照到崩溃之间的执行流。
在一些实施例中,S502中还原固件在当前快照时和后续的状态信息,具体包括:
确定物联网设备中固件的地址空间;
基于地址空间将固件映射到仿真器中,并加载固件的内容;
解析快照各部分在物联网设备中的内存分布;
将快照数据段分段加载至仿真器中的对应地址,并覆盖与固件的地址空间冲突的部分;将快照寄存器段依次加载至仿真器中的对应寄存器;
从快照覆盖的程序计数器指向的指令位置开始执行,并利用映射好的内存和寄存器来获取当前快照时固件的运行栈;
通过启发式递归反汇编算法反汇编程序计数器当前指向的指令;
利用软件模拟的指令执行来模拟固件的硬件执行过程。
具体地,当物联网设备在执行过程中出现崩溃时,边缘网关可以通过心跳包或者超时机制等发现物联网设备出现崩溃行为,并定位到该物联网设备的快照信息和缓冲区记录的交互数据,发送至厂商云中的动态仿真模块。
该物联网设备的内存结构可以由厂商云从固件中获取并模拟出相应的地址空间,当确定出固件在网络设备中实际放置的地址空间之后,可以将固件映射到仿真器中,并将固件的内容加载进去。
进一步地,动态仿真模块解析边缘网关记录的快照信息,解析快照各部分在物联网设备中的内存分布。针对数据段,将快照的不同数据段拆开,分段依次加载至仿真器中的对应位置;对于和原有的固件内存地址冲突的部分,直接进行覆盖。针对寄存器段,将所有记录的寄存器值依次写入仿真器中对应的寄存器。至此,还原了固件在快照时的状态信息。
进一步地,仿真器从快照覆盖的程序计数器指向的指令位置开始执行,并利用映射好的内存和栈帧寄存器来获取快照时程序的运行栈并自动使用加载好快照的内存片段。
进一步地,动态仿真模块使用启发式递归反汇编算法尝试反汇编当前程序计数器指向的指令,使用软件模拟的指令执行来精确仿真固件的执行状态。
在一些实施例中,S502中还原固件从当前快照到崩溃之间的执行流,包括:
获取硬件行为推理模块自动化推理的硬件反馈和中断事件,还原固件从当前快照到崩溃之间的执行流;
向崩溃成因分析模块发送还原的执行流。
具体地,动态仿真模块通过从数据记录模块获取的交互数据和快照信息等,可以还原固件在当前快照时和后续的状态信息,并且还可以将还原的状态信息推送给其它模块。但仿真器还原的状态信息中缺乏一些内容,包括硬件反馈和随机事件。因此利用硬件行为推理模块对缺失的内容进行补全,硬件行为推理模块利用动态仿真模块还原实时的状态信息自动化推理硬件反馈和中断事件,并将推理的硬件反馈和中断事件反馈给动态仿真模块。动态仿真模块持续对固件进行模拟还原,直至出现崩溃。动态仿真模块利用自身还原的状态信息和硬件行为推理模块反馈的硬件反馈和中断事件,从而可以还原得到快照到崩溃发生之间的完整执行流,然后将还原的执行流推送到崩溃成因分析模块进行崩溃分析。
图6是本申请实施例提供的基于物联网的固件崩溃分析方法的流程示意图之四,如图6所示,该方法的执行主体为设置在厂商云中的硬件行为推理模块,该方法至少包括以下步骤:
S601、基于动态仿真模块还原的物联网设备固件实时的状态信息,自动化推理硬件反馈和中断事件;
S602、将硬件反馈和中断事件推送至动态仿真模块,以还原固件从当前快照到崩溃之间的执行流。
在一些实施例中,S601中自动化推理硬件反馈,具体包括:
在接收到动态仿真模块发送的内存映射寄存器的读取指令的情况下,基于寄存器的地址自动化区分硬件反馈,并利用动态推理算法推测反馈值。
在一些实施例中,基于寄存器的地址自动化区分硬件反馈,包括:
在寄存器的地址为外部输入寄存器的情况下,从物联网设备对应的缓冲区获取记录的数据;
在寄存器的地址为内部输入寄存器的情况下,自动化推理硬件反馈返回给动态仿真模块。
图7是本申请实施例提供的基于物联网的固件崩溃分析方法的流程示意图之五,如图7所示,动态仿真模块通过启发式递归反汇编算法汇编程序计数器当前指向的指令,当执行读取指令且读取目的地址是硬件相关的内存映射寄存器时,对应的指令信息会推送给硬件行为推理模块。当硬件行为推理模块接收到动态仿真模块发送的内存映射寄存器的读取指令的情况下,基于寄存器的地址自动化推理硬件反馈。
硬件行为推理模块根据寄存器地址判断是外部输入还是内部输入。例如,物联网设备使用串行外设接口(Serial Peripheral Interface, SPI)来获取输入,该外设接口共有14个寄存器,其中一个寄存器负责接收外部数据,一个寄存器负责发送数据,其它寄存器负责保存外设状态,控制外设行为。因为系统只关注读取指令,所以发送数据寄存器不会被访问。
对于剩下的寄存器,如果固件读取的是外部输入寄存器,例如数据接受寄存器,硬件行为推理模块就从缓冲区顺序的获取记录的数据。如果固件读取的是内部输入寄存器,也即外部输入寄存器以外的其它寄存器,硬件行为推理模块就会获取动态仿真模块的状态信息,自动化生成合理的硬件反馈。这些硬件反馈会推送给动态仿真模块,动态仿真模块会放入读取指令的目的寄存器。
在一些实施例中,S601中自动化推理中断事件,具体包括:
对动态仿真模块的状态信息进行实时监控,在固件处理完数据后自动化触发中断事件。
具体地,硬件行为推理模块通过监控固件的运行状态,当固件处理完数据后,例如进入等待状态或低功耗状态时(例如固件进入arch_cpu_idle 函数时)触发中断,进行下一次的数据输入和处理流程。
固件在硬件行为推理模块推理出的硬件反馈和中断事件作用下不断运行,直至在仿真器中出现崩溃。
本申请实施例提供的基于物联网的固件崩溃分析方法,利用高精度仿真器,对于那些无法直接记录的硬件反馈和随机事件,借助程序分析方法进行自动化的还原;显著减少了人工查找硬件手册的工作负担,极大地提高了自动化水平;通过在仿真环境中还原硬件反馈和随机事件,使得分析过程能够更加高效地获取崩溃执行中的动态信息。
图8是本申请实施例提供的基于物联网的固件崩溃分析装置的结构示意图之二,如图8所示,该装置至少包括:
数据记录模块801,用于在物联网设备运行过程中,记录与物联网设备的交互数据和快照信息;
数据发送模块802,用于在物联网设备崩溃后,发送交互数据和快照信息给动态仿真模块,以使动态仿真模块还原物联网设备的固件在当前快照时和后续的状态信息,以及还原固件从当前快照到崩溃之间的执行流。
在一些实施例中,数据记录模块801具体包括:
数据单元,用于在链路层记录与物联网设备的交互数据,交互数据包括第一交互数据和第二交互数据,第一交互数据是物联网设备从传感器接收并发送给边缘网关的交互数据,第二交互数据是边缘网关发送给物联网设备的交互数据;
快照单元,用于在记录的数据量占满边缘设备中物联网设备对应的缓冲区的情况下,记录物联网设备发送的快照信息,快照信息包含内存中有读写权限的数据段和寄存器段。
图9是本申请实施例提供的基于物联网的固件崩溃分析装置的结构示意图之三,如图9所示,该装置至少包括:
数据接收模块901,用于接收数据记录模块记录的物联网设备运行过程中边缘网关与物联网设备的交互数据和快照信息;
动态仿真模块902,用于在物联网设备崩溃后,加载物联网设备的固件,基于快照信息还原固件在当前快照时和后续的状态信息,以及还原固件从当前快照到崩溃之间的执行流。
在一些实施例中,动态仿真模块902具体包括:
内存管理单元,用于确定目标物联网设备中固件的地址空间;
加载器单元,用于基于地址空间将固件映射到仿真器中,并加载固件的内容;
内存管理单元,还用于解析快照各部分在目标物联网设备中的内存分布;
加载器单元,还用于将快照数据段分段加载至仿真器单元中的对应地址,并覆盖与固件的地址空间冲突的部分;将快照寄存器段依次加载至仿真器单元中的对应寄存器;
仿真器单元,从快照覆盖的程序计数器指向的指令位置开始执行,并利用映射好的内存和寄存器来获取快照时固件的运行栈;
反汇编单元,用于通过启发式递归反汇编算法反汇编程序计数器当前指向的指令;
指令软件模拟单元,用于利用软件模拟的指令执行来模拟固件的硬件执行过程。
在一些实施例中,动态仿真模块902具体包括:
获取单元,用于获取硬件行为推理模块自动化推理的硬件反馈和中断事件,还原固件从当前快照到崩溃之间的执行流;
发送单元,用于向崩溃成因分析模块发送还原的执行流。
图10是本申请实施例提供的基于物联网的固件崩溃分析装置的结构示意图之四,如图10所示,该装置至少包括:
硬件行为推理模块1001,用于基于动态仿真模块还原的物联网设备固件实时的状态信息,自动化推理硬件反馈和中断事件;
数据发送模块1002,用于将硬件反馈和中断事件推送至动态仿真模块,以还原固件从当前快照到崩溃之间的执行流。
在一些实施例中,硬件行为推理模块1001具体包括:
硬件反馈推理单元,用于在接收到动态仿真模块发送的内存映射寄存器的读取指令的情况下,基于寄存器的地址自动化区分硬件反馈,并利用动态推理算法推测反馈值;
中断触发推理单元,用于对动态仿真模块的状态信息进行实时监控,在固件处理完数据后自动化触发中断事件。
在一些实施例中,硬件反馈推理单元具体用于:
在寄存器的地址为外部输入寄存器的情况下,从物联网设备对应的缓冲区获取记录的数据;
在寄存器的地址为内部输入寄存器的情况下,基于动态仿真模块的状态信息自动化推理硬件反馈。
可以理解的是,上述各个单元/模块的详细功能实现可参见前述方法实施例中的介绍,在此不做赘述。
应当理解的是,上述装置用于执行上述实施例中的方法,装置中相应的程序模块,其实现原理和技术效果与上述方法中的描述类似,该装置的工作过程可参考上述方法中的对应过程,此处不再赘述。
基于上述实施例中的方法,本申请实施例提供了一种电子设备。该设备可以包括:至少一个用于存储程序的存储器和至少一个用于执行存储器存储的程序的处理器。其中,当存储器存储的程序被执行时,处理器用于执行上述实施例中所描述的方法。
图11是本申请实施例提供的电子设备的结构示意图,如图11所示,该边缘设备可以包括:处理器(Processor)1101、通信接口(Communications Interface)1120、存储器(Memory)1103和通信总线1104,其中,处理器1101,通信接口1102,存储器1103通过通信总线1104完成相互间的通信。处理器1101可以调用存储器1103中的软件指令,以执行上述实施例中所描述的方法。
此外,上述的存储器1103中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。
基于上述实施例中的方法,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,当计算机程序在处理器上运行时,使得处理器执行上述实施例中的方法。
基于上述实施例中的方法,本申请实施例提供了一种计算机程序产品,当计算机程序产品在处理器上运行时,使得处理器执行上述实施例中的方法。
可以理解的是,本申请实施例中的处理器可以是中央处理单元(CentralProcessing Unit, CPU),还可以是其他通用处理器、数字信号处理器(Digital SignalProcessor, DSP)、专用集成电路(Application Specific Integrated Circuit, ASIC)、现场可编程门阵列(Field Programmable Gate Array, FPGA)或者其他可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。通用处理器可以是微处理器,也可以是任何常规的处理器。
本申请实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(Random Access Memory, RAM)、闪存、只读存储器(Read-Only Memory, ROM)、可编程只读存储器(Programmable ROM, PROM)、可擦除可编程只读存储器(ErasablePROM, EPROM)、电可擦除可编程只读存储器(Electrically EPROM, EEPROM)、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者通过计算机可读存储介质进行传输。计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk, SSD))等。
可以理解的是,在本申请实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。
本领域的技术人员容易理解,以上仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种基于物联网的固件崩溃分析方法,其特征在于,应用于基于物联网的固件崩溃分析装置,所述方法包括:
在物联网设备运行过程中,记录与所述物联网设备的交互数据和快照信息;
在所述物联网设备崩溃后,加载所述物联网设备的固件,基于快照信息还原固件在当前快照时和后续的状态信息;
基于还原的所述固件实时的状态信息,自动化推理硬件反馈和中断事件,以还原所述固件从所述当前快照到崩溃之间的执行流;
通过动态程序分析和静态程序分析的方式分析还原的所述执行流,确定崩溃成因。
2.一种基于物联网的固件崩溃分析方法,其特征在于,应用于设置在边缘网关中的数据记录模块,所述方法包括:
在物联网设备运行过程中,记录与所述物联网设备的交互数据和快照信息;
在所述物联网设备崩溃后,发送所述交互数据和所述快照信息给动态仿真模块,以使所述动态仿真模块还原所述物联网设备的固件在当前快照时和后续的状态信息,以及还原所述固件从所述当前快照到崩溃之间的执行流。
3.根据权利要求2所述的基于物联网的固件崩溃分析方法,其特征在于,所述记录与物联网设备的交互数据和快照信息,包括:
在链路层记录与物联网设备的交互数据,所述交互数据包括第一交互数据和第二交互数据,所述第一交互数据是所述物联网设备从传感器接收并发送给边缘网关的交互数据,所述第二交互数据是所述边缘网关发送给所述物联网设备的交互数据;
在记录的数据量占满所述边缘网关中所述物联网设备对应的缓冲区的情况下,记录所述物联网设备发送的快照信息,所述快照信息包含内存中有读写权限的数据段和寄存器段。
4.一种基于物联网的固件崩溃分析方法,其特征在于,应用于动态仿真模块,所述方法包括:
接收数据记录模块记录的物联网设备运行过程中边缘网关与所述物联网设备的交互数据和快照信息;
在所述物联网设备崩溃后,加载所述物联网设备的固件,基于所述快照信息还原固件在当前快照时和后续的状态信息,以及还原固件从所述当前快照到崩溃之间的执行流。
5.根据权利要求4所述的基于物联网的固件崩溃分析方法,其特征在于,所述基于所述快照信息还原固件在当前快照时和后续的状态信息,包括:
确定所述物联网设备中固件的地址空间;
基于所述地址空间将所述固件映射到仿真器中,并加载所述固件的内容;
解析快照各部分在所述物联网设备中的内存分布;
将快照数据段分段加载至所述仿真器单元中的对应地址,并覆盖与所述固件的地址空间冲突的部分;将快照寄存器段依次加载至所述仿真器中的对应寄存器;
从快照覆盖的程序计数器指向的指令位置开始执行,并利用映射好的内存和寄存器来获取快照时所述固件的运行栈;
通过启发式递归反汇编算法反汇编所述程序计数器当前指向的指令;
利用软件模拟的指令执行来模拟固件的硬件执行过程。
6.根据权利要求5所述的基于物联网的固件崩溃分析方法,其特征在于,所述还原固件从所述当前快照到崩溃之间的执行流,包括:
获取硬件行为推理模块自动化推理的硬件反馈和中断事件,还原固件从当前快照到崩溃之间的执行流;
向崩溃成因分析模块发送还原的所述执行流。
7.一种基于物联网的固件崩溃分析方法,其特征在于,应用于硬件行为推理模块,所述方法包括:
基于动态仿真模块还原的物联网设备固件实时的状态信息,自动化推理硬件反馈和中断事件;
将所述硬件反馈和所述中断事件推送至所述动态仿真模块,以还原所述固件从当前快照到崩溃之间的执行流。
8.根据权利要求7所述的基于物联网的固件崩溃分析方法,其特征在于,所述自动化推理硬件反馈和中断事件,包括:
在接收到所述动态仿真模块发送的内存映射寄存器的读取指令的情况下,基于寄存器的地址自动化区分硬件反馈,并利用动态推理算法推测反馈值;
对所述动态仿真模块的状态信息进行实时监控,在固件处理完数据后自动化触发中断事件。
9.根据权利要求8所述的基于物联网的固件崩溃分析方法,其特征在于,所述基于寄存器的地址自动化区分硬件反馈,包括:
在寄存器的地址为外部输入寄存器的情况下,从所述物联网设备对应的缓冲区获取记录的数据;
在寄存器的地址为内部输入寄存器的情况下,基于所述动态仿真模块的状态信息自动化推理硬件反馈。
10.一种基于物联网的固件崩溃分析装置,其特征在于,包括:
数据记录模块,用于在物联网设备运行过程中,记录与所述物联网设备的交互数据和快照信息;
动态仿真模块,用于在所述物联网设备崩溃后,加载所述物联网设备的固件,基于快照信息还原固件在当前快照时和后续的状态信息;
硬件行为推理模块,用于基于还原的所述固件实时的状态信息,自动化推理内存映射寄存器的读写和中断事件,以还原所述固件从所述当前快照到崩溃之间的执行流;
崩溃成因分析模块,用于通过动态程序分析和静态程序分析的方式分析还原的所述执行流,确定崩溃成因。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410308925.6A CN117909160B (zh) | 2024-03-19 | 2024-03-19 | 基于物联网的固件崩溃分析方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410308925.6A CN117909160B (zh) | 2024-03-19 | 2024-03-19 | 基于物联网的固件崩溃分析方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117909160A true CN117909160A (zh) | 2024-04-19 |
CN117909160B CN117909160B (zh) | 2024-06-11 |
Family
ID=90685498
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410308925.6A Active CN117909160B (zh) | 2024-03-19 | 2024-03-19 | 基于物联网的固件崩溃分析方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117909160B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060155525A1 (en) * | 2005-01-10 | 2006-07-13 | Aguilar Maximino Jr | System and method for improved software simulation using a plurality of simulator checkpoints |
US20080222373A1 (en) * | 2007-03-09 | 2008-09-11 | International Business Machines Corporation | Retaining disk identification in operating system environment after a hardware-driven snapshot restore from a snapshot-lun created using software-driven snapshot architecture |
CN101443742A (zh) * | 2005-03-25 | 2009-05-27 | 微软公司 | 未打补丁的机器的动态保护 |
CN101539799A (zh) * | 2007-09-28 | 2009-09-23 | 英特尔公司 | 使用处理器硬件反馈机制来选择最佳处理器性能水平的系统和方法 |
US20140089264A1 (en) * | 2012-09-24 | 2014-03-27 | Fusion-Io, Inc. | Snapshots for a non-volatile device |
CN108664380A (zh) * | 2017-03-30 | 2018-10-16 | 中国航空工业集团公司西安航空计算技术研究所 | 一种带性能显示的执行后软件调试系统及调试方法 |
CN109062189A (zh) * | 2018-08-30 | 2018-12-21 | 华中科技大学 | 一种用于复杂故障的工业过程故障诊断方法 |
US10838737B1 (en) * | 2017-08-31 | 2020-11-17 | American Megatrends International, Llc | Restoration of memory content to restore machine state |
US20200387432A1 (en) * | 2019-06-04 | 2020-12-10 | International Business Machines Corporation | Snapshot restoration |
US20210247991A1 (en) * | 2020-02-10 | 2021-08-12 | Shanghai Zhaoxin Semiconductor Co., Ltd. | Simulation method and simulation system |
CN116820814A (zh) * | 2023-05-18 | 2023-09-29 | 广东宝莱特医用科技股份有限公司 | 嵌入式系统崩溃定位方法、装置、嵌入式系统、存储介质 |
CN117040931A (zh) * | 2023-10-08 | 2023-11-10 | 网御安全技术(深圳)有限公司 | 低误报率的网络攻击检测方法、系统及相关设备 |
-
2024
- 2024-03-19 CN CN202410308925.6A patent/CN117909160B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060155525A1 (en) * | 2005-01-10 | 2006-07-13 | Aguilar Maximino Jr | System and method for improved software simulation using a plurality of simulator checkpoints |
CN101443742A (zh) * | 2005-03-25 | 2009-05-27 | 微软公司 | 未打补丁的机器的动态保护 |
US20080222373A1 (en) * | 2007-03-09 | 2008-09-11 | International Business Machines Corporation | Retaining disk identification in operating system environment after a hardware-driven snapshot restore from a snapshot-lun created using software-driven snapshot architecture |
CN101539799A (zh) * | 2007-09-28 | 2009-09-23 | 英特尔公司 | 使用处理器硬件反馈机制来选择最佳处理器性能水平的系统和方法 |
US20140089264A1 (en) * | 2012-09-24 | 2014-03-27 | Fusion-Io, Inc. | Snapshots for a non-volatile device |
CN108664380A (zh) * | 2017-03-30 | 2018-10-16 | 中国航空工业集团公司西安航空计算技术研究所 | 一种带性能显示的执行后软件调试系统及调试方法 |
US10838737B1 (en) * | 2017-08-31 | 2020-11-17 | American Megatrends International, Llc | Restoration of memory content to restore machine state |
CN109062189A (zh) * | 2018-08-30 | 2018-12-21 | 华中科技大学 | 一种用于复杂故障的工业过程故障诊断方法 |
US20200387432A1 (en) * | 2019-06-04 | 2020-12-10 | International Business Machines Corporation | Snapshot restoration |
US20210247991A1 (en) * | 2020-02-10 | 2021-08-12 | Shanghai Zhaoxin Semiconductor Co., Ltd. | Simulation method and simulation system |
CN116820814A (zh) * | 2023-05-18 | 2023-09-29 | 广东宝莱特医用科技股份有限公司 | 嵌入式系统崩溃定位方法、装置、嵌入式系统、存储介质 |
CN117040931A (zh) * | 2023-10-08 | 2023-11-10 | 网御安全技术(深圳)有限公司 | 低误报率的网络攻击检测方法、系统及相关设备 |
Non-Patent Citations (1)
Title |
---|
周威: "《Automatic Firmware Emulation through Invalidity-guided Knowledge Inference》", 《CRYPTOGRAPHY AND SECURITY》, 16 July 2021 (2021-07-16), pages 1 - 16 * |
Also Published As
Publication number | Publication date |
---|---|
CN117909160B (zh) | 2024-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10795673B2 (en) | Diagnosing production applications | |
US9483383B2 (en) | Injecting faults at select execution points of distributed applications | |
US20040003327A1 (en) | Method and system to implement a system event log for system manageability | |
CN112181833A (zh) | 一种智能化模糊测试方法、装置及系统 | |
CN112965908B (zh) | 通信测试方法、装置、通信设备及存储介质 | |
US20120036501A1 (en) | Method and System for Capturing System and User Events Using Hardware Trace Devices | |
US20120102462A1 (en) | Parallel test execution | |
US20080276129A1 (en) | Software tracing | |
US8752027B2 (en) | Injecting faults into program for testing software | |
CN115328796A (zh) | 一种用于arm架构的软件漏洞辅助定位方法和系统 | |
CN110704315B (zh) | 一种嵌入式软件测试的故障注入装置 | |
CN110597704A (zh) | 应用程序的压力测试方法、装置、服务器和介质 | |
CN117909160B (zh) | 基于物联网的固件崩溃分析方法及装置 | |
US8997048B1 (en) | Method and apparatus for profiling a virtual machine | |
Gui et al. | Firmnano: Toward iot firmware fuzzing through augmented virtual execution | |
US20070028218A1 (en) | Apparatus, system, and method for a software test coverage analyzer using embedded hardware | |
CN113760696A (zh) | 一种程序问题定位方法、装置、电子设备和存储介质 | |
KR100428712B1 (ko) | 멀티 태스크 프로그램의 논스톱 디버깅을 위한트레이스포인트 설정 방법 | |
Sundmark et al. | Monitored software components-a novel software engineering approach | |
US20230305938A1 (en) | Method and device for determining coverage in hil testing, and storage medium | |
CN114327648B (zh) | 一种驱动调试方法、装置、电子设备及存储介质 | |
Krosman | Instruction trace analysis and enhanced debugging in embedded systems | |
US8898636B1 (en) | Method and apparatus for testing an application running in a virtual machine | |
CN114564342A (zh) | 一种异构多核处理器系统追踪的调试方法及装置 | |
Liu et al. | Anatomist: Enhanced Firmware Vulnerability Discovery Based on Program State Abnormality Determination with Whole-System Replay |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |