임베디드 initramfs 추출


9

하나의 initramfs가 포함 된 커널이 있습니다. 추출하고 싶습니다.

내가 x86 boot sector할 때 출력을 얻었다file bzImage

이 커널 이미지에 대한 System.map 파일이 있습니다.

System.map 파일을 사용하거나 사용하지 않고이 커널에서 내장 된 initramfs 이미지를 추출 할 수있는 방법이 있습니까?

시스템 맵 파일 에서 발견되는 흥미로운 문자열 은 다음과 같습니다.

57312:c17fd8cc T __initramfs_start
57316:c19d7b90 T __initramfs_size

답변:


14

젠투 위키에는 이에 대한 정보가 있습니다 : 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

나는 세 개의 파일로 끝났다 47B4, 47B4.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을 사용하고있었습니다.


빙고! 니가 끝냈어 !
SHW

2

내가 아는 한, initramfs cpio 아카이브는 커널에 연결되어 있습니다.

따라서 이것은 작동해야합니다.

  1. dd사이의 범위를 추출하는 데 사용c17fd8ccc19d7b90
  2. CPIO 언 패커를 사용하여 결과 데이터를 언팩하십시오.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.