一种固件二进制仿真方法、装置及计算机设备制造方法及图纸

技术编号:28836703 阅读:15 留言:0更新日期:2021-06-11 23:33
本申请公开了一种固件二进制仿真方法、装置及计算机设备,其中,一种固件二进制仿真方法包括:根据目标二进制程序及所述目标二进制程序所在的UEFI镜像,分析所述目标二进制程序依赖的UEFI服务,并根据所述目标二进制程序及其所依赖的UEFI服务形成所述目标二进制程序的依赖项列表,将所述目标硬件交互服务的入口和目标硬件交互模拟程序注册到所述UEFI系统表中,并基于所述UEFI系统表构建模拟仿真运行环境,在所述模拟仿真运行环境中运行所述目标二进制程序并调用所述目标硬件交互服务依赖项。如此,可使所述目标二进制程序在所述模拟仿真运行环境中顺利运行。

【技术实现步骤摘要】
一种固件二进制仿真方法、装置及计算机设备
本申请涉及计算机
,尤其涉及一种固件二进制仿真方法、装置及计算机设备。
技术介绍
统一的可扩展接口(UnifiedExtensibleFirmwareInterface,简称UEFI)作为一个新一代固件规范,在Intel、AMD、ARM、微软、戴尔、惠普、联想等主要厂商的支持下,在桌上及服务器级计算平台得到了广泛应用。UEFI比传统基本输入输出系统(BasicInput/OutputSystem,简称BIOS)具有很多优点,但也存在诸多的安全隐患,UEFI在驱动模块实现、驱动加载模式、硬盘存储方式、C语言编写等问题上使其比传统BIOS面临更多的安全威胁。UEFI镜像作为操作系统前为硬件初始化及操作系统加载配置等功能提供可扩展的执行环境,在最初设计时,受限于镜像体积限制,仅提供了一套轻量级的内存管理、服务管理和消息机制,因此,UEFI镜像中的二进制文件无法直接在桌面环境中运行。目前相关二进制漏洞挖掘工具和安全工具均是基于X86架构(TheX86architecture,微处理器执行的计算机语言指令集)通用操作系统环境进行研究和开发的,使得较为成熟的安全工具无法应用于新X86架构处理器芯片组的UEFI镜像固件的二进制程序上,导致现有的仿真执行环境无法支持对UEFI固件的漏洞挖掘操作,UEFI固件仍面临很大的安全风险。
技术实现思路
有鉴于此,本申请的目的之一在于提供一种固件二进制仿真方法、装置及计算机设备,能够实现所述目标二进制程序在所述模拟仿真运行环境中顺利运行。第一方面,本申请实施例提供了一种固件二进制仿真方法,包括:根据目标二进制程序及所述目标二进制程序所在的UEFI镜像,分析所述目标二进制程序依赖的UEFI服务,并根据所述目标二进制程序及其所依赖的UEFI服务形成所述目标二进制程序的依赖项列表,所述UEFI服务包括UEFI运行时服务和目标硬件交互服务;将所述目标硬件交互服务的入口和目标硬件交互模拟程序注册到所述UEFI系统表中;基于所述UEFI系统表构建模拟仿真运行环境;在所述模拟仿真运行环境中运行所述目标二进制程序并调用所述目标硬件交互服务依赖项。在一种可能实现的方式中,所述根据目标二进制程序及所述目标二进制程序所在的UEFI镜像,分析所述目标二进制程序依赖的UEFI服务,并根据所述目标二进制程序及其所依赖的UEFI服务形成所述目标二进制程序的依赖项列表的步骤之前,还包括:获取所述目标二进制程序依赖的所述目标硬件交互服务与所述目标硬件交互服务对应的所述目标硬件交互模拟程序,并形成所述目标二进制程序的依赖项列表;所述将所述目标硬件交互服务的入口和所述目标硬件交互模拟程序注册到所述UEFI系统表中的步骤,包括:将所述目标硬件交互服务的入口和所述目标二进制程序的依赖项列表注册到所述UEFI系统表中。在一种可能实现的方式中,所述获取所述目标二进制程序依赖的所述目标硬件交互服务与所述目标硬件交互服务对应的所述目标硬件交互模拟程序的步骤,包括:解析所述X86处理器芯片组的固件镜像文件中的二进制文件,识别所述二进制文件依赖的目标硬件交互服务;将所述目标硬件交互服务的识别信息写入配置文件,所述配置文件记录包括所述目标二进制程序所调用的识别信息;根据所述配置文件记录的所述识别信息,在预设数据库中获取所述目标二进制程序对应的所述目标硬件交互服务;获取与所述目标硬件交互服务对应的所述目标硬件交互模拟程序。在一种可能实现的方式中,在所述获取目标二进制程序所依赖的目标硬件交互服务对应的所述目标硬件交互模拟程序的步骤前,所述方法还包括:注册所述UEFI核心服务对应的所述目标二进制程序的依赖项列表;将所述UEFI核心服务关联的基础服务的入口和所述目标硬件交互模拟程序注册到所述UEFI系统表,其中,所述UEFI核心服务关联的基础服务包括所述目标二进制程序的依赖项列表的操作服务、内存管理的分配、释放内存类服务和服务间消息机制类服务中的至少一种。在一种可能实现的方式中,所述在所述模拟仿真运行环境中运行所述目标二进制程序并调用所述目标硬件交互服务依赖项的步骤前,所述方法还包括:将用于跳转执行所述目标硬件交互模拟代码的目标回调函数注册到所述目标二进制程序的依赖项列表的上下文回调接口。在一种可能实现的方式中,所述调用所述目标硬件交互服务的步骤,包括:所述目标二进制程序在所述模拟仿真运行环境中运行时触发所述上下文回调接口对应的所述目标回调函数,并执行所述目标硬件交互模拟代码以使其提供与所述目标硬件交互服务对应的模拟反馈结果。在一种可能实现的方式中,在所述触发所述目标回调函数,并执行所述目标硬件模拟代码以提供与所述目标硬件交互服务对应的模拟反馈的步骤之后,还包括:根据所述模拟反馈结果,检查所述目标硬件交互服务是否均被调用。第二方面,本申请实施例提供了一种固件二进制仿真装置,所述装置包括获取模块、注册模块、搭建模块和运行模块:所述获取模块,用于根据目标二进制程序及所述目标二进制程序所在的UEFI镜像,分析所述目标二进制程序依赖的UEFI服务,并根据所述目标二进制程序及其所依赖的UEFI服务形成所述目标二进制程序的依赖项列表,所述UEFI服务包括UEFI运行时服务和目标硬件交互服务;所述注册模块,用于将所述目标硬件交互服务的入口和目标硬件交互模拟程序注册到所述UEFI系统表中;所述构建模块,用于所述构建模块,用于基于所述UEFI系统表构建模拟仿真运行环境;所述运行模块,用于在所述模拟仿真运行环境中运行所述目标二进制程序并调用所述目标硬件交互服务依赖项。第三方面,本申请实施例提供了一种计算机设备,所述计算机设备包括存储器及处理器,所述存储器存储有计算机程序,所述计算机设备包括第二方面的固件二进制仿真装置。第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序用于执行第一方面的固件二进制仿真方法。本实施例所提供的固件二进制仿真方法,根据目标二进制程序及所述目标二进制程序所在的UEFI镜像,分析所述目标二进制程序依赖的UEFI服务,并根据所述目标二进制程序及其所依赖的UEFI服务形成所述目标二进制程序的依赖项列表,然后将所述目标硬件交互服务的入口和目标硬件交互模拟程序注册到所述UEFI系统表中,基于所述UEFI系统表构建模拟仿真运行环境,在所述模拟仿真运行环境中运行所述目标二进制程序并调用所述目标硬件交互服务依赖项。如此,可使所述目标二进制程序在所述模拟仿真运行环境中顺利运行。附图说明为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对本申请保护范围的限定。在各个附图中,类似的构成部分采用类似的编号,对于本本文档来自技高网...

【技术保护点】
1.一种固件二进制仿真方法,应用于X86处理器芯片组,其特征在于,所述方法包括:/n根据目标二进制程序及所述目标二进制程序所在的UEFI镜像,分析所述目标二进制程序依赖的UEFI服务,并根据所述目标二进制程序及其所依赖的UEFI服务形成所述目标二进制程序的依赖项列表,所述UEFI服务包括UEFI运行时服务和目标硬件交互服务;/n将所述目标硬件交互服务的入口和目标硬件交互模拟程序注册到所述UEFI系统表中;/n基于所述UEFI系统表构建模拟仿真运行环境;/n在所述模拟仿真运行环境中运行所述目标二进制程序并调用所述目标硬件交互服务依赖项。/n

【技术特征摘要】
1.一种固件二进制仿真方法,应用于X86处理器芯片组,其特征在于,所述方法包括:
根据目标二进制程序及所述目标二进制程序所在的UEFI镜像,分析所述目标二进制程序依赖的UEFI服务,并根据所述目标二进制程序及其所依赖的UEFI服务形成所述目标二进制程序的依赖项列表,所述UEFI服务包括UEFI运行时服务和目标硬件交互服务;
将所述目标硬件交互服务的入口和目标硬件交互模拟程序注册到所述UEFI系统表中;
基于所述UEFI系统表构建模拟仿真运行环境;
在所述模拟仿真运行环境中运行所述目标二进制程序并调用所述目标硬件交互服务依赖项。


2.根据权利要求1所述的方法,其特征在于,所述根据目标二进制程序及所述目标二进制程序所在的UEFI镜像,分析所述目标二进制程序依赖的UEFI服务,并根据所述目标二进制程序及其所依赖的UEFI服务形成所述目标二进制程序的依赖项列表的步骤之前,还包括:
获取所述目标二进制程序依赖的所述目标硬件交互服务与所述目标硬件交互服务对应的所述目标硬件交互模拟程序,并形成所述目标二进制程序的依赖项列表;
所述将所述目标硬件交互服务的入口和所述目标硬件交互模拟程序注册到所述UEFI系统表中的步骤,包括:
将所述目标硬件交互服务的入口和所述目标二进制程序的依赖项列表注册到所述UEFI系统表中。


3.根据权利要求2所述的方法,其特征在于,所述获取所述目标二进制程序依赖的所述目标硬件交互服务与所述目标硬件交互服务对应的所述目标硬件交互模拟程序的步骤,包括:
解析所述X86处理器芯片组的固件镜像文件中的二进制文件,识别所述二进制文件依赖的目标硬件交互服务;
将所述目标硬件交互服务的识别信息写入配置文件,所述配置文件记录包括所述目标二进制程序所调用的识别信息;
根据所述配置文件记录的所述识别信息,在预设数据库中获取所述目标二进制程序对应的所述目标硬件交互服务;
获取与所述目标硬件交互服务对应的所述目标硬件交互模拟程序。


4.根据权利要求2所述的方法,其特征在于,在所述获取目标二进制程序所依赖的目标硬件交互服务对应的所述目标硬件交互模拟程序的步骤前,所述方法还包括:
注册所述UEFI核心服务对应的所述目标二进制程序的依赖项列表;
将所述UEFI核心服务关联的基础服务的入口和所述目标硬件交互模拟程序注册到所...

【专利技术属性】
技术研发人员:崔宝江龙翔吴佳桐孙艺祺孙伯文
申请(专利权)人:北京邮电大学
类型:发明
国别省市:北京;11

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

1