ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • OLE File Structure
    $ 포렌식 $/$ 포렌식 기술적 이론 $ 2019. 11. 16. 22:28

    OLE File 이란?

    OLE 파일은 Object Linking & Embedding의 약자로 Microsoft Compound File Binary File format인 CFBF format 이라고도 불립니다.

     

    OLE File Structure

    OLE File은 크게 2개의 블록으로 나뉘는데 Header Block 과 Data Block 으로 나뉘어 집니다.

    헤더 블록은 128byte * 2^N의 크기를 가지며, 그 이후로는 데이터 블록을 가지게 됩니다.

     

    데이터 블록은 여러개의 섹터로 되어있습니다. 헤더도 하나의 섹터로도 불립니다.

     

    결국 각각의 섹터들이 모여서 만들어 진것이 OLE File 입니다.

    그렇다면 섹터로는 어떤 종류가 있는지 한번 알아 보겠습니다.

     

    데이터 블록은 Stream Sector가 대부분 섹터를 차지하고 있습니다.

    아마도 Data와 관련되어 있기 때문이겠죠??

     

    OLE 블록 구조는 기존의 파일구조들과는 좀 다른 구조를 가지고 있습니다.

    OLE 블록 구조를 한번 확인해 보겠습니다.

     

    기본적인 기조는 0번 인덱스(?) 부터 이야기를 하지만 OLE File Structure는 -1번 인덱스 가 Header Block 역할을 하고 Data Block 은 0번 인덱스부터 시작합니다.

     

    그렇다면 OLE 구조를 한번 확인해 보겠습니다.

    OLE 구조를 가지고 있는 .hwp 파일을 한번 HxD로 열어보겠습니다.

     

    이런식으로 데이터가 들어가 있습니다.

     

    더이상 쓸 이유가 없을땐 FF 로 채워지는것 같아 보입니다.0x200 의 크기가 Header 로 들어있는거 같습니다.

    그렇다면 OLE File Structure 를 표로 작성해서 확인해 보겠습니다.

     

    위와 같은 File Structure를 의미 합니다.

     

    각각의 데이터가 어떤 값을 의미하는지는 아래의 표에 설명이 되어 있습니다.

     

    위의 HxD로 확인한 데이터를 구조에 대조해 보겠습니다.

     

    OLE File Header Structure를 분석해서 주요 정보를 확인해 보겠습니다.

     

    위의 데이터를 바탕으로 Mini FAT의 위치가 39 Sector 에 있기 때문에 512*39 = 19968(0x4E00) 에 존재합니다.

     

    실제로 존재하지만 데이터가 좀 많이 길군요

    해당 데이터는 FAT(File Allocation Table) Area로 파일 구조는 아래와 같습니다.

     

    FAT Area를 지나면 Root Directory Entry 가 옵니다.

     

    Root Directory Entey의 크기는 0x80입니다.

     

    해당 구조에 대해서 세부적으로 한번 알아보겠습니다.

     

    직접 위의 테이블에 기반하여 데이터를 대조해 보면 해당 부분의 hex값이 어떤 데이터를 의미하는지를 알수 있을것 같습니다.

    댓글

Designed by Tistory.