파일 형식 식별에 사용되는 정보

"파일 형식 식별"에 사용되는 정보 (매직 넘버)의 주소와 길이, 그리고 해당 파일 형식의 핵심 정보가 담긴 주요 데이터 구조체의 주소와 길이에 대한 정보

파일 형식 매직 넘버 주소 매직 넘버 길이 (바이트) 주요 데이터 구조체 (예시) 주소 (파일 시작 기준) 길이 (바이트) 비고
JPEG 0x00 4 SOF0 (Start of Frame) 마커 0x02 ~ (SOI 마커 이후) SOF0 마커의 Length 필드 값 (2바이트) SOF0 마커에는 이미지 폭, 높이, 색상 구성 요소 등의 정보가 담겨 있음
PNG 0x00 8 IHDR 청크 0x08 (IHDR 청크 데이터 길이 13) + 청크 유형 (4) + 길이 (4) + CRC (4) = 25 IHDR 청크에는 이미지 폭, 높이, 색상 유형, 비트 깊이 등의 정보가 담겨 있음
GIF 0x00 6 Logical Screen Descriptor 0x06 (GIF87a/89a 매직 넘버 다음) 7 이미지 폭, 높이, 색상 테이블 정보 등이 담겨 있음
ZIP 0x00 4 Local file header 각 파일 엔트리 시작 위치 (파일 구조 분석 필요) 가변 (압축된 파일 데이터 길이 + 헤더 정보) 압축된 파일 데이터, 파일 이름, 파일 크기 정보 등이 담겨 있음
WEBP 0x00 4 (RIFF) VP8/VP8L/ALPH 청크 RIFF 헤더 이후 (파일 구조 분석 필요) 가변 (이미지 데이터 크기에 따라 다름) 이미지 데이터
BMP 0x00 2 DIB Header 0x0E (Bitmap File Header 이후) DIB 헤더 크기에 따라 다름 (40, 108, 124 바이트 등) 이미지 폭, 높이, 비트 깊이, 압축 방식 정보 등이 담겨 있음
TIFF 0x00 4 IFH (Image File Header) 0x04 (바이트 순서 마커 이후) 8 이미지 데이터 오프셋, 필드 개수 정보 등이 담겨 있음
XML 0x00 5 루트 엘리먼트 XML 파서로 문서 파싱 XML 파서로 파싱하여 요소의 시작, 종료 위치 확인 XML 문서의 구조를 정의하는 최상위 엘리먼트
SVG 0x00 4 <svg 엘리먼트 XML 파서로 문서 파싱 XML 파서로 파싱하여 요소의 시작, 종료 위치 확인 SVG 이미지의 뷰포트, 좌표 시스템 등을 정의
PDF 0x00 4 PDF Body PDF 파서로 문서 파싱 PDF 객체 구조에 따라 가변적 PDF 문서의 내용 (텍스트, 이미지, 폰트 등)
MP3 0x00 2/3 ID3 태그 (선택 사항) 0x00 (ID3 태그 존재 시) 가변 (ID3 태그 크기에 따라 다름) MP3 파일의 메타 정보 (제목, 아티스트, 앨범 등)
Ogg 0x00 4 Ogg Page Header Ogg 페이지 시작 위치 27 페이지 시리얼 넘버, 페이지 체크섬 등 Ogg 스트림 정보를 담고 있음
MP4 0x04 4 ftyp 박스 0x04 ftyp 박스 크기에 따라 다름 (8바이트 이상) MP4 파일의 파일 타입, 호환성 정보 등을 담고 있음
OGV 0x00 4 Ogg Page Header Ogg 페이지 시작 위치 27 Ogg 컨테이너 내의 비디오 스트림 정보
RAR 0x00 4 Archive Header 0x00 가변 (헤더 유형 및 데이터에 따라 다름) 압축 해제에 필요한 기본 정보, 파일 속성 등
7z 0x00 6 Header 0x06 (시그니처 이후) 가변 (헤더 구조에 따라 다름) 압축 방식, 암호화 정보, 파일 메타데이터 등
GZIP 0x00 2 Compressed Data 0x0A (헤더 이후) 가변 (압축 데이터 크기에 따라 다름) 압축된 데이터
XSL 0x00 5 <xsl:stylesheet> XML 파서로 문서 파싱 XML 파서로 파싱하여 요소의 시작, 종료 위치 확인 XSLT 스타일시트 정의
WebAssembly 0x00 4 Version Section 0x08 (매직 넘버 및 버전 섹션 이후) 4 WASM 파일 버전 정보

설명:

  • 매직 넘버 주소: 파일 시작을 0으로 했을 때, 매직 넘버가 시작되는 위치입니다.
  • 매직 넘버 길이: 매직 넘버의 바이트 단위 길이입니다.
  • 주요 데이터 구조체 (예시): 파일 형식에 따라 핵심 정보를 담고 있는 데이터 구조체의 예시입니다. 이 외에도 다양한 데이터 구조체가 존재합니다.
  • 주소: 주요 데이터 구조체가 시작되는 위치입니다. 이 값은 파일 구조에 따라 달라질 수 있습니다.
  • 길이: 주요 데이터 구조체의 바이트 단위 길이입니다. 이 값은 파일 구조, 데이터 크기 등에 따라 달라질 수 있습니다.
  • 비고: 추가적인 설명 및 주의 사항입니다.

중요:

  • 이 표는 각 파일 형식의 일반적인 구조를 기반으로 작성되었으며, 모든 파일에 적용되는 것은 아닙니다.
  • 파일 구조는 파일 형식 버전, 옵션 설정 등에 따라 달라질 수 있습니다.
  • 파일을 정확하게 분석하려면 해당 파일 형식의 공식 스펙 문서를 참조해야 합니다.
  • 복잡한 파일 형식 (예: MP4, PDF)의 경우, 파일 구조 분석을 위해 전문적인 파서 라이브러리를 사용하는 것이 좋습니다.