[250731] 개발 일지 - MSI 분석 2
[250731] 개발 일지 - MSI 분석 2
이번 포스트는
Click BIOS X
버전에 해당하는 이야기다.
이전 버전인Click BIOS 5
는 해당하지 않는다.
1. 개요
이번 글은 MSI의 UI를 구성하는 임베디드 이미지들이 포함되어 있는 .bin
파일의 구조를 분석해볼 것이다.
2. 준비물
- B850M Mortar 보드의 .bin 파일
- 1 에서 추출한 이미지 파일
- B850 Tomahawk 보드의 .bin 파일
- 3 에서 추출한 이미지 파일
3. 분석
우선 이 웹사이트를 참고하면 기본적인 구성은 다음과 같다.
3.1. 상세 구조 설명
기본 분석을 토대로 다음과 같이 정리하였다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
┌─────────────────────────────────────────────────────────┐
│ File Header │
├─────────────────────────────────────────────────────────┤
│ Image Entry #1 │
│ ┌─────────────────┬─────────────────────────────────┐ │
│ │ MSI Header │ Image Data │ │
│ │ (12 bytes) │ (Variable Size) │ │
│ └─────────────────┴─────────────────────────────────┘ │
├─────────────────────────────────────────────────────────┤
│ Image Entry #2 │
│ ┌─────────────────┬─────────────────────────────────┐ │
│ │ Image Header │ Image Data │ │
│ │ (12 bytes) │ (Variable Size) │ │
│ └─────────────────┴─────────────────────────────────┘ │
├─────────────────────────────────────────────────────────┤
│ ... │
├─────────────────────────────────────────────────────────┤
│ Image Entry #N │
└─────────────────────────────────────────────────────────┘
이를 바이트 단위로 분석하면 아래와 같다.
1
2
3
4
5
6
7
8
9
10
11
12
13
MSI Header Byte Layout (12 bytes):
┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┐
│ 24 │ 4D │ 73 │ 49 │ XX │ YY │ ZZ │ 00 │ LL │ LL │ LL │ LL │
└────┴────┴────┴────┴────┴────┴────┴────┴────┴────┴────┴────┘
00 01 02 03 04 05 06 07 08 09 0A 0B
Where:
- 0x00-0x03: '$MsI$' signature (0x24, 0x4D, 0x73, 0x49)
- 0x04 (XX): Sector/Layer field
- 0x05 (YY): Position field
- 0x06 (ZZ): Image number (0-based index)
- 0x07: Reserved (usually 0x00)
- 0x08-0x0B (LLLLLLLL): Image size (little-endian 32-bit)
이 포스트는 저작권자의 CC BY 4.0 라이센스를 따릅니다.