[Format] OLE #01

#01. Comound File Binary Format & Object Linking and Embedding

0x01. Compound File Binary Format

CFBF(Compound File Binary Format)은 여러 파일과 디렉토리를 하나의 파일에 저장하는 마이크로 소프트의 파일형식이다. 
(위키피디아 - "복합파일이진형식")
위키피디아의 설명처럼 CFBF는 파일과 디렉토리를 저장하기 위한 포멧이고 마이크로 소프트에 의해 만들어 졌다. 따라서 (ext4, ntfs, fat 과 같은) 파일 시스템이 디렉토리와 동일한 위치에 파일이 존재할 수 있고 디렉토리 내에 파일이 존재할 수 있듯 CFBF도 동일하다. 하지만 파일 시스템과 다르게 CFBF에서는 별도의 용어를 사용하고 있다. 
* 디렉토리 - 스토리지 (Storage)
* 파일 - 스트림 (Stream)
( Storage와 Stream 은 포멧 문서상 용어이므로 익숙해지는 것이 좋다. )
     
디렉토리와 파일간의 위치 관계를 콘솔 명령어 dir 이나 윈도우 창을 통해 확인해 보면 다음과 같은 구조를 볼 수 있다. 
     
     C:\
          + AMD
          + apps
          + dell
          + Drivers
          - HaxLogs.txt
          .......
이런 정보는 윈도우의 경우 NTFS 파일 시스템 포멧에 맞춰 정보를 수집해 사용자에게 보여주는 것이다. CFBF 또한 이런 구조를 갖고 있으며 CFBF 파일 포멧을 갖고 있는 파일에서 정보를 수집할 수 있다. 

그럼 CFBF 파일 포멧을 갖는 파일은 어떤 것들이 있을까?
* CFBF 파일 포멧 - DOC, PPT, XLS, HWP (버전 5 이상), MSI

0x02. Object Linking and Embedding

OLE(Object Linking and Embedding)은 마이크로 소프트가 개발한 기술로서 문서와 기타 객체에 연결과 삽입을 도와주는 연결 규약이다. 
(위키피디아 - "객체연결삽입")

위키피디아의 설명처럼 OLE 또한 CFBF와 같이 마이크로 소프트에 의해 만들어졌다. OLE의 궁극적인 목적은 문서간의 데이터 연결과 데이터간의 링크 관리라 할 수 있다. 
따라서 마이크로 소프트는 CFBF 파일 포멧을 갖는 문서 파일간에 OLE 연결 규약을 적용해 파일간의 데이터 연결 및 공유를 시도한 것이며 이로 인해 문서간의 데이터 교환이 자유로워졌다. 우린 이를 통해 워드 문서에서도 엑셀과 동일하게 통계와 그래프 그리기등이 가능해졌고 복잡한 포뮬라 연산도 가능해졌다. 

그러한 기능적 공유, 파일간의 데이터 공유는 파일 포멧을 분석하는 입장에서 바라보면 다음과 같은 것을 생각할 수 있다. 
* 공통된 데이터 포멧이 있다.
* 워드의 기능을 엑셀에서 사용할 수 있는 것처럼 워드에서 발생하는 취약점이 파워포인트에서도 발생할 수 있다. 
문서 포멧만을 파악하는 수준이라면 크게 중요하지 않겠지만 문서 포멧을 바탕으로 분석(파싱)을 한다면 (설계상) 중요한 포인트가 될 수 있다. 

정리 1
CFBF(Compound File Binary Format)는 파일 포멧을, OLE(Object Linking and Embedding)는 파일 포멧간의 데이터 교환 관련 연결 규약이다. 


[ 참고 ]
Microsoft : [MS-CFB]:Compound File Binary File Format [PDF] [Web Page]
OpenOffice : Microsoft Compound Document File Format [PDF]

이 글은 Evernote에서 작성되었습니다. Evernote는 하나의 업무 공간입니다. Evernote를 다운로드하세요.

댓글

가장 많이 본 글