提取嵌入式initramfs


9

我有一个嵌入了一个initramfs的内核。我要提取它。

我做的x86 boot sector时候得到了输出file bzImage

我有此内核映像的System.map文件。

是否有任何方法可以通过System.map文件的帮助来从此内核中提取嵌入式initramfs图像?

系统映射文件中找到的有趣字符串是:(以防万一)

57312:c17fd8cc T __initramfs_start
57316:c19d7b90 T __initramfs_size

Answers:


14

在gentoo Wiki中有关于此的一些信息:https : //wiki.gentoo.org/wiki/Custom_Initramfs#Salvaging

它建议使用binwalk它的效果非常好。

我将通过一个示例快速介绍一下:

首先使用binwalk提取bzImage文件:

> binwalk --extract bzImage
DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             Microsoft executable, portable (PE)
18356         0x47B4          xz compressed data
9772088       0x951C38        xz compressed data

我结束了三个文件:47B447B4.xz951C38.xz

> file 47B4
47B4: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, BuildID[sha1]=aa47c6853b19e9242401db60d6ce12fe84814020, stripped

现在让我们再次运行binwalk 47B4

> binwalk --extract 47B4
DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             ELF, 64-bit LSB executable, AMD x86-64, version 1 (SYSV)
9818304       0x95D0C0        Linux kernel version "4.4.6-gentoo (root@host) (gcc version 4.9.3 (Gentoo Hardened 4.9.3 p1.5, pie-0.6.4) ) #1 SMP Tue Apr 12 14:55:10 CEST 2016"
9977288       0x983DC8        gzip compressed data, maximum compression, from Unix, NULL date (1970-01-01 00:00:00)
<snip>

这返回了一长串找到的路径和几个可能有趣的文件。我们来看一下。

> file _47B4.extracted/*
<snip>
_47B4.extracted/E9B348:     ASCII cpio archive (SVR4 with no CRC)

该文件E9B348是一个(已经解压缩的)cpio存档,正是我们想要的!答对了!

要在当前目录中解压缩未压缩的cpio归档文件(您的initramfs!),只需运行

> cpio -i < E9B348

那简直太容易了。binwalk绝对是您要寻找的工具。作为参考,我在这里使用v2.1.1。


答对了 !!!你钉了它!
2016年

2

据我所知,initramfs cpio归档文件只是链接到内核中。

因此,这应该起作用:

  1. 使用dd提取的范围之间c17fd8ccc19d7b90
  2. 使用CPIO解包器将结果数据ny解包。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.