GNU/Linux >> Znalost Linux >  >> Linux

extrakt Vložený initramfs

Některé informace o tom jsou na gentoo wiki:https://wiki.gentoo.org/wiki/Custom_Initramfs#Salvaging

Doporučuje použití binwalk který funguje nadmíru dobře.

Uvedu rychlý průvodce s příkladem:

nejprve extrahujte soubor bzImage pomocí binwalk:

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

Skončil jsem se třemi soubory:47B4 , 47B4.xz a 951C38.xz

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

Nyní spustíme binwalk znovu na 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 ([email protected]) (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>

To se vrátilo s dlouhým seznamem nalezených cest a několika potenciálně zajímavými soubory. Pojďme se podívat.

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

soubor E9B348 je (již dekomprimovaný) archiv cpio, přesně to, co hledáme! Bingo!

Chcete-li rozbalit nekomprimovaný archiv cpio (vaše initramfs!) ve vašem aktuálním adresáři, stačí spustit

> cpio -i < E9B348

To bylo až příliš snadné. binwalk je absolutně nástroj, který hledáte. Pro informaci jsem zde používal verzi 2.1.1.


Pokud vím, archiv initramfs cpio je právě propojen s jádrem.

Mělo by to tedy fungovat:

  1. použijte dd extrahovat rozsah mezi c17fd8cc a c19d7b90
  2. rozbalte výsledná data pomocí rozbalovače CPIO.

Linux
  1. CentOS / RHEL 7 :Jak extrahovat obrázek initramfs a upravit/zobrazit jej

  2. Linux bash skript pro extrakci IP adresy

  3. Jak extrahovat soubor .dmg v Linuxu?

  1. 4 nástroje pro budování vestavěných linuxových systémů

  2. Vytvoření oddílu pro obnovení v Embedded Linuxu?

  3. Znovu zabalit obraz souborového systému z vmlinux.bin (vložený initramfs) bez opětovného sestavení?

  1. Nejrychlejší způsob, jak extrahovat Iso?

  2. Extrahovat grafy z PDF?

  3. CentOS / RHEL 6 :Jak extrahovat obrázek initramfs a upravit/zobrazit jej