펌웨어는 특정 목적에 맞게 하드웨어를 동작시키기 위한 코드들로 구성되며, 일반적으로 부팅과 관련한 코드, 운영체제, 파일 시스템 등으로 구성된다. 이러한 펌웨어 코드는 비휘발성 메모리인 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 모듈이 필요하다. 우분투의 경우 아래 명령어로 간단하게 설치 할 수 있다.
'0x003 Reversing > 04. Theory' 카테고리의 다른 글
[Linux] ShellCode 제작 방법 (0) | 2017.12.29 |
---|---|
[Tip] IDA Map 연동 (0) | 2017.12.29 |
[Windows] Hooking Immunity Debugger (0) | 2017.12.29 |
[Tip] Process 내 DLL 주소 찾기 (0) | 2017.12.29 |