GNU/Linux >> Belajar Linux >  >> Linux

ekstrak Embedded initramfs

Ada beberapa informasi tentang ini di gentoo wiki:https://wiki.gentoo.org/wiki/Custom_Initramfs#Salvaging

Ini merekomendasikan penggunaan binwalk yang bekerja dengan sangat baik.

Saya akan memberikan panduan singkat dengan sebuah contoh:

ekstrak dulu file bzImage dengan binwalk:

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

Saya berakhir dengan tiga file:47B4 , 47B4.xz dan 951C38.xz

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

Sekarang mari jalankan binwalk lagi di 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>

Ini kembali dengan daftar panjang jalur yang ditemukan dan beberapa file yang berpotensi menarik. Mari kita lihat.

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

file E9B348 adalah arsip cpio (sudah didekompresi), persis seperti yang kami cari! Bingo!

Untuk membongkar arsip cpio yang tidak terkompresi (initramfs Anda!) di direktori Anda saat ini, jalankan saja

> cpio -i < E9B348

Itu hampir terlalu mudah. binwalk benar-benar alat yang Anda cari. Sebagai referensi, saya menggunakan v2.1.1 di sini.


Sejauh yang saya tahu, arsip initramfs cpio baru saja ditautkan ke kernel.

Oleh karena itu, ini harus bekerja:

  1. gunakan dd untuk mengekstrak rentang antara c17fd8cc dan c19d7b90
  2. unpack data yang dihasilkan dengan menggunakan unpacker CPIO.

Linux
  1. Ekstrak Grafik Dari Pdfs?

  2. Cara mengekstrak file nama file.tar.gz

  3. Skrip bash Linux untuk mengekstrak alamat IP

  1. Membuat Partisi Recovery di Embedded Linux?

  2. Cara Tercepat Untuk Mengekstrak Iso?

  3. Bagaimana cara mengekstrak file .dmg di Linux?

  1. CentOS / RHEL 7 :Cara mengekstrak gambar initramfs dan mengedit/melihatnya

  2. CentOS / RHEL 6:Cara mengekstrak gambar initramfs dan mengedit/melihatnya

  3. ekstrak waktu rata-rata dari ping -c