1. DOC ?
컴퓨터에서 DOC 또는 doc (Document의 준말)은 워드 처리 문서를 위한 파일 확장자이다. 대개 Microsoft Word에 쓰인다. 역사적으로 이 확장자는 다양한 운영 체제에서, 특히 프로그램이나 컴퓨터 하드웨어의 플레인 텍스트 형식으로 사용되었다. 1980년대에 워드퍼펙트는 DOC을 저들의 사유 포맷 확장자로 사용하였다. 나중에 1990년대 말에 이르러 Microsoft는 DOC 확장자를 자신의 Microsoft Word 처리 포맷으로 사용하였다. 전자의 경우는 PC 세상에서 대부분 사라진 상황이다. - Wikipedia -
MS Word 바이너리 파일 포맷의 기본 스트림(WordDocument 스트림)은 파일 정보 블록(FIB, File Information Block)으로 시작한다. FIB는 파일의 각 부분에서 참조하는 문서 텍스트 및 기타 정보를 포함하는 가변 길이의 형식의 구조이며, 최대 크기는 0x7FFFFFFF 이다.
2. BIFF 파일 형식
DOC 파일은 "D0 CF 11 E0 ..." 으로 시작되는 BIFF 파일 형식이다.
3. DOC 파일 구분할 수 있는 문자열
파일 중간에 "WordDocument" 문자열이 존재한다면 DOC 파일로 볼 수 있다.
4. FibBase 구조
FIB는 MS Word 바이너리 파일에 포함된 구성요소의 정보를 한 쌍의 정수 형태로 가지고 있다. 최상위 32바이트에 저장된 FibBase 고정된 크기이며 포맷 분석에 사용되는 주요 정보를 포함된다. 다음 그림은 FibBase 전체 구조이다. 아래 구조 설명은 MS에서 제공하기 때문에 MS에서도 확인 가능하다.
(아래 글은 거의 다 MS에서 제공하는 문서를 참고 했어요... 확실한 것을 원한다 싶은 사람은 MS 문서를 참고해주세요.)
- wIdent
Word 바이너리 파일의 시그니처 (0xA5EC)
- nFib
사용되는 파일 포맷의 버전 (0x00C1). FibRgCswNew의 nFib 속성 값이 있는 경우 그 값이 사용된다. 이 값은 설치 언어를 지정하는데 사용되기도 한다.
nFib 값 cswNew 값
0x00C1 -> 0
0x00D9 -> 0x0002
0x0101 -> 0x0002
0x010C -> 0x0002
0x0112 -> 0x0005
- unused
사용되지 않는 값이다.
- lib
문서를 생성하는 응용프로그램의 설치 언어를 지정하는 값이다.
nFib 값이 0x00D9 이거나 크면 동아시아, 스페인어, 독일어, 불어이다. 0x0101 이상이면 베트남어, 태국어 또는 힌디어이다.
- pnText
WordDocument 스트림에 포함된 모든 상용구 항목을 지칭하는 오프셋으로 부호 없는 정수. 이 값이 0이면 연결된 상용구 항목이 없다.
- A ~ M
문서 속성 값을 나타낸다.
해당 값을 비트로 나타내면 0x52F0 = 0101 0010 1111 0000과 같다. 0이 yes, 1이 no 이다.
A - fDot : 템플릿 여부
B - fGlsy : 상용구만 포함되어 있는지 여부
C - fComplex : 증분 저장을 사용하는지 여부
D - fHasPic : 문서에 그림을 포함하는지 여부
E - cQuickSave(4 bit) : nFib가 0x00D9 보다 작은 경우 자동 저장 시간을 의미
F - fEncrypted : 암호화 및 난독화가 지정되었는지 여부
G - fWhichTblStm : FIB가 참조하는 테이블 스트림(0 -> 0Table, 1 -> 1Table)
H - fReadOnlyRecommended : 문서 작성자가 읽기전용 모드로 지정했는지 여부
I - fWriteReservation : 문서에 쓰기 예약 암호가 있는지 여부
J - fExtChar : 반드시 1
K - fLoadOverride : 기본 단락 스타일에 지정된 언어 정보와 글꼴을 응용 프로그램의 설치 언어에 적합한 기본 값으로 대체할지 여부
L - fFarEast : 문서를 만든 응용 프로그램의 설치 언어가 동아시아 언어인지 여부
M - fObfuscated : fEncrypted가 1이면 비트는 XOR 난독화를 사용하여 문서가 난독화 되는지 여부를 지정
- nFibBack
파일 포맷 버전에 따라 값이 달라진다. 0x00BF은 Word 97 버전이다.
- IKey
fEncrypted가 1이고, fObfuscated 1이면 XOR 난독화 암호 확인자(password verifier)를 지칭한다.
- envr
사용되지 않으며 값은 0이다.
- N ~ S
기타 속성 값을 나타낸다.
해당 값을 비트로 나타내면 0x10 = 0001 0000과 같다.
N - fMac : 사용되지 않으며 값은 0이다.
O - fEmptySpecial : 사용되지 않으며 값은 0이다.
P - fLoadOverridePage : 페이지 크기, 방향 및 여백의 섹션 속성을 응용프로그램 설치 언어에 적합한 기본 값으로 대체할지 여부
Q - reserved : 사용되지 않으며 값은 0이다.
R - reserved : 사용되지 않으며 값은 0이다.
S - fSpare0(3 bit) : 사용되지 않으며 값은 0이다.
- reserved3 ~ 4
사용되지 않으며 값은 0이다.
- reserved5 ~ 6
사용되지 않으며 값은 0이다.
'Digital Forensics > ETC' 카테고리의 다른 글
BIFF (Binary Interchange File Format) (1) | 2017.11.27 |
---|