Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- hacking
- BOF 원정대
- ChatGPT
- 백엔드
- hackthissite
- c
- 파이썬
- php
- 러닝 스칼라
- BOF
- webhacking
- backend
- flask
- 웹해킹
- Python
- 리눅스
- Shellcode
- deep learning
- 인공지능
- hackerschool
- 챗GPT
- Linux
- 경제
- mysql
- 러닝스칼라
- Javascript
- c++
- Scala
- 딥러닝
- Web
Archives
- Today
- Total
jam 블로그
[File Format] BMP File Format 본문
728x90
BMP File Format (Window)
BMP 확장자를 가진 그림 파일 헤더의 특징은 다음과 같습니다. 총 54byte를 가집니다. (참고로 hex는 순서 바뀌어서 들어갑니다. 예를 들어 BMP 처음에 4D 42가 들어가야 합니다. 파일을 hex로 열어보면 42 4D로 들어가 있습니다. 뒤에서부터 들어간다고 보시면 됩니다. 4개일 경우 12 34 56 78 => 78 56 34 12가 정상입니다.)
42 4D 36 C0 00 00 00 00 00 00 36 00 00 00 28 00 00 00 80 00 00 00 80 00 00 00 01 00 18 00 00 00 00 00 00 C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
첫 번째 4D 42가 들어가야만 BMP를 뜻합니다.
두 번째 36 C0 00 00 이런식으로 들어가 있는데 계산 방법은 00 00 C0 36을 공학용 계산기로 넣어서 10진수로 바꿉니다. 00 00 C0 36 => 49206(byte) => /1024 => 48Kb 가 나옵니다.
세 번째, 네 번째는 무조건 0
다섯 번째 36 00 00 00 은 이미지에 대한 데이터가 시작하는 offset을 뜻합니다. 00 00 00 36으로 이동해 보시면 데이터가 시작하는 것을 볼 수 있습니다.
여섯 번째 BITMAPINFOHEADER structure의 크기를 뜻하며, 항상 40이므로 00 00 00 28이 들어가면 됩니다.(순서는 역순)
일곱 번째, 여덟 번째는 이미지의 사이즈입니다. 가로, 세로이며 둘다 계산을 해보면 128임을 알 수 있습니다.
열 번째 hex인 픽셀당 bits 수 까지만 알아두시면 됩니다. 나머지는 대부분 건들지 않습니다.
BMP 확장자를 가진 그림 파일 헤더의 특징은 다음과 같습니다. 총 54byte를 가집니다. (참고로 hex는 순서 바뀌어서 들어갑니다. 예를 들어 BMP 처음에 4D 42가 들어가야 합니다. 파일을 hex로 열어보면 42 4D로 들어가 있습니다. 뒤에서부터 들어간다고 보시면 됩니다. 4개일 경우 12 34 56 78 => 78 56 34 12가 정상입니다.)
offset |
size |
description |
0 |
2 |
항상 4D42 |
2 |
4 |
BMP 파일 크기(byte) |
6 |
2 |
항상 0 |
8 |
2 |
항상 0 |
10 |
4 |
이미지 데이터가 시작하는 offset |
14 |
4 |
BITMAPINFOHEADER structure의 크기, 항상 40(10진수) |
18 |
4 |
이미지 가로 픽셀 수 |
22 |
4 |
이미지 세로 픽셀 수 |
26 |
2 |
number of planes in the image, 항상 1 |
28 |
2 |
1픽셀당 비트수 (2 ,4, 8, 24 (10진수)) |
30 |
4 |
compression type (0=none, 1=RLE-8, 2=RLE-4) |
34 |
4 |
size of image data in bytes (including padding) |
38 |
4 |
horizontal resolution in pixels per meter (unreliable) |
42 |
4 |
vertical resolution in pixels per meter (unreliable) |
46 |
4 |
number of colors in image, or zero |
50 |
4 |
number of important colors, or zero |
42 4D 36 C0 00 00 00 00 00 00 36 00 00 00 28 00 00 00 80 00 00 00 80 00 00 00 01 00 18 00 00 00 00 00 00 C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
첫 번째 4D 42가 들어가야만 BMP를 뜻합니다.
두 번째 36 C0 00 00 이런식으로 들어가 있는데 계산 방법은 00 00 C0 36을 공학용 계산기로 넣어서 10진수로 바꿉니다. 00 00 C0 36 => 49206(byte) => /1024 => 48Kb 가 나옵니다.
세 번째, 네 번째는 무조건 0
다섯 번째 36 00 00 00 은 이미지에 대한 데이터가 시작하는 offset을 뜻합니다. 00 00 00 36으로 이동해 보시면 데이터가 시작하는 것을 볼 수 있습니다.
여섯 번째 BITMAPINFOHEADER structure의 크기를 뜻하며, 항상 40이므로 00 00 00 28이 들어가면 됩니다.(순서는 역순)
일곱 번째, 여덟 번째는 이미지의 사이즈입니다. 가로, 세로이며 둘다 계산을 해보면 128임을 알 수 있습니다.
열 번째 hex인 픽셀당 bits 수 까지만 알아두시면 됩니다. 나머지는 대부분 건들지 않습니다.
'해킹 > 기타' 카테고리의 다른 글
[해킹] metasploit mac os x에 설치하기. (0) | 2013.06.26 |
---|---|
[기타] QR코드 무료 생성 사이트 (0) | 2011.03.22 |
[암호화] utf-8 표 볼수 있는 사이트 (0) | 2010.01.18 |
[암호화] ascii 코드표 (0) | 2009.12.30 |
Comments