bin으로 된 firmware에 큰 작업을 하지 않고 마운트 시켜 파일을 확인하는 것은 다음과 같다.
(cramfs)
1. 원하는 펌웨어의 구조(offset 체크)를 확인하는 binwalk로 정보를 본다.
# binwalk -e 펌웨어파일.bin
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
46692 0xB664 LZMA compressed data, properties: 0x5D, dictionary size: 16777216 bytes, uncompressed size: 208352 bytes
131072 0x20000 TRX firmware header, little endian, image size: 3559424 bytes, CRC32: 0x9FD9871D, flags: 0x0, version: 1, header size: 28 bytes, loader offset: 0x1C, linux kernel offset: 0x15E424, rootfs offset: 0x0
131100 0x2001C LZMA compressed data, properties: 0x5D, dictionary size: 65536 bytes, uncompressed size: 4378624 bytes
1565732 0x17E424 CramFS filesystem, little endian, size: 2121728 version 2 sorted_dirs CRC 0x9094E641, edition 0, 1646 blocks, 353 files
2. Make mount directory
# mkdir /tmp/t
3. mount with option below
mount -t cramfs -o loop,rw,offset=0x17E424 n604s_kr_8_96.bin /tmp/t
4. Do play
# cd /tmp/t
# ls
bin default etc lib ndbin proc sbin usr
cramfs dev home linuxrc plugin save tmp var
우분투에서 cramfs 를 자꾸 알수 없다고 해서 centos 6.5 에서 정말 난관 끝에 성공했다.
https://sourceforge.net/projects/cramfs/ 에서 cramfs 를 다운로드 받고 make 한 뒤 mkcramfs 를 /usr/bin 에 cp 했다.
tar xzf cramfs-1.1.tar.gz
ls
cd cramfs-1.1
1062 wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tar.xz
1063 yum install xz
1064 tar -xvf Python-3.5.1.tar
1065 ls
1066 tar -xvf Python-3.5.1.tar.xz
1067 cd Python-3.5.1
1068 ./configure --prefix=/usr/local --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"
1069 make && make altinstall
파이선3를 설치하고, binwalk 다운로드 한 곳에서 setup.py를 실행했다.
https://github.com/ReFirmLabs/binwalk
위 경로에서 binwalk를 zip으로 다운로드 하고 압축을 푼뒤 python3로 설치한다.(2.6은 잘 안된다. pip ..... error T.T)
댓글 달기