파일 다운로드 링크 : http://download.iptime.co.kr/online_upgrade/a1004v_kr_12_024.bin
1. 환경

- OS : ubuntu 20.04.6 LTS
- 하이퍼바이저 : vmware workstation pro 16
2. 패키지 설치
2.1. qemu 설치
sudo apt install qemu-user-static
qemu 설치 할 때, 단순히 “우분투 qemu 설치” 라고만 검색 후, qemu 패키지를 설치했었는데, 계속 파일을 찾을 수 없다는 에러 발생
찾아보다가 위 패키지 설치 “qemu 다른 아키택처 실행” 키워드로 검색 후, 해당 사이트 참고(https://my-repo.tistory.com/13) 및 위 패키지 설치
2.2 binwalk 설치
sudo apt install binwalk
3. binwalk 분석
3.1. binwalk로 내장 파일 확인
binwalk a1004v_kr_12_024.bin

- uImage header
- LZMA
- Squashfs 파일 시스템
3.2. binwalk 이용 파일 추출
binwalk -e a1004v_kr_12_024.bin


3.3. 추출된 파일 설명
1. file : 40.7z
- 저 파일은 그냥 해당 추출 디렉터리에 있는 모든 파일을 압축한 백업 파일 느낌입니다.
- 실제로 binwalk -e 40.7z 해서 내용 확인해보면 파일 용량하고 타입이 동일해요
- binwalk -e 40.7z 실행 결과 보면 이름은 달라졌는데 위 사진과 용량이 동일한 것을 볼 수 있음 ⇒ 40.7z 파일은 신경 쓸 필요 없음

2. file : 168D13.squashfs

- 이것도 binwalk -e 168D13.squashfs 로 결과 확인해보면 그냥 위 사진에 있는 squashfs-root 파일이 압축되어 있습니다.
- 이것도 40.7z 파일과 비슷하게 파일시스템 백업 파일 느낌 ⇒ 이것도 신경 쓸 필요 없음
3. file : 40

- 리눅스 커널 파일
- 아키텍처 확인할 때 이 파일로 확인해야 됨. ⇒ 그럼 MIPSEL 이 나옴
binwalk -A 40
- 이것도 binwalk -e 40 하면 파일 추출되는데, xz compressed data 파일 형식이어서 알아서 분석하시기 바랍니다…. (참고로 이건 binwalk -e 옵션으로 추출 안됨. 따로 xz 압축파일 압축해제 하는거 찾아봐야될 듯. 저도 처음보는거여서 잘 몰라요)
4. 결론

위 상태에서 더 이상 binwalk -e 할 필요는 없음
아래 세가지만 하면 됨
- binwalk -A 40 명령어를 통해 사용 아키텍처 확인
- squashfs-root 디렉터리 분석
- 커널 파일(40 파일 분석)
4. bin/sh 구동
4.1. 디렉터리 이동 및 확인
cd squashfs-root/
ls -al

4.2. qemu 파일 복사
1. qemu 파일 확인
ls -al /usr/bin/qemu-*

2. qemu 파일 복사
- 아래와 같은 형식의 파일을 현재 디렉터리로 복사
qemu-[아키텍처]-static
- 아까 binwalk -A 명령어로 확인한 아키텍처가 MIPSEL 이었으므로 아래와 같이 파일을 복사한다.
cp /usr/bin/qemu-mipsel-static ./

3. bin/sh 구동
- 아래와 같은 명령어로 chroot 와 현재 디렉터리로 복사한 qemu-mipsel-static 파일로 bin/sh을 구동
sudo chroot [루트로 설정할 경로] [실행할 바이너리] [인자]
sudo chroot [로트로 설정할 경로] qemu-mipsel-static [현재 위치에서 실행할 바이너리]
sudo chroot . ./qemu-mipsel-static bin/sh

- 주의할 점!!!! : 뒤에 bin/sh 적을 때, 호스트의 /bin/sh 이 아님!! 현재 디렉터리에 존재하는 bin 디렉터리의 sh 파일을 실행시키는 것이므로 아래와 같은 경로로 적어야 됨
잘 봤습니다 ^^