CN113704180B - 一种基于嵌入式设备固件文件信息特征库的无损化固件提取方法 - Google Patents
一种基于嵌入式设备固件文件信息特征库的无损化固件提取方法 Download PDFInfo
- Publication number
- CN113704180B CN113704180B CN202110781057.XA CN202110781057A CN113704180B CN 113704180 B CN113704180 B CN 113704180B CN 202110781057 A CN202110781057 A CN 202110781057A CN 113704180 B CN113704180 B CN 113704180B
- Authority
- CN
- China
- Prior art keywords
- firmware
- file
- magic
- feature
- information
- 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.)
- Active
Links
- 238000000605 extraction Methods 0.000 title claims abstract description 38
- 230000006835 compression Effects 0.000 claims abstract description 27
- 238000007906 compression Methods 0.000 claims abstract description 27
- 230000006837 decompression Effects 0.000 claims abstract description 8
- 238000000034 method Methods 0.000 claims description 31
- 238000004458 analytical method Methods 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 6
- 238000013507 mapping Methods 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000007547 defect Effects 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 102100029074 Exostosin-2 Human genes 0.000 description 1
- 101000918275 Homo sapiens Exostosin-2 Proteins 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000035515 penetration Effects 0.000 description 1
- 238000007789 sealing Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/137—Hash-based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及嵌入式设备固件信息提取技术领域,公开了一种基于嵌入式设备固件文件信息特征库的无损化固件提取方法,包括:建立固件文件特征信息库、特征信息库的识别和提取、特征信息库的调用、以及固件镜像文件解压缩和无损固件文件系统提取,本发明基于特征数据库匹配方式,不仅可以快速查询特定固件的格式及相关特征信息,而且可以识别和判断固件版本一致性问题,提高固件比对效率;同时解决了非标准压缩算法固件镜像文件的解压问题,提高了固件镜像文件提取的成功率;而且基于固件文件特征信息数据库,通过其中存储的特定固件地址偏移量,精确DUMP内存分段中存储的数据,实现无损化提取的目的。
Description
技术领域
本发明涉及嵌入式设备固件信息提取技术领域,具体为一种基于嵌入式设备固件文件信息特征库的无损化固件提取方法。
背景技术
目前大多数核心嵌入式设备都是由国外企业设计和生产,掌握着核心设备的关键技术,并且对于这些核心网络设备的资料是不公开的。随着恶意软件和计算机病毒的泛滥,嵌入式设备在完成自身功能之外很有可能还隐藏着其他功能,如密码收集、数据解密、内网渗透等,所以必须有针对性地进行恶意代码的检测和识别。历届国际顶级安全会议上公布的底层固件和硬件方面存在的安全隐患和漏洞越来越多,影响和涉及范围也越来越大。对不同的嵌入式设备也有不同的逆向分析方法,其中就包含网络路由设备中的后门分析。嵌入式设备固件中主要包含着操作系统与一些应用程序等文件,由于任何一种操作系统软件在设计上都不可能做到尽善尽美。嵌入式设备只要有操作系统存在,一些缺陷和漏洞就会不可避免的存在,这使得嵌入式设备操作系统中普遍隐藏着恶意功能。
5G、物联网、工业互联网、智能制造、智能家居…当下信息技术几大热门领域,都在显著扩大固件安全这个攻击面。
固件本身有一定的封闭性,加上嵌入式系统的飞速发展,网络设备的安全变的越来越敏感。比如,目前常用的网络交换机、路由器、加密网关、防火墙等日益普及,如果这些网络设备出现安全漏洞,这不仅威胁到用户的隐私,而且严重威胁到国家安全。对于物联网实验室来说,对设备中运行的固件进行一致性与安全性评估是一项极其重要的工作内容。
国内外对于嵌入式固件的提取近几年并没有较大突破,且研究较为分散,某些研究人员针对特定单一嵌入式设备提取了特征用以分析之用,但对于特定行业下多样化的嵌入式设备,则没有可借鉴和可利用的特征信息库。
传统固件提取多基于第三方工具,此类技术对于采用标准化压缩方式的固件镜像提取有一定的效果,但对于特定行业采用定制化的嵌入式系统和非标准压缩方式的固件镜像提取存在以下缺陷:无法识别嵌入式固件镜像文件格式;无法对非标准方式压缩的固件镜像进行解压;无法完整提取出固件镜像中的根文件系统。
发明内容
(一)解决的技术问题
针对现有技术的不足,本发明提供了一种基于嵌入式设备固件文件信息特征库的无损化固件提取方法,具备可以调用嵌入式设备固件特征数据库匹配方式,提高固件比对效率;且可以对非标准方式压缩的固件镜像进行解压,提高固件镜像文件提取的成功率;还可以无损化提取固件镜像中的根文件系统的优点。
(二)技术方案
为实现上述目的,本发明提供如下技术方案:一种基于嵌入式设备固件文件信息特征库的无损化固件提取方法,建立固件文件特征信息库,即对于不同固件类型,将多种架构平台下的固件设备特征类型的特征值以及利用第三方工初步解析得到的固件格式类型统计作为构建特征值数据表的原始数据,并存储到预先建立的特征库中。
优选的,所述特征值包含特征字段起始偏移量、字段长度、字段值、字段表示含义,通过特征字段的起始偏移量及字段长度能够确定特征字段,且数据地址偏移量是从固件镜像中提取出根文件系统的关键。
优选的,所述特征库针对嵌入式固件的压缩格式的多样性,增加一个压缩格式类型;特征库还存储固件镜像文件的哈希信息,用以对在用设备中的固件一致性进行验证,确保固件的安全性。
优选的,所述固件文件信息特征库以自定义linux magic文件形式存在,即magic.mgc文件,一个文件即为一个库。一个库文件可包含一个或多个不同固件镜像文件的基本特征信息。
优选的,所述方法还包括固件镜像文件识别和提取
S1.通过识别固件二进制镜像文件的魔法数(magic),精确判断固件镜像文件的格式;通过对比库中特征信息,直接扫描文件的内存镜像;
S2.对于提取固件镜像中的文件系统,主要过程是:
1).magic_load从指定文件加载magic签名数据库,结合调用工具把多个magic签名文件组合到一个临时文件中用于加载;
2).magic_open创建并返回一个magic_cookie指针;
3).magic_buffer读取buffer中指定长度的数据并与magic签名数据库进行对比,返回对比结果描述。
4).magic_close关闭magic签名数据库并释放所有使用过的资源。
优选的,所述方法还包括支持使用python-magic和第三方工具方式调用。
通过收集的固件信息特征,在magic文件中添加自定义固件特征信息:
(1)python-magic调用
(2)第三方工具调用
(3)直接查询该库中关键字获得相关固件特征信息,依据该库中储存的固件文件偏移地址DUMP出根文件系统。
优选的,所述方法还包括固件镜像文件解压缩:对采用非标准压缩算法生成的固件二进制文件,通过对固件镜像文件中根文件系统的起始地址,结合数据库中存储的内存地址偏移量,进而从文件内存镜像中无损dump出该固件镜像,最终还原出固件的文件系统。
优选的,所述方法还包括无损固件文件系统提取:
a.通过研究不同固件镜像文件的特征,获得固件文件的magic,确定固件文件的真正格式;
b.再依据固件文件的头部特征,建立固件文件头部特征的映射关系,识别出文件采用的压缩算法;
c.对于标准压缩算法可直接采用相应工具对固件镜像文件进行解压,从而提取出固件中的文件;
d.对其他采用非标准压缩算法生成的固件二进制文件,通过对固件二进制文件的地址偏移量进行分析,确定根文件系统在内存镜像中的起始地址,无损的dump出该固件的二进制文件。
根据权利要求1所述的一种基于嵌入式设备固件文件信息特征库的无损化固件提取装置,包括:
固件文件特征信息库模块:用于将多种架构平台下的固件设备特征类型的特征值以及利用第三方工初步解析得到的固件格式类型统计作为构建特征值数据表的原始数据存储起来。
识别和提取模块:用于识别固件二进制镜像文件的魔法数(magic),精确判断固件镜像文件的格式,并且通过对比库中特征信息,直接扫描文件的内存镜像。
调用模块:用于调用所需要的固件特征信息。
固件镜像文件解压缩模块:通过对固件镜像文件中根文件系统的起始地址,结合数据库中存储的内存地址偏移量,进而从文件内存镜像中无损dump出该固件镜像,用于还原出固件的文件系统。
无损固件文件系统提取模块:用于无损的dump出该固件的二进制文件。
(三)有益效果
与现有技术相比,本发明提供了一种基于嵌入式设备固件文件信息特征库的无损化固件提取方法,实现了嵌入式设备固件在文件无损化提取方面的创新,具备以下有益效果:
(一)基于调用嵌入式设备固件特征数据库匹配方式,提高固件比对效率
基于特征数据库匹配方式,不仅可以快速查询特定固件的格式及相关特征信息,而且可以识别和判断固件版本一致性问题,提高固件比对效率;
(二)对非标准压缩算法不敏感
解决了非标准压缩算法固件镜像文件的解压问题,直接由内存镜像DUMP出数据,提高了固件镜像文件提取的成功率;
(三)无损化提取固件镜像中的根文件系统
基于固件文件特征信息数据库,通过其中存储的特定固件地址偏移量,精确DUMP内存分段中存储的数据,还原出其中的根文件系统,实现无损化提取的目的。
附图说明
图1传统方法下的文件识别及固件根文件系统的提取流程;
图2传统方法提取固件根文件系统基本原理;
图3为本发明中无损固件提取流程图;
图4某设备固件文件信息;
图5提取固件文件真实镜像;
图6提取出的根文件系统。
具体实施方式
为了更好地了解本发明的目的、结构及功能,下面结合附图,对本发明一种基于嵌入式设备固件文件信息特征库的无损化固件提取方法做进一步详细的描述。
请参阅图1-6,近一步说明本发明的内容:
传统固件提取方式技术原理:嵌入式设备固件一般是以bin格式存在的二进制镜像文件,内部包含着大量的二进制流数据,固件头的数据信息始终是处在二进制数据流的初始部分,以偏移量的不同组合方式表示着嵌入式设备固件的相关特征信息并占据一定的起始位。特征字段组成不同的组合表示成该固件设备类型的处理器平台架构、内核版本、根文件系统格式等特征字段信息。
设备固件格式的解析主要是分析这些二进制数据流以偏移量的不同组合方式所表示的特征字符的含义。但是,由于嵌入式设备固件格式的类型种类繁多,并且固件中的特征字段组合是杂乱无序的,没有固定的规律可循,单纯依靠传统单一的反汇编解析或者暴力解析都无法满足多样格式类型的需求,也无法做到新的类型格式兼容,可扩展性也较差。
为了能够解决多硬件平台以及多样格式类型的瓶颈,提出利用嵌入式设备固件的二进制数据流分离产生的组合特征值数据,用来解析识别固件文件的相关信息,通过特征字段的特征值匹配预先建立好的特征数据库的方式匹配得到固件的基本信息。
建立嵌入式设备固件特征字段匹配数据库是进行解析固件格式的前提,利用逆向识别分析技术,剥离出固件的特征字段生成特征值。不同固件类型的对于该值有不同的定义,将多种架构平台下的固件设备特征类型的特征值收集起来以及利用第三方工初步解析得到的固件格式类型统计作为构建特征值数据表的原始数据,并存储到预先建立的特征库中。构建特征库的另外一个优势是兼顾到了固件多硬件平台的特性和更加方便特征值扩展。
特征值包含特征字段起始偏移量、字段长度、字段值、字段表示含义,通过特征字段的起始偏移量及字段长度能够确定特征字段,尤其重要的是,数据地址偏移量是从固件镜像中提取出根文件系统的关键。
针对嵌入式固件的压缩格式的多样性,该库另增加一个压缩格式类型,这样的目的是为了在固件的识别解析过程中针对不同的操作系统类型得知其采用的压缩格式,并利用适当的解析工具对固件镜像文件进行更深入的解析。常见的嵌入式设备固件镜像文件压缩格式有CPIO、Ar、Tar、GZip、LZxxx、RPM/DEB等。常见的根文件系统格式有YAFFS、JFFS2、SquashFS、CramFS、ROMMFS、xFAT、EXT2等。
该库还存储了固件镜像文件的哈希信息,用以对在用设备中的固件一致性进行验证,确保固件的安全性。
以上特征集成于固件文件信息特征库,该库以自定义linuxmagic文件形式存在,即magic.mgc文件,一个文件即为一个库。一个库文件可包含一个或多个不同固件镜像文件的基本特征信息,支持使用python-magic和第三方工具方式调用。
该文件的源文件在centos7.0的路径为/usr/share/misc,经过file命令编译为magic.mgc。
通过收集的固件信息特征(以某网络设备为例),在magic文件中添加自定义的固件特征信息:
该库的调用方式极为灵活,主要调用方式有以下几种:
(1)python-magic调用,查询压缩格式用例为:
import magic
file_type=magic.from_buffer(open("file_types/.bin",'rb').read(2048))#1
#or
file_type=magic.from_file("file_types/.bin",mime=True)#2
f=magic.Magic(uncompress=True)
ff=f.from_file('file_types/.bin')#3
print(file_type,ff)#xz compressed data,last modified:Tue Dec 10 08:46:57 2020,from linux
(2)第三方工具调用(以binwalk为例)
binwalk-m./magic.mgc firmware.bin
(3)直接查询该库中关键字获得相关固件特征信息,依据该库中储存的固件文件偏移地址DUMP出根文件系统。
识别固件镜像文件格式及类型,是提取固件二进制镜像中的根文件系统的前提条件,传统文件格式的识别,是通过类似于file命令方式识别文件类型,但file命令占用了太多的磁盘来读写I/O,读写过程是从文件的第一个字节开始,且只能把磁盘上的一个文件识别成一种文件格式,所以会占用很多磁盘空间来保存文件。
对文件的识别流程如图1所示:
如正常识别出包含根文件系统的固件镜像文件,则可以选择相应解压算法提取出固件镜像文件中的根文件系统。依赖此方法提取固件镜象中的根文件系统的基本原理如图2所示:
该方法下使用file命令对固件镜像进行格式识别,就需要逐字节把固件镜像分割成多个文件,文件的读写I/O效率极低,进入固件提取过程时,因I/O读写产生的错误会被带入临时文件中,在重组临时文件时,有可能带来文件无法正确识别或提取的文件系统损坏等问题。
该方法另一个主要缺陷是,因为缺少特征信息库支持,所以无法识别绝大多数嵌入式设备固件镜像文件的格式等信息。
本发明:一种基于嵌入式设备固件文件信息特征库的无损化固件提取技术
关键技术主要有以下两点:
1)固件镜像文件识别:建立固件文件特征信息库,通过识别固件二进制镜像文件的魔法数(magic),精确判断固件镜像文件的格式;固件文件特征信息库为固件文件系统提取提供了较好的解决方案。通过对比库中特征信息,可以直接扫描文件的内存镜像,不仅提高提取效率,且不会对提取的固件镜像文件系统造成任何破坏;对于已自定义的固件文件特征,具有较高的识别准确性。
对于提取固件镜像中的文件系统,主要过程是:
a)magic_load从指定文件加载magic签名数据库,结合调用工具把多个magic签名文件组合到一个临时文件中用于加载;
b)magic_open创建并返回一个magic_cookie指针;
c)magic_buffer读取buffer中指定长度的数据并与magic签名数据库进行对比,返回对比结果描述。
d)magic_close关闭magic签名数据库并释放所有使用过的资源。
2)固件镜像文件解压缩:对采用非标准压缩算法生成的固件二进制文件,则通过对固件镜像文件中根文件系统的起始地址,结合数据库中存储的内存地址偏移量,进而从文件内存镜像中无损dump出该固件镜像,最终还原出固件的文件系统。固件无损提取流程图如图3所示:
无损固件文件系统提取实现
在实际嵌入式固件研究中,通常针对固件解析研究的第一步就是使用通用工具,从要解析的固件设备文件中解析出尽量多的信息。此外,对固件解压得到根文件系统文件也是必不可少的。
通过研究不同固件镜像文件的特征,获得固件文件的magic,确定固件文件的真正格式;再依据固件文件的头部特征,建立固件文件头部特征的映射关系,识别出文件采用的压缩算法;对于标准压缩算法可直接采用相应工具对固件镜像文件进行解压,从而提取出固件中的文件;对其他采用非标准压缩算法生成的固件二进制文件,通过对固件二进制文件的地址偏移量进行分析,确定根文件系统在内存镜像中的起始地址,无损的dump出该固件的二进制文件。
采用第三方工具调用固件信息特征库方式,以某通用网络设备固件镜像为例进行文件系统的识别,如图4所示:
由此可知,该文件包含了squashfs小端系统,压缩算法为XZ,文件系统起始地址为0x162F51(即magic值)开始到其后的7132962个字节(实际有效为7197026个字节),只需要dump出此内存映射范围的内容,就可以获得实际的二进制镜像文件,如图5所示:
如图6所示,该技术可完整无损提取出固件镜像文件中的根文件系统。
可以理解,本发明是通过一些实施例进行描述的,本领域技术人员知悉的,在不脱离本发明的精神和范围的情况下,可以对这些特征和实施例进行各种改变或等效替换。另外,在本发明的教导下,可以对这些特征和实施例进行修改以适应具体的情况及材料而不会脱离本发明的精神和范围。因此,本发明不受此处所公开的具体实施例的限制,所有落入本申请的权利要求范围内的实施例都属于本发明所保护的范围内。
Claims (5)
1.一种基于嵌入式设备固件文件信息特征库的无损化固件提取方法,其特征在于:建立固件文件特征信息库,即对于不同固件类型,将多种架构平台下的固件设备特征类型的特征值以及利用第三方工具初步解析得到的固件格式类型统计作为构建特征值数据表的原始数据,并存储到预先建立的特征库中;
所述特征值包含特征字段的起始偏移量、字段长度、字段值、字段表示含义,通过特征字段的起始偏移量及字段长度能够确定特征字段;
所述固件文件信息特征库以自定义linux magic文件形式存在,即magic.mgc文件,一个文件即为一个库,一个库文件可包含一个或多个不同固件镜像文件的基本特征信息;
所述方法还包括固件镜像文件解压缩:对采用非标准压缩算法生成的二进制的固件文件,通过对固件镜像文件中根文件系统的起始地址,结合数据库中存储的内存地址偏移量,进而从文件内存镜像中无损dump出该固件镜像,最终还原出固件的文件系统;
所述方法还包括无损固件文件系统提取:
a.通过研究不同固件镜像文件的特征,获得固件文件的magic,确定固件文件的真正格式;
b.再依据固件文件的头部特征,建立固件文件头部特征的映射关系,识别出文件采用的压缩算法;
c.对于标准压缩算法可直接采用相应工具对固件镜像文件进行解压,从而提取出固件中的文件;
d.对其他采用非标准压缩算法生成的二进制的固件文件,通过对二进制的固件文件的地址偏移量进行分析,确定根文件系统在内存镜像中的起始地址,无损的dump出该固件的二进制文件。
2.根据权利要求1所述的一种基于嵌入式设备固件文件信息特征库的无损化固件提取方法,其特征在于:所述特征库针对嵌入式固件的压缩格式的多样性,增加一个压缩格式类型;特征库还存储固件镜像文件的哈希信息,用以对在用设备中的固件一致性进行验证,确保固件的安全性。
3.根据权利要求1所述的一种基于嵌入式设备固件文件信息特征库的无损化固件提取方法,其特征在于:所述方法还包括固件镜像文件识别和提取:
S1.通过识别二进制的固件镜像文件的魔法数(magic),精确判断固件镜像文件的格式;
通过对比库中特征信息,直接扫描文件的内存镜像;
S2.对于提取固件镜像中的文件系统,主要过程是:
1).magic_load从指定文件加载magic签名数据库,结合调用工具把多个magic签名文件组合到一个临时文件中用于加载;
2).magic_open创建并返回一个magic_cookie指针;
3).magic_buffer读取buffer中指定长度的数据并与magic签名数据库进行对比,返回对比结果描述;
4).magic_close关闭magic签名数据库并释放所有使用过的资源。
4.根据权利要求1所述的一种基于嵌入式设备固件文件信息特征库的无损化固件提取方法,其特征在于:所述方法还包括支持使用python-magic和第三方工具方式调用;
通过收集的固件信息特征,在magic文件中添加自定义固件特征信息:
(1)python-magic调用;
(2)第三方工具调用;
(3)直接查询该库中关键字获得相关固件特征信息,依据该库中储存的固件文件偏移地址DUMP出根文件系统。
5.根据权利要求1所述的一种基于嵌入式设备固件文件信息特征库的无损化固件提取装置,包括:
固件文件特征信息库模块:用于将多种架构平台下的固件设备特征类型的特征值以及利用第三方工具初步解析得到的固件格式类型统计作为构建特征值数据表的原始数据存储起来;
识别和提取模块:用于识别二进制的固件镜像文件的魔法数(magic),精确判断固件镜像文件的格式,并且通过对比固件文件特征信息中特征信息,直接扫描文件的内存镜像;
调用模块:用于调用所需要的固件特征信息;
固件镜像文件解压缩模块:通过对固件镜像文件中根文件系统的起始地址,结合数据库中存储的内存地址偏移量,进而从文件内存镜像中无损dump出该固件镜像,用于还原出固件的文件系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110781057.XA CN113704180B (zh) | 2021-07-10 | 2021-07-10 | 一种基于嵌入式设备固件文件信息特征库的无损化固件提取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110781057.XA CN113704180B (zh) | 2021-07-10 | 2021-07-10 | 一种基于嵌入式设备固件文件信息特征库的无损化固件提取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113704180A CN113704180A (zh) | 2021-11-26 |
CN113704180B true CN113704180B (zh) | 2024-03-15 |
Family
ID=78648460
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110781057.XA Active CN113704180B (zh) | 2021-07-10 | 2021-07-10 | 一种基于嵌入式设备固件文件信息特征库的无损化固件提取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113704180B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115514498A (zh) * | 2022-09-27 | 2022-12-23 | 四川长虹电器股份有限公司 | 快速检测安卓电视系统镜像文件中签名信息的方法 |
CN116522368A (zh) * | 2023-06-29 | 2023-08-01 | 浙江大学 | 一种物联网设备固件解密解析方法、电子设备、介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104965862A (zh) * | 2015-06-03 | 2015-10-07 | 深圳市创梦天地科技有限公司 | 一种内存数据库集群的同步方法及内存数据库主机 |
CN105843631A (zh) * | 2015-01-12 | 2016-08-10 | 芋头科技(杭州)有限公司 | 一种提高系统固件烧写速度的方法 |
CN110362966A (zh) * | 2019-07-11 | 2019-10-22 | 华东师范大学 | 一种基于模糊哈希的跨平台固件同源性安全检测方法 |
CN111782511A (zh) * | 2020-06-17 | 2020-10-16 | 国家计算机网络与信息安全管理中心 | 固件文件的分析方法、设备及存储介质 |
CN111858550A (zh) * | 2020-07-07 | 2020-10-30 | 北京工业大学 | 一种固件系统特征数据库的构建及更新方法 |
CN111984299A (zh) * | 2019-05-22 | 2020-11-24 | 青岛海信宽带多媒体技术有限公司 | 一种数据加载的方法和设备 |
CN112084146A (zh) * | 2020-09-08 | 2020-12-15 | 国网上海市电力公司 | 基于多维特征的固件同源性检测方法 |
CN112527744A (zh) * | 2020-12-17 | 2021-03-19 | 深圳爱加密科技有限公司 | 一种固件类型识别方法、智能终端及计算机可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060112219A1 (en) * | 2004-11-19 | 2006-05-25 | Gaurav Chawla | Functional partitioning method for providing modular data storage systems |
-
2021
- 2021-07-10 CN CN202110781057.XA patent/CN113704180B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105843631A (zh) * | 2015-01-12 | 2016-08-10 | 芋头科技(杭州)有限公司 | 一种提高系统固件烧写速度的方法 |
CN104965862A (zh) * | 2015-06-03 | 2015-10-07 | 深圳市创梦天地科技有限公司 | 一种内存数据库集群的同步方法及内存数据库主机 |
CN111984299A (zh) * | 2019-05-22 | 2020-11-24 | 青岛海信宽带多媒体技术有限公司 | 一种数据加载的方法和设备 |
CN110362966A (zh) * | 2019-07-11 | 2019-10-22 | 华东师范大学 | 一种基于模糊哈希的跨平台固件同源性安全检测方法 |
CN111782511A (zh) * | 2020-06-17 | 2020-10-16 | 国家计算机网络与信息安全管理中心 | 固件文件的分析方法、设备及存储介质 |
CN111858550A (zh) * | 2020-07-07 | 2020-10-30 | 北京工业大学 | 一种固件系统特征数据库的构建及更新方法 |
CN112084146A (zh) * | 2020-09-08 | 2020-12-15 | 国网上海市电力公司 | 基于多维特征的固件同源性检测方法 |
CN112527744A (zh) * | 2020-12-17 | 2021-03-19 | 深圳爱加密科技有限公司 | 一种固件类型识别方法、智能终端及计算机可读存储介质 |
Non-Patent Citations (3)
Title |
---|
A graph neural network based efficient firmware information extraction method for IoT devices;Weidong Zhang 等;《2018 IEEE 37th International Performance Computing and Communications Conference (IPCCC)》;1-8 * |
基于结构化特征库的递进式固件格式解析;朱晓东 等;《武汉大学学报(理学版)》;125-132 * |
嵌入式设备固件分析的关键技术研究;鲍庆国;《中国优秀硕士学位论文全文数据库 (信息科技辑)》;I138-3524 * |
Also Published As
Publication number | Publication date |
---|---|
CN113704180A (zh) | 2021-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113704180B (zh) | 一种基于嵌入式设备固件文件信息特征库的无损化固件提取方法 | |
US7231524B2 (en) | Method for watermarking computer programs | |
US8881271B2 (en) | System and method for forensic identification of elements within a computer system | |
US7165076B2 (en) | Security system with methodology for computing unique security signature for executable file employed across different machines | |
US7607122B2 (en) | Post build process to record stack and call tree information | |
US7612691B2 (en) | Encoding and decoding systems | |
US20090327733A1 (en) | Data Security Method and System | |
Hilgers et al. | Post-mortem memory analysis of cold-booted android devices | |
US20090249445A1 (en) | Authentication of Websites Based on Signature Matching | |
US7421579B2 (en) | Multiplexing a secure counter to implement second level secure counters | |
CN110071924B (zh) | 基于终端的大数据分析方法及系统 | |
CN111967044B (zh) | 一种适用于云环境的被泄漏隐私数据的追踪方法及系统 | |
KR100961179B1 (ko) | 디지털 포렌식 방법 및 장치 | |
Fu et al. | Data correlation‐based analysis methods for automatic memory forensic | |
CN110750388B (zh) | 一种备份解析方法、装置、设备和介质 | |
CN111030978B (zh) | 一种基于区块链的恶意数据获取方法、装置及存储设备 | |
US7634521B1 (en) | Technique for scanning stealthed, locked, and encrypted files | |
CN116226047A (zh) | 一种快速读取gzip压缩的stdf文件MIR信息的方法及装置 | |
CN112214769B (zh) | 基于SGX架构的Windows系统的主动度量系统 | |
CN114238974A (zh) | 恶意Office文档的检测方法、装置、电子设备及存储介质 | |
CN114218561A (zh) | 一种弱口令检测方法、终端设备及存储介质 | |
JP2018121262A (ja) | セキュリティ監視サーバ、セキュリティ監視方法、プログラム | |
CN112905534B (zh) | 一种基于沙箱环境的样本分析方法和装置 | |
Stein et al. | Fingerprint-based similarity search and its applications | |
CN112765672A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |