System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 基于QEMU的物联网固件网络服务程序的仿真方法技术_技高网

基于QEMU的物联网固件网络服务程序的仿真方法技术

技术编号:41331176 阅读:5 留言:0更新日期:2024-05-20 09:52
本发明专利技术涉及一种基于QEMU的物联网固件网络服务程序的仿真方法,包括:使用固件提取工具从物联网固件中提取对应的根文件系统;识别根文件系统内的架构,并通过启动脚本找到对应的网络服务程序;在仿真数据库中找到对应架构的仿真模板,构建对应网络服务程序的仿真启动命令并送入QEMU仿真器中;在QEMU仿真器内启动仿真,记录仿真数据,并使用串口监听错误;错误处理机制负责处理串口获取的报错,根据串口提供的信息酌情选择对应的方案进行自动化处理,并在处理后重新回到步骤四内启动仿真。本发明专利技术使用了自动化的错误处理机制来处理物联网固件网络服务程序中常见的内核以及硬件错误,提高了仿真的准确率以及成功率。

【技术实现步骤摘要】

本专利技术涉及物联网,尤指一种基于qemu的物联网固件网络服务程序的仿真方法。


技术介绍

1、物联网固件指的是物联网设备硬件上的底层驱动程序,包括bios、根文件系统等多种功能。这些驱动程序一般随着物联网设备的发布一同发布,并且可以被厂商更新迭代。但是大多数物联网设备如家用摄像头、路由器、智能门锁等,由于低功耗等要求,导致基本不能采用台式计算机中常见的x86架构。所以多数物联网设备采用的是arm、mips的架构,这也导致了物联网设备中的固件程序无法在台式计算机上正常运行。而固件仿真技术是解决不同架构下的一种方案。

2、固件仿真技术通常是通过相应仿真器(如qemu)内的动态翻译机制来完成不同架构下的指令翻译,从而达到在其它架构下运行某个架构的程序的效果。虽然仿真器可以完成指令间的相互翻译,但使程序正常运行还需要解决程序的硬件需求以及内核链接库需求,这是一般的仿真器没能做到的。

3、内核链接库需求需要仿真时提供内核的相关组件,不同的内核链接库都有着不同的差别,这导致不能使用统一的内核链接库来对程序进行处理,需要逐一采用对应的内核组件。硬件需求则要求更多,并且也由于不同硬件厂商的不同标准,导致这方面更加复杂。如今多数主流厂商给硬件提供了硬件抽象层(hardware abstract layer,hal)组件,使得多数固件程序可以通过硬件抽象层的api来获取对应的硬件响应。该技术比较先进,可以使程序本身不用实现底层的硬件交互逻辑;但该项技术不能完全覆盖所有硬件,而且并没有应用至仿真内。目前仍然有部分硬件不存在硬件抽象层,当程序需求这一类硬件的响应时,qemu的硬件虚拟化技术可以制造出一个虚拟硬件来回应对应的程序需求,从而解决这方面的问题。不过该方案耗时长,需要手动操作去解决。

4、通过上述分析,现有技术存在的问题及缺陷为:

5、(1)一般的仿真器并未采用内核以及硬件的错误处理机制,导致仿真时需要手动解决问题的情景较多。许多内核问题因为重复度较高,可以通过自动化的规则来进行处理。

6、(2)没有使用硬件抽象层的api来解决仿真时出现的硬件错误,导致浪费了硬件抽象层这一方便的功能。

7、(3)qemu的硬件虚拟化技术是手动操作时很方便的方案,但这个流程并没有被自动化。同时,qemu的硬件虚拟化技术并没有和上述的硬件抽象层api技术结合,若两者结合可以对解决仿真硬件问题产生更广泛的效果。


技术实现思路

1、本专利技术提供一种基于qemu的物联网固件网络服务程序的仿真方法,其结合了内核错误处理方案和硬件抽象层api利用以及硬件虚拟化方案,提高了仿真的稳定性和可靠性。

2、为实现上述目的,本专利技术采用的技术方案是:

3、一种基于qemu的物联网固件网络服务程序的仿真方法,包括以下步骤:

4、步骤一,使用固件提取工具从物联网固件中提取对应的根文件系统;

5、步骤二,识别根文件系统内的架构,并通过启动脚本找到对应的网络服务程序;

6、步骤三,在仿真数据库中找到对应架构的仿真模板,构建对应网络服务程序的仿真启动命令并送入qemu仿真器中;

7、步骤四,在qemu仿真器内启动仿真,记录仿真数据,并使用串口监听错误;

8、步骤五,错误处理机制负责处理串口获取的报错,根据串口提供的信息酌情选择对应的方案进行自动化处理,并在处理后重新回到步骤四内启动仿真。

9、进一步的,在步骤一中,固件提取工具将通过magic number识别固件内的文件信息,从而定位根文件系统的相对位置并进行迭代提取,提出后的文件系统被分为指令集以及其它文件。

10、进一步的,在步骤二中,通过识别文件系统指令集的相应文件,获取系统的架构信息,同时,扫描器将扫描rcs的相应启动脚本,得知固件网络服务相关程序的绝对路径,并将对应信息记录在仿真数据库内。

11、进一步的,在步骤三中,通过所述架构信息,仿真数据库将从中选取对应架构的仿真内核以及完整的指令集对原有的指令集进行替换以及修补,仿真数据库将对应的网络服务程序作为仿真目标,采用对应架构的qemu操作指令来完成qemu仿真命令的构建。

12、进一步的,在步骤四中,在所述完成qemu仿真命令的构建后,相应网络服务程序将和对应指令将被送入qemu仿真器中执行仿真,qemu将使用指令提供的串口进行错误监听,同时记录对应数据至仿真数据库内。

13、进一步的,在步骤五中,若qemu串口中监听到对应错误,qemu仿真器将采用错误处理机制进行错误处理。

14、进一步的,所述错误处理机制包含:

15、启动以及内核错误处理方案,

16、硬件抽象层api处理方案,

17、qemu硬件虚拟化处理方案。

18、进一步的,所述启动以及内核错误处理方案包括:

19、启动组件处理模块,用于处理文件目录或文件缺失问题以及找不到对应初始化文件问题;

20、内核组件处理模块,用于处理缺乏对应的内核模块问题以及不正确的内核版本问题;

21、网络组件配置处理模块,用于处理ip配置错误、缺乏网络信息、多个网络接口冲突、vlan错误以及iptables规则错误。

22、进一步的,所述硬件抽象层api处理方案包括:

23、当qemu的串口监听到错误后,代码检测器将分析错误的来源代码并记录相关代码,在获取报错代码后,代码检测器将会对报错代码以特定格式生成一个handler,这个handler包含了报错代码的各类信息;代码检测器将该handler送入halapi库并进行检索,若未在库中找到对应的handler,则进入qemu硬件虚拟化工作流程;若在库中找到对应的handler,则提取对应类型handler并进行送入halapi替换组件中工作。

24、进一步的,所述qemu硬件虚拟化处理方案包括:

25、当代码检测器生成的handler无法在hal api库中找到对应的hal api时,将采用qemu硬件虚拟化的特性来完成错误的修正,qemu硬件虚拟化组件的工作流程如下:

26、识别生成handler的类型,判断出handler属于哪一类硬件;在qemu硬件虚拟化的硬件模板库内寻找对应类别的硬件模板,qemu硬件虚拟化组件将handler中的信息填入硬件模板中,然后编译qemu获得相应的虚拟化硬件,该虚拟化硬件由qemu进行仿真的反馈执行。

27、本专利技术的有益效果在于:

28、本专利技术结合了内核以及硬件错误处理方案、同时又能在不破坏程序内部逻辑的物联网固件仿真错误处理机制。该机制需要保证程序能正常启动对应服务,同时该服务还要尽量贴近真实的程序服务工作情景。该机制包括了处理程序启动时的内核依赖问题,同时还需要通过硬件抽象层的api处理仿真时的硬件需求,并且在没能找到对应硬件抽象层api的情况下还可以本文档来自技高网...

【技术保护点】

1.一种基于QEMU的物联网固件网络服务程序的仿真方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的基于QEMU的物联网固件网络服务程序的仿真方法,其特征在于,在步骤一中,固件提取工具将通过magic number识别固件内的文件信息,从而定位根文件系统的相对位置并进行迭代提取,提出后的文件系统被分为指令集以及其它文件。

3.根据权利要求1所述的基于QEMU的物联网固件网络服务程序的仿真方法,其特征在于,在步骤二中,通过识别文件系统指令集的相应文件,获取系统的架构信息,同时,扫描器将扫描rcS的相应启动脚本,得知固件网络服务相关程序的绝对路径,并将对应信息记录在仿真数据库内。

4.根据权利要求3所述的基于QEMU的物联网固件网络服务程序的仿真方法,其特征在于,在步骤三中,通过所述架构信息,仿真数据库将从中选取对应架构的仿真内核以及完整的指令集对原有的指令集进行替换以及修补,仿真数据库将对应的网络服务程序作为仿真目标,采用对应架构的QEMU操作指令来完成QEMU仿真命令的构建。

5.根据权利要求4所述的基于QEMU的物联网固件网络服务程序的仿真方法,其特征在于,在步骤四中,在所述完成QEMU仿真命令的构建后,相应网络服务程序将和对应指令将被送入QEMU仿真器中执行仿真,QEMU将使用指令提供的串口进行错误监听,同时记录对应数据至仿真数据库内。

6.根据权利要求5所述的基于QEMU的物联网固件网络服务程序的仿真方法,其特征在于,在步骤五中,若QEMU串口中监听到对应错误,QEMU仿真器将采用错误处理机制进行错误处理。

7.根据权利要求6所述的基于QEMU的物联网固件网络服务程序的仿真方法,其特征在于,所述错误处理机制包含:

8.根据权利要求7所述的基于QEMU的物联网固件网络服务程序的仿真方法,其特征在于,所述启动以及内核错误处理方案包括:

9.根据权利要求7所述的基于QEMU的物联网固件网络服务程序的仿真方法,其特征在于,所述硬件抽象层API处理方案包括:

10.根据权利要求8所述的基于QEMU的物联网固件网络服务程序的仿真方法,其特征在于,所述QEMU硬件虚拟化处理方案包括:

...

【技术特征摘要】

1.一种基于qemu的物联网固件网络服务程序的仿真方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的基于qemu的物联网固件网络服务程序的仿真方法,其特征在于,在步骤一中,固件提取工具将通过magic number识别固件内的文件信息,从而定位根文件系统的相对位置并进行迭代提取,提出后的文件系统被分为指令集以及其它文件。

3.根据权利要求1所述的基于qemu的物联网固件网络服务程序的仿真方法,其特征在于,在步骤二中,通过识别文件系统指令集的相应文件,获取系统的架构信息,同时,扫描器将扫描rcs的相应启动脚本,得知固件网络服务相关程序的绝对路径,并将对应信息记录在仿真数据库内。

4.根据权利要求3所述的基于qemu的物联网固件网络服务程序的仿真方法,其特征在于,在步骤三中,通过所述架构信息,仿真数据库将从中选取对应架构的仿真内核以及完整的指令集对原有的指令集进行替换以及修补,仿真数据库将对应的网络服务程序作为仿真目标,采用对应架构的qemu操作指令来完成qemu仿真命令的构建。

5.根据权利要求...

【专利技术属性】
技术研发人员:李红宁何岳峰裴庆祺周浩宇曹萌杨梁颜李衍健
申请(专利权)人:西安电子科技大学广州研究院
类型:发明
国别省市:

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

1