对固件系统的仿真装置、方法、存储介质及电子设备制造方法及图纸

技术编号:37123473 阅读:11 留言:0更新日期:2023-04-01 05:19
本发明专利技术公开了一种对固件系统的仿真装置、方法、存储介质及电子设备。其中,包括:进程管理模块,其中,进程管理模块用于管理多个进程以及多个进程之间的依赖关系,多个进程为仿真装置模拟的进程;消息处理模块,其中,消息处理模块用于监听固件系统的仿真装置中每个进程发出的请求消息,并将请求消息发送至消息执行对象,其中,消息执行对象在处理请求消息后将返回值输出至消息请求对象;文件系统模块,其中,文件系统模块用于模拟物联网设备的文件系统,为仿真装置提供资源文件,文件系统至少包括设备文件。本发明专利技术解决了相关技术中仿真模拟固件系统的过程中,难以仿真设备文件并进行多进程通信的技术问题。进程通信的技术问题。进程通信的技术问题。

【技术实现步骤摘要】
对固件系统的仿真装置、方法、存储介质及电子设备


[0001]本专利技术涉及物联网
,具体而言,涉及一种对固件系统的仿真装置、方法、存储介质及电子设备。

技术介绍

[0002]在物联网安全研究领域,主要分为两种方式对物联网设备进行安全性研究:购买真实设备进行研究和通过固件系统仿真进行研究。而今物联网设备多种多样,不同的设备价格不同,某些设备相当昂贵,增加了安全研究的资金成本。而通过固件系统仿真方式可以节省成本,只要能获取设备固件系统,基本上可以做到零成本研究。通常厂商为了修补或是升级设备系统,会在官方网站发布相应的设备固件文件,固件文件内有完整的设备升级所需的文件系统,用户可以自行下载后对设备进行升级。因此,通过固件系统仿真的方式是以后物联网设备安全研究发展的主流方式。
[0003]随着虚拟化技术的发展,目前已有部分产品可以对固件系统进行仿真,但仿真能力达不到理想的效果,设备文件无法达到仿真要求,并存在进程间互相依赖(如依赖后台服务程序等)无法完成模拟的情况。
[0004]在相关技术中,存在基于Unicorn框架来完成固件系统的指令级别的模拟,由于Unicorn框架可支持多种语言进行开发。Qiling使用Python作为框架语言,在Unicorn框架的基础上对堆栈数据、寄存器等进行布置和初始化来完成程序的模拟执行。可以使用Qiling框架提供的API接口来初始化程序执行环境完成程序仿真,并且可自定义修改模拟程序的指令代码、堆栈数据和寄存器等内容。但是,由于当前Qiling框架版本迭代慢,产品处于初级阶段,多数基础功能不完善,并且只能完成单一进程的模拟执行,对于多进程间依赖无法完成模拟,难以模拟多进程通信。另外Python属于解释型语言,相对于编译型语言执行效率低,在仿真整个固件系统的密集型场景中性能不足。
[0005]相关技术中,还存在通过QEMU框架进行固件系统的模拟,QEMU整体框架由C语言编写,它能够对不同CPU架构的代码进行仿真执行,其原理是将原架构机器码翻译为相同功能的另一架构机器码,以此完成相同功能的不同架构代码转换,完成跨CPU平台架构的模拟。此外QEMU完全模拟了计算机的硬件设备,包括主板、CPU、南北桥、网卡等物理设备,它所仿真出来的文件系统和一般计算机无任何区别,因此可以进行系统级别的模拟。但是,QEMU框架无法完成设备文件的模拟,在某些固件依赖于特定设备文件时,便无法进行仿真,并且无法在仿真过程中对数据或指令进行修补和修改,存在自定义化和可扩展性不强的技术问题。
[0006]针对上述的问题,目前尚未提出有效的解决方案。

技术实现思路

[0007]本专利技术实施例提供了一种对固件系统的仿真装置、方法、存储介质及电子设备,以至少解决相关技术中仿真模拟固件系统的过程中,难以仿真设备文件并进行多进程通信的
技术问题。
[0008]根据本专利技术实施例的一个方面,提供了一种对固件系统的仿真装置,包括:进程管理模块,其中,所述进程管理模块用于管理多个进程以及多个所述进程之间的依赖关系,所述多个进程为仿真装置模拟的进程;消息处理模块,与所述进程管理模块连接,其中,所述消息处理模块用于监听所述固件系统的仿真装置中每个所述进程发出的请求消息,并将所述请求消息发送至消息执行对象,其中,所述消息执行对象在处理所述请求消息后将返回值输出至消息请求对象;文件系统模块,与所述消息处理模块连接,其中,所述文件系统模块用于模拟物联网设备的文件系统,为所述仿真装置提供资源文件,所述文件系统至少包括设备文件,所述设备文件至少包括:所述物联网设备的软件层接口数据。
[0009]进一步地,所述仿真装置还包括:远程过程调用模块,其中,所述远程过程调用模块用于模拟驱动函数调用过程,加载所述驱动函数到内存,等待每个所述进程的调用请求,网络服务模块,用于为所述仿真装置提供网络模拟服务,其中,所述网络模拟服务包括:模拟对所述物联网设备的网络连接服务和访问服务。
[0010]进一步地,所述消息处理模块至少包括:消息封装子模块、消息队列子模块、消息监听子模块、消息分发子模块,其中,所述消息封装子模块用于将每个所述进程发出的请求消息封装为目标结构,所述目标结构至少包括:消息类型、所述消息请求对象、所述消息执行对象、消息主体、返回值;所述消息队列子模块用于存储多种所述消息类型的请求消息,每种消息类型的请求消息至少由以下其中之一生成:所述进程管理模块、所述文件系统模块、所述远程过程调用模块、所述网络服务模块;所述消息监听子模块用于监听多个所述进程传递的消息,并将监听到的消息放入所述消息队列子模块;所述消息分发子模块用于将所述消息队列子模块中的每个消息发送至每个消息对应的消息执行对象。
[0011]进一步地,所述消息处理模块还包括:编程接口,所述编程接口用于对多种消息类型的消息进行修改。
[0012]进一步地,所述进程管理模块至少包括:启动进程子模块、销毁进程子模块、进程通信子模块,其中,所述启动进程子模块用于启动每个所述进程;所述销毁进程子模块用于销毁每个所述进程;所述进程通信子模块用于控制多个所述进程之间的数据通信。
[0013]进一步地,所述远程过程调用模块至少包括:消息处理子模块、模拟客户端子模块、模拟服务端子模块,其中,所述消息处理子模块用于调用所述消息处理模块的系统调用过程中的消息进行处理;所述模拟客户端子模块用于模拟客户端向所述模拟服务端子模块发送系统调用请求,所述模拟服务端子模块用于模拟服务端,响应所述系统调用请求,通过将中央处理器的系统调用标识进行替换,并将所述中央处理器的系统调用策略映射至所述远程过程调用模块进行系统调用。
[0014]进一步地,所述文件系统模块提供的资源文件至少包括:库文件、静态文件以及动态文件,其中,所述库文件至少包括:动态链接库文件,所述静态文件至少包括:所述仿真装置的资源的文档文件,所述动态文件至少包括:所述设备文件。
[0015]根据本专利技术实施例的另一方面,还提供了一种对固件系统的仿真方法,应用于上述的任意一项的对固件系统的仿真装置,仿真方法包括:获取目标物联网设备的固件文件,并解析所述固件文件,得到目标固件文件;基于所述目标固件文件,通过固件系统的仿真装置模拟所述目标物联网设备的固件系统。
[0016]根据本专利技术实施例的另一方面,还提供了另一种对固件系统的仿真装置,应用于上述的对固件系统的仿真方法,仿真装置包括:获取模块,用于获取目标物联网设备的固件文件,并解析所述固件文件,得到目标固件文件;模拟模块,用于基于所述目标固件文件,通过固件系统的仿真装置模拟所述目标物联网设备的固件系统。
[0017]根据本专利技术实施例的另一方面,还提供了一种电子设备,包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,处理器配置为经由执行可执行指令来执行上述任意一项的对固件系统的仿真方法。
[0018]根据本专利技术实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,其中,在计算机程序运行时本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种对固件系统的仿真装置,其特征在于,包括:进程管理模块,其中,所述进程管理模块用于管理多个进程以及多个所述进程之间的依赖关系,所述多个进程为仿真装置模拟的进程;消息处理模块,与所述进程管理模块连接,其中,所述消息处理模块用于监听所述固件系统的仿真装置中每个所述进程发出的请求消息,并将所述请求消息发送至消息执行对象,其中,所述消息执行对象在处理所述请求消息后将返回值输出至消息请求对象;文件系统模块,与所述消息处理模块连接,其中,所述文件系统模块用于模拟物联网设备的文件系统,为所述仿真装置提供资源文件,所述文件系统至少包括设备文件,所述设备文件至少包括:所述物联网设备的软件层接口数据。2.根据权利要求1所述的仿真装置,其特征在于,所述仿真装置还包括:远程过程调用模块,其中,所述远程过程调用模块用于模拟驱动函数调用过程,加载所述驱动函数到内存,等待每个所述进程的调用请求,网络服务模块,用于为所述仿真装置提供网络模拟服务,其中,所述网络模拟服务包括:模拟对所述物联网设备的网络连接服务和访问服务。3.根据权利要求2所述的仿真装置,其特征在于,所述消息处理模块至少包括:消息封装子模块、消息队列子模块、消息监听子模块、消息分发子模块,其中,所述消息封装子模块用于将每个所述进程发出的请求消息封装为目标结构,所述目标结构至少包括:消息类型、所述消息请求对象、所述消息执行对象、消息主体、返回值;所述消息队列子模块用于存储多种所述消息类型的请求消息,每种消息类型的请求消息至少由以下其中之一生成:所述进程管理模块、所述文件系统模块、所述远程过程调用模块、所述网络服务模块;所述消息监听子模块用于监听多个所述进程传递的消息,并将监听到的消息放入所述消息队列子模块;所述消息分发子模块用于将所述消息队列子模块中的每个消息发送至每个消息对应的消息执行对象。4.根据权利要求1所述的仿真装置,其特征在于,所述消息处理模块还包括:编程接口,所述编程接口用于对多种消息类...

【专利技术属性】
技术研发人员:王正涵何伊圣吴疆李文越徐俊
申请(专利权)人:山石网科通信技术股份有限公司
类型:发明
国别省市:

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

1