CN116522368A - 一种物联网设备固件解密解析方法、电子设备、介质 - Google Patents

一种物联网设备固件解密解析方法、电子设备、介质 Download PDF

Info

Publication number
CN116522368A
CN116522368A CN202310781574.6A CN202310781574A CN116522368A CN 116522368 A CN116522368 A CN 116522368A CN 202310781574 A CN202310781574 A CN 202310781574A CN 116522368 A CN116522368 A CN 116522368A
Authority
CN
China
Prior art keywords
firmware
file
kernel
compressed
decryption
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.)
Pending
Application number
CN202310781574.6A
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.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
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 Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN202310781574.6A priority Critical patent/CN116522368A/zh
Publication of CN116522368A publication Critical patent/CN116522368A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种物联网设备固件解密解析方法、电子设备、介质,包括:获取固件文件;当固件文件被加密时,判断固件文件的加密算法,并采用对应的解密算法和/或解密密钥对固件文件进行解密;当解密后的固件文件为压缩文件时,判定压缩文件对应的压缩算法的类型,对压缩文件进行解压缩;结合Magic签名对解压缩后的固件文件中的固件头、引导程序、内核和根文件系统进行特征标记与识别,依据固件头、引导程序、内核和根文件系统间的关系特征对所识别的固件头、引导程序、内核和根文件系统进行验证;当验证通过后,对固件头、引导程序、内核和根文件系统进行定位、提取及还原。

Description

一种物联网设备固件解密解析方法、电子设备、介质
技术领域
本发明属于计算机网络安全技术领域,尤其是一种物联网设备固件解密解析方法、电子设备、介质。
背景技术
在对物联网设备固件进行解密解析前,首先要获取固件,使用网页爬虫在设备生产厂商提供的官网上进行固件压缩包的下载,对于没有提供下载网页的固件,选择通过硬件接入直接读取固件存储芯片的方式,绕过控制设备控制器,直接控制设备的 Flash芯片,读取到芯片中的整片内容。
获取固件镜像后,需要解压固件镜像并从解压文件中提取根文件系统文件夹,主要的挑战是固件镜像可能由非通用算法压缩或由厂商加密,这样一来很难构建适用于不同供应商、设备和固件版本的不同镜像的通用解决方案。例如,一些供应商仅为其产品分发部分固件镜像,阻止重新构建根文件系统。此外,还有一些供应商在二进制更新器可执行文件中分发加密的固件镜像、非基于linux的固件镜像,这些都很难提供支持。
固件解析旨在对收集的固件镜像进行解密解压,还原出文件系统。大规模固件解析面临的主要挑战有:镜像多重加密、压缩加密算法繁多、获取的固件镜像不完整。针对不同物联网设备厂商固件压缩加密算法不一致、镜像多重加密等问题,需要准备能解密多种固件的技术方法以及对应的解密程序,同时了解固件加密涉及的相关各类密码知识。
由于各压缩工具(或版本)对标准实现的差异或厂商对标准实现进行过修改,导致不同厂商设计的固件往往具有不同的结构,采用标准解析程序经常出现解析失败的问题,难以形成完备统一的解包方案。解析过程具有耗时长、资源占用多的特点,批量分析任务常面临性能瓶颈。
因此,亟需提出一种物联网设备固件解密解析方法,以实现对不同来源的固件进行自动化解析的功能,同时还需根据任务需求调整解析的效率。
发明内容
为了解决上述存在的问题,本发明提出了一种物联网设备固件解密解析方法、电子设备、介质。
根据本发明实施例的第一方面,提供了一种物联网设备固件解密解析方法,所述方法包括:
获取固件文件;
当固件文件被加密时,判断固件文件的加密算法,并采用对应的解密算法和/或解密密钥对固件文件进行解密;
当解密后的固件文件为压缩文件时,判定压缩文件对应的压缩算法的类型,对压缩文件进行解压缩;
结合Magic签名对解压缩后的固件文件中的固件头、引导程序、内核和根文件系统进行特征标记与识别,依据固件头、引导程序、内核和根文件系统间的关系特征对所识别的固件头、引导程序、内核和根文件系统进行验证;当验证通过后,对固件头、引导程序、内核和根文件系统进行定位、提取及还原。
进一步地,当固件文件被加密时,判断固件文件的加密算法,并采用对应的解密算法和/或解密密钥对固件文件进行解密,包括:
判断固件文件是否有加密;当固件文件被加密时,通过穷举法判断加密的固件文件对应的加密算法,并判断是否属于可解密的固件类型;
根据固件文件的加密算法,获取对应的解密算法和/或解密密钥对固件文件进行解密。
进一步地,判断固件文件是否有加密,包括:
使用解析工具binwalk进行尝试;
利用熵值判断固件文件的加密状态;
和/或,
通过匹配magic值法判断固件文件的加密状态。
进一步地,获取对应的解密算法和/或解密密钥对固件文件进行解密,包括:
获取解密算法包括:如果嵌入式设备可以解密更新的固件文件,则解密算法位于旧固件文件中,在固件文件中寻找解密算法;和/或,获取固件文件的旧版本,下载固件文件的所有旧版本并分析加密逻辑,得到解密算法;
获取解密密钥包括:分析加密的固件文件获得解密密钥;和/或,通过暴力破解法、明文攻击法或CRC32碰撞法破解得到解密密钥。
进一步地,当解密后的固件文件为压缩文件时,判定压缩文件对应的压缩算法的类型,对压缩文件进行解压缩,包括:
对压缩文件进行头定位和尾定位,得到压缩数据的存储区域;
其中,压缩文件头为存储压缩信息的数据结构,用于存储压缩算法标识、压缩文件大小、被压缩数据大小;压缩文件尾用于存储压缩数据的较验信息和压缩文件尾部标识;
对压缩数据进行转存,判定对应的压缩算法的类型,对压缩数据进行解压缩还原,得到固件镜像中被压缩的内核和根文件系统。
进一步地,结合Magic签名对解压缩后的固件文件中的固件头、引导程序、内核和根文件系统进行特征标记与识别,包括:
通过Magic签名文件记录固件文件中的固件头、引导程序、内核和根文件系统的特征;所述Magic签名文件包括偏移量、起始数据及对应的数据类型;所述偏移量用于反应固件头、引导程序、内核和根文件系统的起始地址;将Magic签名文件中的起始数据及对应的数据类型与固件头、引导程序、内核和根文件系统的起始数据及对应的数据类型进行匹配;
还包括:
针对固件中能够唯一标识固件头、引导程序、内核和根文件系统的起始地址的数据结构、关键字进行统一抽取匹配,获取固件头、引导程序、内核和根文件系统的起始地址,以此进行筛选过滤。
进一步地,固件头、引导程序、内核和根文件系统间的关系特征包括格式关键字特征和结构化特征;
所述格式关键字特征用于根据固件头部格式的不同判定对固件文件的类型,根据嵌入式设备以及固件文件版本的信息为固件头、引导程序、内核和根文件系统的定位提供依据;
所述结构化特征是在固件文件中所存在的结构化二进制文件所表现出来的文件特征。
根据本发明实施例的第二方面,提供了一种物联网设备固件解密解析系统,所述系统包括:
固件文件获取单元,用于获取固件文件;
固件解密单元,用于当固件文件被加密时,判断固件文件的加密算法,并采用对应的解密算法和/或解密密钥对固件文件进行解密;
固件解压缩单元,用于当解密后的固件文件为压缩文件时,判定压缩文件对应的压缩算法的类型,对压缩文件进行解压缩;
固件信息提取单元,用于结合Magic签名对解压缩后的固件文件中的固件头、引导程序、内核和根文件系统进行特征标记与识别,依据固件头、引导程序、内核和根文件系统间关系特征对所识别的固件头、引导程序、内核和根文件系统进行验证;当验证通过后,对固件头、引导程序、内核和根文件系统进行定位、提取及还原。
根据本发明实施例的第三方面,提供了一种电子设备,包括存储器和处理器,所述存储器与所述处理器耦接;其中,所述存储器用于存储程序数据,所述处理器用于执行所述程序数据以实现上述的物联网设备固件解密解析方法。
根据本发明实施例的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述的物联网设备固件解密解析方法。
与现有技术相比,本发明的有益效果为:
本发明提出了一种物联网设备固件解密解析方法,当固件文件被加密时,判断固件文件的加密算法,并采用对应的解密算法和/或解密密钥对固件文件进行解密。当解密后的固件文件为压缩文件时,判定压缩文件对应的压缩算法的类型,对压缩文件进行解压缩。结合Magic签名对解压缩后的固件文件中的固件头、引导程序、内核和根文件系统进行特征标记与识别,并进行验证;当验证通过后,对固件头、引导程序、内核和根文件系统进行定位、提取及还原。本发明实现了一个固件解密解析的完整流程,包含固件解密解析所涉及的各个步骤,可以高效地将原始固件文件转化为可仿真的系统文件,从而提升固件解密解析效率,为固件仿真提供基础。针对某一固件文件解包后,可以对固件的文件系统进行深度分析,过滤并获取可反汇编的二进制文件,为对二进制文件的信息识别、深度分析提供基础,深度分析如操作系统、通信协议、CPU架构、系统及Web组件、加密算法等分析。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种物联网设备固件解密解析方法的流程图;
图2是本发明实施例提供的固件文件解压缩的示意图;
图3是本发明实施例提供的固件文件特征匹配提取及还原的示意图;
图4是本发明实施例提供的固件文件组成的示意图;
图5是本发明实施例提供的一种物联网设备固件解密解析系统的示意图;
图6是本发明实施例提供的一种电子设备的示意图。
具体实施方式
以下将揭露本发明的实施方式,为明确说明起见,许多实务上的细节将在以下叙述中一并说明。然而,应了解到,这些实务上的细节不应用以限制本发明。也就是说,在本发明的部分实施方式中,这些实务上的细节是非必要的。
如图1所示,本发明提出了一种物联网设备固件解密解析方法,所述方法包括以下步骤:
步骤S1,获取固件文件。
图4示出了固件文件的组成结构图,固件是嵌入式设备中所有软件的集合,其中,包含操作系统和一系列可执行程序。对Linux、VxWorks等嵌入式操作系统分析得出,嵌入式固件文件一般包含四个主要模块即:固件头、引导程序、内核代码、根文件系统。
其中,固件头(Header)包含了关于整个固件文件的信息(即公共信息)和固件文件中镜像文件的信息。引导程序(Boot Loader)为汇编语言和C语言编写的程序,用来初始化相关硬件并引导加载内核,内核代码(Kernel Code)操作系统的主要组件,也是计算机硬件与其进程之间的核心接口,它负责两者之间的通信,还要尽可能高效地管理资源。根文件系统(Boot Filesystem)用于记录整个文件系统的详细参数信息,定位超级块结构中的magic等关键字信息就能够对整个文件系统进行准确的定位。
步骤S2,当固件文件被加密时,判断固件文件的加密算法,并采用对应的解密算法和/或解密密钥对固件文件进行解密。
进一步地,所述步骤S2具体包括以下子步骤:
步骤S201,判断固件文件是否有加密;当固件文件被加密时,通过穷举法判断加密的固件文件采用了何种加密算法(例如,RSA、AES、LZO、XOR),并判断是否属于可解密的固件类型。
针对固件是否加密通常采用以下三种方法进行判断:
(A)使用解析工具binwalk进行尝试。
(B)利用熵值判断加密状态。
(C)通过匹配magic值的方式判断。
步骤S202,根据固件文件的加密算法采用对应的解密算法和/或解密密钥对固件文件进行解密。
需要说明的是,解密是加密过程的逆运算,需要调用相应的解密算法和/或解密密钥对加密固件进行解密。
进一步地,获取解密算法的方式包括:
(A)在固件文件中寻找解密算法:如果嵌入式设备可以解密更新的固件文件,那么解密算法位于旧固件文件中。
(B)访问固件厂商的官网并寻找固件文件的旧版本,然后下载固件文件的所有旧版本并开始分析加密逻辑,得到解密算法。
进一步地,获取解密密钥的方式包括:
(A)在固件文件中寻找解密密钥。
解密密钥可能与加密的固件文件打包在一起,通过分析加密的固件文件的可以获得解密密钥。例如:ZIP文件的属性一栏,往往有时候加密者会把解密密钥放在属性里面。
(B)针对某些加密算法比较简单的加密文件,可以尝试进行破解解密密钥。解密密钥破解的方法包括。
1.暴力破解
顾名思义,就是逐个尝试选定集合中可以组成的所有密码,直到遇到正确解密密码。字典攻击的效率比爆破稍高,因为字典中存储了常用的密码,因此就避免了爆破时把时间浪费在脸滚键盘类的密码上。
而如果已知密码的某几位,如已知6位密码的第3位是a,那么可以构造“??a???”进行掩码攻击,掩码攻击的原理相当于构造了第3位为a的字典,因此掩码攻击的效率也比爆破高。
2.明文攻击
明文攻击是一种较为高效的攻击手段,其原理是:当不知道一个zip文件的解密密码,但是已有zip文件中的一个已知文件(文件大小要大于12Byte)的信息,或者已经通过其他手段知道zip加密文件中的某些内容时,因为同一个zip压缩包里的所有文件都是使用同一个加密密钥来加密的,所以可以通过已知文件寻找加密密钥,利用该密钥来解密其他加密文件。
3.CRC32碰撞
CRC本身是“冗余校验码”的意思,CRC32则表示会产生一个32bit(8位十六进制数)的校验值。
在产生CRC32时,源数据块的每一位都参与了运算,因此即使数据块中只有一位发生改变也会得到不同的CRC32值,利用这个原理可以直接爆破出加密文件的内容。
步骤S3,当解密后的固件文件为压缩文件时,判定压缩文件对应的压缩算法的类型,对压缩文件进行解压缩。
需要说明的是,对于内核或根文件系统采用压缩方式存储的固件,固件的特征必须在解压缩之后才能体现出来,所以压缩算法的识别与还原是一切分析的基础,只有正确地对固件中的压缩文件进行还原才能完成进一步的特征提取与识别工作。常用的压缩算法包括gzip、7z、bzip2、tar、arj、unrar、lzop、srec、unstuff等。嵌入式固件镜像中的压缩文件是一段被包含在二进制数据中的压缩文件,压缩文件的起始地址通常不是二进制数据片段的起始地址。识别过程需要首先结合压缩文件格式特征库定位压缩文件的起始地址,然后根据压缩文件的结构特征进行解析,定位结束地址,最终将压缩数据转存,调用外部解压缩插件进行解压缩还原被压缩数据。
具体地,如图2所示,所述步骤S3具体包括以下子步骤:
步骤S301,对压缩文件进行头定位和尾定位,得到压缩数据的存储区域。
其中,压缩文件头为存储压缩信息的数据结构,通常存储压缩算法标识(magic)、压缩文件大小、被压缩数据大小等,并且不同压缩文件存储信息不同。
表1为常见压缩算法标识表,每种压缩算法压缩出的文件的头部都会有固定的若干字节唯一标识一种压缩算法名,称为压缩算法标识(magic)。
表1:压缩算法标识表
压缩文件尾用于存储压缩数据的较验和压缩文件尾部标识等信息。
步骤S302,对压缩数据进行转存,判定对应的压缩算法的类型,对压缩数据进行解压缩还原,得到固件镜像中被压缩的内核和根文件系统。
步骤S4,结合Magic签名对解压缩后的固件文件中的固件头、引导程序、内核和根文件系统进行特征标记与识别,依据固件头、引导程序、内核和根文件系统间关系特征对所识别的固件头、引导程序、内核和根文件系统进行验证;当验证通过后,对固件头、引导程序、内核和根文件系统进行定位、提取及还原。
具体地,如图3所示,所述步骤S4具体包括以下子步骤:
步骤S401,结合Magic签名对解压缩后的固件文件中的固件头、引导程序、内核和根文件系统进行特征标记与识别。
进一步地,所述固件头包括固件头部信息、固件加载基地址、固件分区信息。
进一步地,特征标记识别需要借助Magic签名文件记录文件格式的特征。在Magic签名文件中,对于每一行内容,首先指定一个偏移量(offset),偏移量用于表示该从文件的什么位置开始进行识别。然后需要指定数据类型(type),用来明确寻找的数据是什么类型,例如,byte、float、string等。最后写上具体的数据内容。假设要为Windows可执行文件创建一个Magic签名文件,包括:
0 string MZ
这一行描述的特征是,在0偏移量也就是开头的位置,会出现一个字符串“MZ”,如果某个文件的首两个字符是MZ,那么这就符合了该Magic签名文件所描述的特征。需要说明的是,想要识别一种文件类型,往往不只是一行文字就能够实现,有时想要精确描述某一个文件的特征,可能需要编写几十行的规则。
所述步骤S401还包括:
针对固件中能够唯一标识固件头、引导程序、内核和根文件系统的起始地址的数据结构、关键字等信息进行统一抽取匹配,获取固件头、引导程序、内核和根文件系统的起始地址,以此进行筛选过滤。
其中,固件头部是固件主体部分在烧入flash之前写入的一些关于设备和固件的相关信息。固件头部一般来说都是分为两部分,即设备头部和固件格式头部。
设备头部跟设备厂家密切相关,内部一般包含设备名称版本等标识信息。通过识别固件的设备标识信息可以获取相应设备头部格式,进而实现对设备头部内容的解析。
固件格式头部一般来说分为trx、bin、usr三种格式,这三种格式结构是固定的,通过对这三种结构识别从而实现对固件格式头部的解析,进而获取固件内容的基本情况。
引导程序负责在内核启动之前完成一些初始化和软硬件环境建立工作,调用内核映像并把控制权转交内核。根据引导程序的引导方式不同可以通过两种方法来对其进行识别:引导程序一般来说是一个可执行程序,由于其自启动特性,它很有可能是存储在一个单独的NOR flash中。这种情况下可以对引导程序单独读取获取其模块,进而进行逆向分析理解其功能机理。第一阶段的引导程序和引导程序二者实现的功能只是简单的初始化和引导,所以规模一般较小,其内部包含第二阶段引导程序或者内核的引导地址,分析理解该模块可以有效支持后续模块的定位;引导程序如果是存储在NAND flash中,那么对引导程序的模块识别可以通过定位引导程序的末端和内核的起始端来实现,引导程序和内核之间一般会有一段空白区域,通过这些特点可以唯一定位引导程序模块。
内核是嵌入式Linux系统资源的管理者。内核的起始地址是引导程序执行完毕后直接调用执行的地址,所以内核的烧制地址跟引导程序是密切相关的。根据内核的加载方式可以通过三种方式对其进行识别:内核是通过引导程序进行加载的。通过对引导程序进行逆向分析理解可以实现对内核地址的直接定位,从而获取内核模块地址区间;内核有可能是压缩形式的。在这种情况下,通过对压缩内核的压缩格式进行定位并分析文件名字以及大小信息,从而实现内核模块的定位;内核有可能基于特殊的内核文件系统。通过对这种特殊的文件系统进行局部特征定位进而获取文件系统的整体模块,从而实现对内核的获取。
根文件系统是固件中的系统文件和应用文件的存储位置。文件系统由于占用空间较大,一般来说是存储在NAND flash上。文件系统无论是基于RAM的还是基于flash的,一般都会按照一定的文件系统格式存储在flash中。由于其格式相对固定,可以通过定位文件系统magic值,获取文件系统起始地址,进而实现文件系统模块的映像提取,完成文件系统中文件的还原。
固件文件中的固件头、引导程序、内核和根文件系统的分布特征抽取主要根据各模块在不同存储介质上的分布特性和各模块的存在格式以及运行方式,按照从头部到每个模块分情况递进式剥离,在每一个模块分析的过程中,根据常出现的各种情况对模块进行分情况讨论,最后定位模块区间,实现模块识别。
步骤S402,依据固件头、引导程序、内核和根文件系统间的关系特征对所识别的固件头、引导程序、内核和根文件系统进行验证。
关系特征主要包含:格式关键字特征、结构化特征。
构建格式关键字特征库,通过格式关键字特征库和关键字匹配算法对格式关键字特征进行匹配识别:首先对固件文件的类型进行初判,然后根据嵌入式设备以及固件文件版本的信息为固件头、引导程序、内核和根文件系统的定位提供依据。
具体来说,格式关键字特征主要依赖于固件头部格式的不同,固件头部格式主要有trx、usr和bin三种格式。固件代码的格式关键字特征解析在于提取关键字信息,通过对关键字信息的识别与格式关键字特征库中的固件格式对固件头部格式进行解析,实现格式关键字特征的提取。
结构化特征是在固件文件中所存在的结构化二进制文件所表现出来的文件特征。例如Windows Pe32可执行文件、Linux ELF执行文件和Macintosh通用二进制文件,以及字节码和可重定位对象。使用通过优先级排序后的签名,优先提取固件文件中结构化的二进制文件。
步骤S403,当验证通过后,对固件头、引导程序、内核和根文件系统进行定位、提取及还原。
根据上述步骤S402通过验证后的固件特征,定位固件文件中固件头、引导程序、内核和根文件系统的具体地址范围,对解密后的固件文件进行分割,实现各模块的提取。
综上所述,本发明提出了一种物联网设备固件解密解析方法,当固件文件被加密时,判断固件文件的加密算法,并采用对应的解密算法和/或解密密钥对固件文件进行解密。当解密后的固件文件为压缩文件时,判定压缩文件对应的压缩算法的类型,对压缩文件进行解压缩。结合Magic签名对解压缩后的固件文件中的固件头、引导程序、内核和根文件系统进行特征标记与识别,并进行验证;当验证通过后,对固件头、引导程序、内核和根文件系统进行定位、提取及还原。本发明实现了一个固件解密解析的完整流程,包含固件解密解析所涉及的各个步骤,可以高效地将原始固件文件转化为可仿真的系统文件,从而提升固件解密解析效率,为固件仿真提供基础。
如图5所示,本发明实施例还提供了一种物联网设备固件解密解析系统,所述系统包括:
固件文件获取单元,用于获取固件文件。
固件解密单元,用于当固件文件被加密时,判断固件文件的加密算法,并采用对应的解密算法和/或解密密钥对固件文件进行解密。
固件解压缩单元,用于当解密后的固件文件为压缩文件时,判定压缩文件对应的压缩算法的类型,对压缩文件进行解压缩。
固件信息提取单元,用于结合Magic签名对解压缩后的固件文件中的固件头、引导程序、内核和根文件系统进行特征标记与识别,依据固件头、引导程序、内核和根文件系统间关系特征对所识别的固件头、引导程序、内核和根文件系统进行验证;当验证通过后,对固件头、引导程序、内核和根文件系统进行定位、提取及还原。
相应的,本申请还提供一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述的物联网设备固件解密解析方法。如图6所示,为本发明实施例提供的物联网设备固件解密解析方法所在任意具备数据处理能力的设备的一种硬件结构图,除了图6所示的处理器、内存以及网络接口之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。
相应的,本申请还提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如上述的物联网设备固件解密解析方法。所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是外部存储设备,例如所述设备上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、SD卡、闪存卡(Flash Card)等。进一步的,所述计算机可读存储介还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
以上所述仅为本发明的较佳实施方式而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (10)

1.一种物联网设备固件解密解析方法,其特征在于,所述方法包括:
获取固件文件;
当固件文件被加密时,判断固件文件的加密算法,并采用对应的解密算法和/或解密密钥对固件文件进行解密;
当解密后的固件文件为压缩文件时,判定压缩文件对应的压缩算法的类型,对压缩文件进行解压缩;
结合Magic签名对解压缩后的固件文件中的固件头、引导程序、内核和根文件系统进行特征标记与识别,依据固件头、引导程序、内核和根文件系统间的关系特征对所识别的固件头、引导程序、内核和根文件系统进行验证;当验证通过后,对固件头、引导程序、内核和根文件系统进行定位、提取及还原。
2.根据权利要求1所述的物联网设备固件解密解析方法,其特征在于,当固件文件被加密时,判断固件文件的加密算法,并采用对应的解密算法和/或解密密钥对固件文件进行解密,包括:
判断固件文件是否有加密;当固件文件被加密时,通过穷举法判断加密的固件文件对应的加密算法,并判断是否属于可解密的固件类型;
根据固件文件的加密算法,获取对应的解密算法和/或解密密钥对固件文件进行解密。
3.根据权利要求2所述的物联网设备固件解密解析方法,其特征在于,判断固件文件是否有加密,包括:
使用解析工具binwalk进行尝试;
利用熵值判断固件文件的加密状态;
和/或,
通过匹配magic值法判断固件文件的加密状态。
4.根据权利要求2所述的物联网设备固件解密解析方法,其特征在于,获取对应的解密算法和/或解密密钥对固件文件进行解密,包括:
获取解密算法包括:如果嵌入式设备可以解密更新的固件文件,则解密算法位于旧固件文件中,在固件文件中寻找解密算法;和/或,获取固件文件的旧版本,下载固件文件的所有旧版本并分析加密逻辑,得到解密算法;
获取解密密钥包括:分析加密的固件文件获得解密密钥;和/或,通过暴力破解法、明文攻击法或CRC32碰撞法破解得到解密密钥。
5.根据权利要求1所述的物联网设备固件解密解析方法,其特征在于,当解密后的固件文件为压缩文件时,判定压缩文件对应的压缩算法的类型,对压缩文件进行解压缩,包括:
对压缩文件进行头定位和尾定位,得到压缩数据的存储区域;
其中,压缩文件头为存储压缩信息的数据结构,用于存储压缩算法标识、压缩文件大小、被压缩数据大小;压缩文件尾用于存储压缩数据的较验信息和压缩文件尾部标识;
对压缩数据进行转存,判定对应的压缩算法的类型,对压缩数据进行解压缩还原,得到固件镜像中被压缩的内核和根文件系统。
6.根据权利要求1所述的物联网设备固件解密解析方法,其特征在于,结合Magic签名对解压缩后的固件文件中的固件头、引导程序、内核和根文件系统进行特征标记与识别,包括:
通过Magic签名文件记录固件文件中的固件头、引导程序、内核和根文件系统的特征;所述Magic签名文件包括偏移量、起始数据及对应的数据类型;所述偏移量用于反应固件头、引导程序、内核和根文件系统的起始地址;将Magic签名文件中的起始数据及对应的数据类型与固件头、引导程序、内核和/或根文件系统的起始数据及对应的数据类型进行匹配;
还包括:
针对固件中能够唯一标识固件头、引导程序、内核和根文件系统的起始地址的数据结构、关键字进行统一抽取匹配,获取固件头、引导程序、内核和根文件系统的起始地址,以此进行筛选过滤。
7.根据权利要求1所述的物联网设备固件解密解析方法,其特征在于,固件头、引导程序、内核和根文件系统间的关系特征包括格式关键字特征和结构化特征;
所述格式关键字特征用于根据固件头部格式的不同判定对固件文件的类型,根据嵌入式设备以及固件文件版本的信息为固件头、引导程序、内核和根文件系统的定位提供依据;
所述结构化特征是在固件文件中所存在的结构化二进制文件所表现出来的文件特征。
8.一种物联网设备固件解密解析系统,其特征在于,所述系统包括:
固件文件获取单元,用于获取固件文件;
固件解密单元,用于当固件文件被加密时,判断固件文件的加密算法,并采用对应的解密算法和/或解密密钥对固件文件进行解密;
固件解压缩单元,用于当解密后的固件文件为压缩文件时,判定压缩文件对应的压缩算法的类型,对压缩文件进行解压缩;
固件信息提取单元,用于结合Magic签名对解压缩后的固件文件中的固件头、引导程序、内核和根文件系统进行特征标记与识别,依据固件头、引导程序、内核和根文件系统间关系特征对所识别的固件头、引导程序、内核和根文件系统进行验证;当验证通过后,对固件头、引导程序、内核和根文件系统进行定位、提取及还原。
9.一种电子设备,包括存储器和处理器,其特征在于,所述存储器与所述处理器耦接;其中,所述存储器用于存储程序数据,所述处理器用于执行所述程序数据以实现上述权利要求1-7任一项所述的物联网设备固件解密解析方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-7中任一所述的物联网设备固件解密解析方法。
CN202310781574.6A 2023-06-29 2023-06-29 一种物联网设备固件解密解析方法、电子设备、介质 Pending CN116522368A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310781574.6A CN116522368A (zh) 2023-06-29 2023-06-29 一种物联网设备固件解密解析方法、电子设备、介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310781574.6A CN116522368A (zh) 2023-06-29 2023-06-29 一种物联网设备固件解密解析方法、电子设备、介质

Publications (1)

Publication Number Publication Date
CN116522368A true CN116522368A (zh) 2023-08-01

Family

ID=87396232

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310781574.6A Pending CN116522368A (zh) 2023-06-29 2023-06-29 一种物联网设备固件解密解析方法、电子设备、介质

Country Status (1)

Country Link
CN (1) CN116522368A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117009982A (zh) * 2023-09-26 2023-11-07 统信软件技术有限公司 镜像文件的安全验证方法、装置、电子设备及存储介质
CN117892318A (zh) * 2024-03-12 2024-04-16 汉兴同衡科技集团有限公司 一种物联网智能终端数据安全保护方法、系统及存储装置

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030191955A1 (en) * 2001-05-10 2003-10-09 Ranco Incorporated Of Delaware System and method for securely upgrading firmware
US20170003956A1 (en) * 2015-07-01 2017-01-05 Quanta Computer Inc. Updating computer firmware
CN108418893A (zh) * 2018-03-20 2018-08-17 深圳市闪联信息技术有限公司 一种智能设备固件安全升级的方法
CN108595198A (zh) * 2018-04-18 2018-09-28 南京方寸微电子科技有限公司 一种安全的固件更新方法
CN111782511A (zh) * 2020-06-17 2020-10-16 国家计算机网络与信息安全管理中心 固件文件的分析方法、设备及存储介质
CN112015455A (zh) * 2020-10-29 2020-12-01 上海银基信息安全技术股份有限公司 固件升级方法、装置、电子设备和存储介质
CN112527744A (zh) * 2020-12-17 2021-03-19 深圳爱加密科技有限公司 一种固件类型识别方法、智能终端及计算机可读存储介质
CN113704180A (zh) * 2021-07-10 2021-11-26 国网浙江省电力有限公司信息通信分公司 一种基于嵌入式设备固件文件信息特征库的无损化固件提取方法
CN114327518A (zh) * 2021-12-31 2022-04-12 广州思睿芯科半导体有限公司 一种固件存储方法、固件读取方法、装置、芯片处理器及存储介质
CN114925372A (zh) * 2022-05-12 2022-08-19 北京控制与电子技术研究所 一种面向企业安全生产需求的固件安全检测方法
CN115062309A (zh) * 2022-06-10 2022-09-16 国网江苏省电力有限公司电力科学研究院 一种新型电力系统下基于设备固件仿真的漏洞挖掘方法及存储介质
CN115640022A (zh) * 2022-09-07 2023-01-24 安乃达驱动技术(上海)股份有限公司 通过数据压缩和加密升级固件的方法及系统

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030191955A1 (en) * 2001-05-10 2003-10-09 Ranco Incorporated Of Delaware System and method for securely upgrading firmware
US20170003956A1 (en) * 2015-07-01 2017-01-05 Quanta Computer Inc. Updating computer firmware
CN108418893A (zh) * 2018-03-20 2018-08-17 深圳市闪联信息技术有限公司 一种智能设备固件安全升级的方法
CN108595198A (zh) * 2018-04-18 2018-09-28 南京方寸微电子科技有限公司 一种安全的固件更新方法
CN111782511A (zh) * 2020-06-17 2020-10-16 国家计算机网络与信息安全管理中心 固件文件的分析方法、设备及存储介质
CN112015455A (zh) * 2020-10-29 2020-12-01 上海银基信息安全技术股份有限公司 固件升级方法、装置、电子设备和存储介质
CN112527744A (zh) * 2020-12-17 2021-03-19 深圳爱加密科技有限公司 一种固件类型识别方法、智能终端及计算机可读存储介质
CN113704180A (zh) * 2021-07-10 2021-11-26 国网浙江省电力有限公司信息通信分公司 一种基于嵌入式设备固件文件信息特征库的无损化固件提取方法
CN114327518A (zh) * 2021-12-31 2022-04-12 广州思睿芯科半导体有限公司 一种固件存储方法、固件读取方法、装置、芯片处理器及存储介质
CN114925372A (zh) * 2022-05-12 2022-08-19 北京控制与电子技术研究所 一种面向企业安全生产需求的固件安全检测方法
CN115062309A (zh) * 2022-06-10 2022-09-16 国网江苏省电力有限公司电力科学研究院 一种新型电力系统下基于设备固件仿真的漏洞挖掘方法及存储介质
CN115640022A (zh) * 2022-09-07 2023-01-24 安乃达驱动技术(上海)股份有限公司 通过数据压缩和加密升级固件的方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
朱晓东;尹青;常瑞;张胜桥;: "基于结构化特征库的递进式固件格式解析", 武汉大学学报(理学版), no. 02, pages 125 - 132 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117009982A (zh) * 2023-09-26 2023-11-07 统信软件技术有限公司 镜像文件的安全验证方法、装置、电子设备及存储介质
CN117009982B (zh) * 2023-09-26 2023-12-26 统信软件技术有限公司 镜像文件的安全验证方法、装置、电子设备及存储介质
CN117892318A (zh) * 2024-03-12 2024-04-16 汉兴同衡科技集团有限公司 一种物联网智能终端数据安全保护方法、系统及存储装置
CN117892318B (zh) * 2024-03-12 2024-05-24 汉兴同衡科技集团有限公司 一种物联网智能终端数据安全保护方法、系统及存储装置

Similar Documents

Publication Publication Date Title
CN116522368A (zh) 一种物联网设备固件解密解析方法、电子设备、介质
US10586026B2 (en) Simple obfuscation of text data in binary files
CN106203006A (zh) 基于dex与so文件动态执行的Android应用加固方法
CN107291485B (zh) 动态链接库的加固方法、运行方法、加固装置和安全系统
CN110333868B (zh) 用于生成子应用的安装包的方法和系统
CN112052433B (zh) 一种Jar文件的虚拟化保护方法、终端及存储介质
KR20160020294A (ko) 클라우드 기반의 애플리케이션 보안 서비스 제공 방법 및 시스템
CN104809414B (zh) 一种防止冷启动攻击的u盘加密密钥存放方法
CN110597496B (zh) 应用程序的字节码文件获取方法及装置
Votipka et al. Passe-partout: A general collection methodology for Android devices
CN112632536B (zh) 基于pe文件改造的内存加载方法
CN109002710B (zh) 一种检测方法、装置及计算机可读存储介质
Park et al. New flash memory acquisition methods based on firmware update protocols for LG Android smartphones
CN113741954A (zh) 系统软件生成方法、装置、电子设备及存储介质
Huber et al. A flexible framework for mobile device forensics based on cold boot attacks
CN111291001A (zh) 计算机文件的读取方法、装置、计算机系统及存储介质
WO2023045744A1 (zh) 加固方法、注册方法、运行方法、电子设备和存储介质
CN108664796B (zh) 一种so文件保护方法及装置
US20190163885A1 (en) Apparatus and method of providing security and apparatus and method of executing security for common intermediate language
CN115840682B (zh) 基于sw64指令集的bios层级采样的运维监控方法及装置
CN111190619A (zh) 一种基于固件更新协议的Android取证方法
CN110681153B (zh) 游戏存档管理系统、方法、计算机设备及介质
CN111984944B (zh) 一种源代码处理方法、相关装置及存储介质
CN113254965B (zh) 一种软件包加密方法、计算设备及储存介质
CN112579547B (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