CN112241311A - 一种固件仿真模拟方法、装置、电子设备及可读存储介质 - Google Patents

一种固件仿真模拟方法、装置、电子设备及可读存储介质 Download PDF

Info

Publication number
CN112241311A
CN112241311A CN202011141413.3A CN202011141413A CN112241311A CN 112241311 A CN112241311 A CN 112241311A CN 202011141413 A CN202011141413 A CN 202011141413A CN 112241311 A CN112241311 A CN 112241311A
Authority
CN
China
Prior art keywords
firmware
file
simulation
network card
service
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.)
Withdrawn
Application number
CN202011141413.3A
Other languages
English (en)
Inventor
钟文洁
范渊
吴卓群
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Dbappsecurity Technology Co Ltd
Original Assignee
Hangzhou Dbappsecurity Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Dbappsecurity Technology Co Ltd filed Critical Hangzhou Dbappsecurity Technology Co Ltd
Priority to CN202011141413.3A priority Critical patent/CN112241311A/zh
Publication of CN112241311A publication Critical patent/CN112241311A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种固件仿真模拟方法、装置、电子设备及计算机可读存储介质,该方法包括:获取固件文件,并从固件文件中提取文件***;识别文件***中的固件对应的服务类别;获取与服务类别对应的补丁文件,并利用补丁文件进行补丁处理,得到固件虚拟机;对固件虚拟机进行仿真模拟处理,得到模拟结果;由于不同固件在提供不同服务时通常基于不同的硬件环境,且固件中存在一些与硬件环境有关的操作函数,因此为了提高仿真成功率,该方法根据服务类别的不同,利用不同的补丁文件进行具有针对性的补丁处理,使得固件虚拟机更加贴近真实情况,可以提高仿真模拟处理的成功率。

Description

一种固件仿真模拟方法、装置、电子设备及可读存储介质
技术领域
本申请涉及物联网技术领域,特别涉及一种固件仿真模拟方法、固件仿真模拟装置、电子设备及计算机可读存储介质。
背景技术
在进行物联网设备固件漏洞挖掘过程中,为了对设备固件进行动态逆向分析和程序逻辑分析,经常需要对设备的固件进行仿真模拟。在固件仿真模拟过程中,很多情况下使用到了firmadyne工具(一种开源固件模拟工具),firmadyne是一种基于qemu***模拟器的linux嵌入式固件仿真平台。由于在进行仿真模拟时缺乏硬件环境,为了提高仿真成功率和准确性,相关技术利用通用补丁对固件虚拟机进行补丁,但是相关技术的仿真成功率仍然较低。
因此,相关技术存在的仿真成功率较低的问题,是本领域技术人员需要解决的技术问题。
发明内容
有鉴于此,本申请的目的在于提供一种固件仿真模拟方法、固件仿真模拟装置、电子设备及计算机可读存储介质,提高了仿真模拟处理的成功率。
为解决上述技术问题,本申请提供了一种固件仿真模拟方法,包括:
获取固件文件,并从所述固件文件中提取文件***;
识别所述文件***中的固件对应的服务类别;
获取与所述服务类别对应的补丁文件,并利用所述补丁文件进行补丁处理,得到固件虚拟机;
对所述固件虚拟机进行仿真模拟处理,得到模拟结果。
可选地,所述对所述固件虚拟机进行仿真模拟处理,包括:
获取虚拟网卡配置信息,并利用所述虚拟网卡配置信息在本地配置第一虚拟网卡;
为所述固件虚拟机配置具有第二IP地址的第二虚拟网卡,并建立所述第一虚拟网卡和第二虚拟网卡之间的点对点连接;所述第二IP地址为与所述第一虚拟网卡对应的第一IP地址处于同一子网网段的IP地址;
基于所述点对点连接对所述固件虚拟机进行仿真模拟处理。
可选地,所述为所述固件虚拟机配置具有第二IP地址的第二虚拟网卡,并建立所述第一虚拟网卡和第二虚拟网卡之间的点对点连接,包括:
将所述第二虚拟网卡对应的目标参数设置为第一参数,以便在所述第一虚拟网卡和第二虚拟网卡间建立管道通信;
从启动参数中获取所述第二IP地址,并利用所述第二IP地址对所述第二虚拟网卡进行配置。
可选地,还包括:
设置所述固件虚拟机对应的目标服务后门;所述目标服务后门包括telnet服务后门、ssh服务后门。
可选地,还包括:
若检测到模拟故障,则利用所述目标服务后门对所述固件虚拟机进行控制。
可选地,所述识别所述文件***中的固件对应的服务类别,包括:
获取所述固件对应的特征信息;所述特征信息包括特征字符串和/或特征文件名;
利用所述特征信息确定所述服务类别。
可选地,所述获取与所述服务类别对应的补丁文件,包括:
确定所述服务类别对应的类别标识;
利用所述类别标识获取所述补丁文件。
本申请还提供了一种固件仿真模拟装置,包括:
文件***获取模块,用于获取固件文件,并从所述固件文件中提取文件***;
服务类别识别模块,用于识别所述文件***中的固件对应的服务类别;
补丁处理模块,用于获取与所述服务类别对应的补丁文件,并利用所述补丁文件进行补丁处理,得到固件虚拟机;
仿真模拟模块,用于对所述固件虚拟机进行仿真模拟处理,得到模拟结果。
本申请还提供了一种电子设备,包括存储器和处理器,其中:
所述存储器,用于保存计算机程序;
所述处理器,用于执行所述计算机程序,以实现上述的固件仿真模拟方法。
本申请还提供了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现上述的固件仿真模拟方法。
本申请提供的固件仿真模拟方法,获取固件文件,并从固件文件中提取文件***;识别文件***中的固件对应的服务类别;获取与服务类别对应的补丁文件,并利用补丁文件进行补丁处理,得到固件虚拟机;对固件虚拟机进行仿真模拟处理,得到模拟结果。
可见,该方法在提取到固件文件对应的文件***后,对其中的固件分别提供哪些服务进行检测,即识别固件对应的服务类别。由于不同固件在提供不同服务时通常基于不同的硬件环境,且固件中通常存在一些与硬件环境有关的操作函数。因此为了提高仿真成功率,可以利用与服务类别对应的补丁文件进行补丁处理,以便利用软件模拟该服务类别对应的硬件环境,对与硬件环境有关的操作函数进行针对性处理,使其能够被仿真,进而提高仿真模拟的成功率。该方法根据服务类别的不同,利用不同的补丁文件进行具有针对性的补丁处理,使得固件虚拟机更加贴近真实情况,可以提高仿真模拟处理的成功率,解决了相关技术存在的仿真成功率较低的问题。
此外,本申请还提供了一种固件仿真模拟装置、电子设备及计算机可读存储介质,同样具有上述有益效果。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种固件仿真模拟方法流程图;
图2为本申请实施例提供的一种补丁处理流程示意图;
图3为本申请实施例提供的一种点对点通信示意图;
图4为本申请实施例提供的一种目标服务后门注入流程示意图;
图5为本申请实施例提供的一种固件仿真模拟装置的结构示意图;
图6为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例提供的一种固件仿真模拟方法流程图。该方法包括:
S101:获取固件文件,并从固件文件中提取文件***。
需要说明的是,本实施例中的固件仿真模拟方法的部分或全部步骤可以由执行的电子设备执行,该指定的电子设备即为对固件进行仿真模拟的设备,可以被称为宿主机。该电子设备具体可以为计算机,或者可以为服务器,具体为具有qemu(虚拟操作***模拟器)模拟器环境和firmadyne工具的电子设备。firmadyne是一种基于qemu***模拟器的linux嵌入式固件仿真平台。
固件文件具体可以为bin文件,其可以对应于任意一个或多个物联网设备,例如路由器、摄像头等。通过对固件文件进行解析,可以从中提取得到文件***,文件***中包括与固件文件对应的多个固件。需要说明的是,这里提到的固件并不是硬件,而是可以在硬件上运行的可执行文件。可执行文件脱离硬件后可能会存在硬件环境缺失导致无法被成功仿真模拟的问题,为了解决这个问题,可以利用补丁弥补固件缺失硬件环境的问题,以便成功进行仿真模拟。
需要说明的是,本实施例并不限定采用何种方式从固件文件中提取文件***。在一种可行的实施方式中,可以对固件文件进行格式解析,在解析后得到文件***。在另一种可行的实施方式中,还可以在进行格式解析前生成镜像,再利用镜像获取文件***。
S102:识别文件***中的固件对应的服务类别。
相同的物联网设备可能运行不同的服务,而不同的物联网设备可能运行相同的服务,服务与该物联网设备的硬件环境相关,而服务类别又与固件相对应。因此为了提高仿真成功率,可以识别固件对应的服务类别,以便确定该固件对应的硬件环境,进而对其进行具有针对性的补丁操作。本实施例并不限定确定固件对应的服务类别的具体方式,例如在一种可行的实施方式中,固件具有对应的服务类别标识,通过对服务类别标识进行识别以识别对应的服务类别。
进一步,在另一种可行的实施方式中,S102步骤可以包括:
步骤11:获取固件对应的特征信息;特征信息包括特征字符串和/或特征文件名。
步骤12:利用特征信息确定服务类别。
固件为可执行文件,其中的内容为物联网设备在硬件上具体执行的内容,其本身具有可以反映其服务类别的特征,该特征即为特征信息。特征信息可以为特征字符串,例如某一服务类别独有的函数字符串。特征信息还可以为特征文件名,该文件名即为可执行文件的文件名,不同的物联网设备中可执行文件的文件名可以不同。特征信息还可以采用其他形式,其具体包括的信息形式可以有一种或多种,例如可以同时包括特征字符串和特征文件名。利用上述方法,可以准确地确定固件对应的服务类别。
S103:获取与服务类别对应的补丁文件,并利用补丁文件进行补丁处理,得到固件虚拟机。
在确定服务类别后,可以获取与服务类别对应的补丁文件。可以理解的是,由于不同服务类别所需要的硬件环境不同,仅采用通用的补丁文件进行补丁处理仅能对部分固件所需的硬件环境进行弥补,无法补充所有部件所需的硬件环境,进而导致仿真模拟的成功率较低。正是为了解决这个问题,本申请在获取补丁文件时,需要获取与服务类别对应的补丁文件,该补丁文件可以对固件所需的硬件环境进行弥补,当多个固件具有不同的服务类别时,可以采用不同的补丁文件进行针对性补丁处理,使其均可以成功进行仿真模拟。
补丁处理包括补丁操作,补丁操作为对固件打上对应的运行环境补丁的操作,以便对硬件环境进行弥补。在一种具体的实施方式中,补丁处理为hook补丁处理,补丁操作为hook操作。具体的,hook操作用于在进行设备固件模拟时,固件程序(即本申请中的固件)中通常存在一些与硬件环境有关的操作函数,如库函数nvram_get等,此时一般难以直接模拟硬件操作。因此在模拟时可以对此类函数进行劫持并进行hook操作,改变函数的具体代码操作或者返回值。编译同名函数的动态链接库程序。将改变LD_PRELOAD环境变量为此动态链接库程序,可以对固件程序运行所需要加载的库函数进行劫持,使得固件程序在执行到被劫持的函数时,会去执行被hook的指定函数,以便提高硬件环境弥补的可靠性,进而提高仿真模拟的成功率。
例如,对于常见的基于Goahead的web服务的路由器设备,在检测到目标固件运行了Goahead服务时,就对其打上对应服务的补丁。在一种实施方式中,将一些Goahead中常见的硬件操作函数进行hook,劫持LD_PRELAOD环境变量,改变函数的返回值。在另一种实施方式中,可以使用radare2工具对固件程序的二进制代码进行patch补丁修改。
补丁文件的具体内容不做限定,例如可以用于指定对哪些函数进行hook补丁处理,或者可以指定进行怎样的hook补丁处理,或者可以为对二进制代码进行怎样的修改。在进行补丁处理后可以生成固件虚拟机,固件虚拟机位于宿主机上,用于进行固件仿真模拟,其具体生成方式可以参考相关技术,在此不再赘述。
可以理解的是,由于服务类别具有多种,因此对应的补丁文件也存在多个,获取补丁文件的步骤可以包括:
步骤21:确定服务类别对应的类别标识。
步骤22:利用类别标识获取补丁文件。
各个服务类别均具有类别标识,将类别标识与补丁文件相对应,即可实现服务类别与补丁文件之间的一一对应关系。类别标识具体可以为服务类别的名称,或者可以为服务类别的编号。利用类别标识可以准确地获取对应的补丁文件。
请参考图2,图2为本申请实施例提供的一种补丁处理流程示意图。在识别固件运行的具体应用服务后,根据其服务类别的不同,例如goahead服务、httpd服务等,进行针对性的hook补丁处理,得到处理后的固件,进而得到固件虚拟机。
S104:对固件虚拟机进行仿真模拟处理,得到模拟结果。
在得到固件虚拟机后对其进行仿真模拟处理,进而得到模拟结果。固件虚拟机经过了具有针对性地补丁处理,可以保证其能够成功进行仿真模拟,提高了仿真模拟的成功率,得到的仿真结果也更加可靠,仿真模拟处理的具体过程不做限定。进一步的,为了防止固件虚拟机进行仿真模拟处理时与宿主机的网络连接断开,本实施例采用点对点连接的方式将固件虚拟机和宿主机进行连接。具体的,S104步骤可以包括:
步骤31:获取虚拟网卡配置信息,并利用虚拟网卡配置信息在本地配置第一虚拟网卡。
步骤32:为固件虚拟机配置具有第二IP地址的第二虚拟网卡,并建立第一虚拟网卡和第二虚拟网卡之间的点对点连接。
步骤33:基于点对点连接对固件虚拟机进行仿真模拟处理。
需要说明的是,第二IP地址为与第一虚拟网卡对应的第一IP地址处于同一子网网段的IP地址。在本实施例中,第一虚拟网卡为宿主机采用的虚拟网卡,具体可以为tap虚拟网卡,在这种情况下,第一虚拟网卡可以为tap0网卡。虚拟网卡配置信息可以记录tap0网卡对应的IP地址,即第一IP地址。虚拟网卡配置信息还可以规定第一IP地址对应的子网网段,以便在后续配置第二虚拟网卡。在配置好第一虚拟网卡后,可以为固件虚拟机配置第二虚拟网卡,该第二虚拟网卡具有固定的第二IP地址。在配置好第二虚拟网卡后,可以建立第一虚拟网卡和第二虚拟网卡的点对点连接,并基于点对点连接对固件虚拟机进行仿真模拟处理。
具体的,为固件虚拟机配置具有第二IP地址的第二虚拟网卡,并建立第一虚拟网卡和第二虚拟网卡之间的点对点连接的步骤可以包括:
步骤41:将第二虚拟网卡对应的目标参数设置为第一参数,以便在第一虚拟网卡和第二虚拟网卡间建立管道通信。
步骤42:从启动参数中获取第二IP地址,并利用第二IP地址对第二虚拟网卡进行配置。
具体的,第二虚拟网卡对应的目标参数为-net参数,第一参数为第一虚拟网卡对应的类型参数,通过将目标参数设置为第一参数,可以在第一虚拟网卡和第二虚拟网卡间建立管道通信。请参考图3,图3为本申请实施例提供的一种点对点通信示意图。第二虚拟网卡为eth0网卡,当第一虚拟网卡为tap0虚拟网卡时,可以将-net参数设置为tap,即可将虚拟机中eth0网卡与宿主机中的tap0虚拟网卡建立管道通信。启动参数用于对固件虚拟机进行启动,以便对其进行仿真模拟处理。启动参数可以用于对eth0网卡进行配置,为eth0网卡分配静态IP,例如可以包括对eth0网卡配置、分配静态IP的命令。将eth0网卡的IP地址设置成和tap0虚拟网卡位于同一子网网段的任意一个IP地址,基于qemu模拟器的环境,第一虚拟网卡和第二虚拟网卡就可以建立起点对点的网络通信,即点对点连接。分配静态IP的命令可以为直接指定IP的命令,或者可以为在虚拟网卡配置信息规定的第一IP地址对应的子网网段中选择IP的命令。在确定IP地址后建立点对点连接,可以保证固件虚拟机与宿主机之间的网络连接,相比采用DHCP协议(动态主机配置协议)进行网络连接具有更好地可靠性。
进一步,为了防止在仿真模拟过程中,输入不可控或大量报错导致仿真模拟过程不可控的情况,在进行仿真模拟处理之前,还可以包括:
步骤51:设置固件虚拟机对应的目标服务后门;目标服务后门包括telnet服务后门、ssh服务后门。
相应的,还可以包括:
步骤52:若检测到模拟故障,则利用目标服务后门对固件虚拟机进行控制。
本实施例并不限定设置目标服务后门的具体方式,例如可以在目标文件中注入目标服务的后门,目标服务为通信协议服务。请参考图4,图4为本申请实施例提供的一种目标服务后门注入流程示意图。具体的,可以在固件虚拟机对应的文件***中的启动脚本(如rcS、inittab等)中加入telnet服务、ssh服务命令的后门,使得即使在固件模拟时,在出现模拟故障时,例如固件虚拟机的命令行窗口中输入不可控、出现大量报错的情况,依然可以利用目标服务后门在宿主机和固件虚拟机进行正常网络通信,即使用其他通信协议来对固件虚拟机进行控制和调试。需要说明的是,本实施例并不限定设置目标服务后门、进行点对点连接网络配置和生成固件虚拟机这三个步骤的执行顺序,例如可以并行执行,即同时执行,或者可以串行执行,即先后执行。
综合上述步骤说明,本实施例将说明一种具体的固件仿真模拟过程。以D-LinkDIR-878路由器为例,首先获取固件文件,并在固件仿真平台上进行基于固件格式的解析,解析完在后得到的文件***之后,在rcS、inittab等启动脚本中加入对虚拟机eth0网卡的网络配置相关的shell命令,同时在脚本中注入telnet、ssh等服务命令的后门。通过搜索、解析出该文件***中运行的服务之后进行补丁,并判断服务是否需要通过hook进行启动,如果确定需要hook,就根据对应的服务在hook脚本中运行相应的代码。hook服务完成之后,使用qemu模拟器进行模拟启动设备的对应服务,对模拟的服务进行测试。
应用本申请实施例提供的固件仿真模拟方法,在提取到固件文件对应的文件***后,对其中的固件分别提供哪些服务进行检测,即识别固件对应的服务类别。由于不同固件在提供不同服务时通常基于不同的硬件环境,且固件中通常存在一些与硬件环境有关的操作函数。因此为了提高仿真成功率,可以利用与服务类别对应的补丁文件进行补丁处理,以便利用软件模拟该服务类别对应的硬件环境,对与硬件环境有关的操作函数进行针对性处理,使其能够被仿真,进而提高仿真模拟的成功率。该方法根据服务类别的不同,利用不同的补丁文件进行具有针对性的补丁处理,使得固件虚拟机更加贴近真实情况,可以提高仿真模拟处理的成功率,解决了相关技术存在的仿真成功率较低的问题。
下面对本申请实施例提供的固件仿真模拟装置进行介绍,下文描述的固件仿真模拟装置与上文描述的固件仿真模拟方法可相互对应参照。
请参考图5,图5为本申请实施例提供的一种固件仿真模拟装置的结构示意图,包括:
文件***获取模块110,用于获取固件文件,并从固件文件中提取文件***;
服务类别识别模块120,用于识别文件***中的固件对应的服务类别;
补丁处理模块130,用于获取与服务类别对应的补丁文件,并利用补丁文件进行补丁处理,得到固件虚拟机;
仿真模拟模块140,用于对固件虚拟机进行仿真模拟处理,得到模拟结果。
可选地,仿真模拟模块140,包括:
第一配置单元,用于获取虚拟网卡配置信息,并利用虚拟网卡配置信息在本地配置第一虚拟网卡;
第二配置单元,用于为固件虚拟机配置具有第二IP地址的第二虚拟网卡,并建立第一虚拟网卡和第二虚拟网卡之间的点对点连接;第二IP地址为与第一虚拟网卡对应的第一IP地址处于同一子网网段的IP地址;
仿真单元,用于基于点对点连接对固件虚拟机进行仿真模拟处理。
可选地,第二配置单元,包括:
管道通信建立子单元,用于将第二虚拟网卡对应的目标参数设置为第一参数,以便在第一虚拟网卡和第二虚拟网卡间建立管道通信;
地址配置子单元,用于从启动参数中获取第二IP地址,并利用第二IP地址对第二虚拟网卡进行配置。
可选地,还包括:
后门设置模块,用于设置固件虚拟机对应的目标服务后门;目标服务后门包括telnet服务后门、ssh服务后门。
可选地,还包括:
控制模块,用于若检测到模拟故障,则利用目标服务后门对固件虚拟机进行控制。
可选地,服务类别识别模块120,包括:
特征信息获取单元,用于获取固件对应的特征信息;特征信息包括特征字符串和/或特征文件名;
类别确定单元,用于利用特征信息确定服务类别。
可选地,补丁处理模块130,包括:
标识确定单元,用于确定服务类别对应的类别标识;
补丁文件获取单元,用于利用类别标识获取补丁文件。
下面对本申请实施例提供的电子设备进行介绍,下文描述的电子设备与上文描述的固件仿真模拟方法可相互对应参照。
请参考图6,图6为本申请实施例提供的一种电子设备的结构示意图。其中电子设备100可以包括处理器101和存储器102,还可以进一步包括多媒体组件103、信息输入/信息输出(I/O)接口104以及通信组件105中的一种或多种。
其中,处理器101用于控制电子设备100的整体操作,以完成上述的固件仿真模拟方法中的全部或部分步骤;存储器102用于存储各种类型的数据以支持在电子设备100的操作,这些数据例如可以包括用于在该电子设备100上操作的任何应用程序或方法的指令,以及应用程序相关的数据。该存储器102可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,SRAM)、电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、只读存储器(Read-OnlyMemory,ROM)、磁存储器、快闪存储器、磁盘或光盘中的一种或多种。
多媒体组件103可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器102或通过通信组件105发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口104为处理器101和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件105用于电子设备100与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near Field Communication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件105可以包括:Wi-Fi部件,蓝牙部件,NFC部件。
电子设备100可以被一个或多个应用专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、数字信号处理器(Digital Signal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field ProgrammableGate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述实施例给出的固件仿真模拟方法。
下面对本申请实施例提供的计算机可读存储介质进行介绍,下文描述的计算机可读存储介质与上文描述的固件仿真模拟方法可相互对应参照。
本申请还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述的固件仿真模拟方法的步骤。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应该认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系属于仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语包括、包含或者其他任何变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种固件仿真模拟方法,其特征在于,包括:
获取固件文件,并从所述固件文件中提取文件***;
识别所述文件***中的固件对应的服务类别;
获取与所述服务类别对应的补丁文件,并利用所述补丁文件进行补丁处理,得到固件虚拟机;
对所述固件虚拟机进行仿真模拟处理,得到模拟结果。
2.根据权利要求1所述的固件仿真模拟方法,其特征在于,所述对所述固件虚拟机进行仿真模拟处理,包括:
获取虚拟网卡配置信息,并利用所述虚拟网卡配置信息在本地配置第一虚拟网卡;
为所述固件虚拟机配置具有第二IP地址的第二虚拟网卡,并建立所述第一虚拟网卡和第二虚拟网卡之间的点对点连接;所述第二IP地址为与所述第一虚拟网卡对应的第一IP地址处于同一子网网段的IP地址;
基于所述点对点连接对所述固件虚拟机进行仿真模拟处理。
3.根据权利要求2所述的固件仿真模拟方法,其特征在于,所述为所述固件虚拟机配置具有第二IP地址的第二虚拟网卡,并建立所述第一虚拟网卡和第二虚拟网卡之间的点对点连接,包括:
将所述第二虚拟网卡对应的目标参数设置为第一参数,以便在所述第一虚拟网卡和第二虚拟网卡间建立管道通信;
从启动参数中获取所述第二IP地址,并利用所述第二IP地址对所述第二虚拟网卡进行配置。
4.根据权利要求1所述的固件仿真模拟方法,其特征在于,还包括:
设置所述固件虚拟机对应的目标服务后门;所述目标服务后门包括telnet服务后门、ssh服务后门。
5.根据权利要求4所述的固件仿真模拟方法,其特征在于,还包括:
若检测到模拟故障,则利用所述目标服务后门对所述固件虚拟机进行控制。
6.根据权利要求1所述的固件仿真模拟方法,其特征在于,所述识别所述文件***中的固件对应的服务类别,包括:
获取所述固件对应的特征信息;所述特征信息包括特征字符串和/或特征文件名;
利用所述特征信息确定所述服务类别。
7.根据权利要求1所述的固件仿真模拟方法,其特征在于,所述获取与所述服务类别对应的补丁文件,包括:
确定所述服务类别对应的类别标识;
利用所述类别标识获取所述补丁文件。
8.一种固件仿真模拟装置,其特征在于,包括:
文件***获取模块,用于获取固件文件,并从所述固件文件中提取文件***;
服务类别识别模块,用于识别所述文件***中的固件对应的服务类别;
补丁处理模块,用于获取与所述服务类别对应的补丁文件,并利用所述补丁文件进行补丁处理,得到固件虚拟机;
仿真模拟模块,用于对所述固件虚拟机进行仿真模拟处理,得到模拟结果。
9.一种电子设备,其特征在于,包括存储器和处理器,其中:
所述存储器,用于保存计算机程序;
所述处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的固件仿真模拟方法。
10.一种计算机可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的固件仿真模拟方法。
CN202011141413.3A 2020-10-22 2020-10-22 一种固件仿真模拟方法、装置、电子设备及可读存储介质 Withdrawn CN112241311A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011141413.3A CN112241311A (zh) 2020-10-22 2020-10-22 一种固件仿真模拟方法、装置、电子设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011141413.3A CN112241311A (zh) 2020-10-22 2020-10-22 一种固件仿真模拟方法、装置、电子设备及可读存储介质

Publications (1)

Publication Number Publication Date
CN112241311A true CN112241311A (zh) 2021-01-19

Family

ID=74169956

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011141413.3A Withdrawn CN112241311A (zh) 2020-10-22 2020-10-22 一种固件仿真模拟方法、装置、电子设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN112241311A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113438273A (zh) * 2021-05-21 2021-09-24 中国科学院信息工程研究所 一种物联网设备中应用程序的用户级仿真方法及装置
CN113468010A (zh) * 2021-09-02 2021-10-01 湖北芯擎科技有限公司 文件处理方法、装置、电子设备和计算机可读存储介质
CN113703920A (zh) * 2021-08-27 2021-11-26 烽火通信科技股份有限公司 一种硬件仿真方法及平台
CN113904945A (zh) * 2021-10-15 2022-01-07 杭州安恒信息技术股份有限公司 物联网设备模拟调试方法、装置、电子装置和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109375945A (zh) * 2018-08-28 2019-02-22 中国人民解放军国防科技大学 物联网设备的固件版本探测方法及漏洞修复率评估方法
CN110941832A (zh) * 2019-11-28 2020-03-31 杭州安恒信息技术股份有限公司 一种嵌入式物联网设备固件漏洞挖掘方法、装置及设备
CN111400719A (zh) * 2020-03-12 2020-07-10 中国科学院信息工程研究所 基于开源组件版本识别的固件脆弱性判别方法及***

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109375945A (zh) * 2018-08-28 2019-02-22 中国人民解放军国防科技大学 物联网设备的固件版本探测方法及漏洞修复率评估方法
CN110941832A (zh) * 2019-11-28 2020-03-31 杭州安恒信息技术股份有限公司 一种嵌入式物联网设备固件漏洞挖掘方法、装置及设备
CN111400719A (zh) * 2020-03-12 2020-07-10 中国科学院信息工程研究所 基于开源组件版本识别的固件脆弱性判别方法及***

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
朱怀东 等: ""基于内存模糊测试的嵌入式固件漏洞检测"", 《计算机工程与设计》, 16 September 2018 (2018-09-16), pages 0 - 4 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113438273A (zh) * 2021-05-21 2021-09-24 中国科学院信息工程研究所 一种物联网设备中应用程序的用户级仿真方法及装置
CN113438273B (zh) * 2021-05-21 2022-08-16 中国科学院信息工程研究所 一种物联网设备中应用程序的用户级仿真方法及装置
CN113703920A (zh) * 2021-08-27 2021-11-26 烽火通信科技股份有限公司 一种硬件仿真方法及平台
CN113703920B (zh) * 2021-08-27 2023-08-08 烽火通信科技股份有限公司 一种硬件仿真方法及平台
CN113468010A (zh) * 2021-09-02 2021-10-01 湖北芯擎科技有限公司 文件处理方法、装置、电子设备和计算机可读存储介质
CN113904945A (zh) * 2021-10-15 2022-01-07 杭州安恒信息技术股份有限公司 物联网设备模拟调试方法、装置、电子装置和存储介质
CN113904945B (zh) * 2021-10-15 2024-04-09 杭州安恒信息技术股份有限公司 物联网设备模拟调试方法、装置、电子装置和存储介质

Similar Documents

Publication Publication Date Title
CN112241311A (zh) 一种固件仿真模拟方法、装置、电子设备及可读存储介质
CN108959068B (zh) 软件界面测试方法、设备及存储介质
CN108845930B (zh) 界面操作测试方法和装置、存储介质及电子装置
CN111026645B (zh) 用户界面自动化测试方法、装置、存储介质及电子设备
CN111367534B (zh) 一种基于应用环境的服务编排方法及***
CN107678949B (zh) 实现嵌入式设备不同通信方式的自动化测试方法
CN109614325B (zh) 一种确定控件属性的方法及装置、电子设备和存储介质
CN109683997B (zh) 通过沙箱访问应用程序接口的方法、沙箱及沙箱设备
CN112732587B (zh) 一种自动化测试日志的获取方法、装置、电子设备及存储介质
CN106648762B (zh) 一种搭建开发环境的方法及装置
CN111770174A (zh) 一种云平台部署方法、装置、设备及可读存储介质
CN107113199B (zh) 用于分析和处理通信序列的分析装置
CN111651352B (zh) 一种仓库代码的合并方法及装置
CN112463256A (zh) 确定配置文件的方法、***、电子设备及存储介质
CN111522749B (zh) 页面测试方法、装置、可读存储介质及电子设备
CN116166525A (zh) 一种测试脚本的生成方法及装置
CN113986270B (zh) 分布式应用部署方法、装置、存储介质及电子设备
CN113360379B (zh) 程序测试环境创建方法和程序测试环境创建装置
CN109976773B (zh) 游戏测试环境的部署方法和装置
CN111930625A (zh) 基于云服务平台的日志获取方法、装置及***
US20090066984A1 (en) Device setting apparatus, device setting method, information acquiring apparatus, information acquiring method, storage medium, and program
CN115904978A (zh) 一种Redfish接口测试方法、计算设备及存储介质
CN113986263A (zh) 代码自动化测试方法、装置、电子设备、存储介质
CN115705284A (zh) 一种自动化测试***、方法、设备及介质
CN113515452A (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
WW01 Invention patent application withdrawn after publication
WW01 Invention patent application withdrawn after publication

Application publication date: 20210119