[Tip] IoT 펌웨어 분석 환경 구성
펌웨어는 특정 목적에 맞게 하드웨어를 동작시키기 위한 코드들로 구성되며, 일반적으로 부팅과 관련한 코드, 운영체제, 파일 시스템 등으로 구성된다. 이러한 펌웨어 코드는 비휘발성 메모리인 ROM, PROM, EPROM, EEPROM 에 일반적으로 존재하지만 최근에는 플래시 메모리로 대체되고 있다. 펌웨어는 덤프를 통해 수집하는 방법이 존재하며 제조사에서 공개하는 경우가 있으므로 해당 웹 사이트에서 펌웨어를 수집할 수 있다.
1. binwalk ( Firmware Analysis Tool )
Open Source 펌웨어 분석 툴로 분석, 리버싱, 데이터 추출 등의 기능을 제공한다. Python 으로 작성되어 있으며 현재 리눅스 플랫폼만 지원한다.
https://github.com/devttys0/binwalk/blob/master/INSTALL.md
2. Firmware Modification Kit
펌웨어를 수정할 수 있는 도구로 해당 시스템의 펌웨어 코드를 재컴파일 없이 펌웨어를 수정할 수 있도록 도와주며 GNU GPL Version 2 라이센스 기반의 오픈소스 형태로 제공되고 있다. 펌웨어 분석 및 수정에 활용 할 수 있는 다양한 도구 및 스크립트들을 하나로 구성하여 제공한다. sudo apt-get install build-essential zlib1g-dev liblzma-dev python-magic
2.1) Firmware Modification Kit 환경 구성
2.1.1) 소스코드 다운로드
별도의 설치 과정은 없으며 아래 링크에서 소스코드를 다운 받아 압축 해제한다. https://code.google.com/archive/p/firmware-mod-kit/
2.1.2) 관련 라이브러리 설치
Firmware Modification Kit 을 사용하기 위해서는 압축라이브러리( gzip / lzma )와 python magic 모듈이 필요하다. 우분투의 경우 아래 명령어로 간단하게 설치 할 수 있다.