ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • PE 파일 포맷
    Hack/Reversing 2012. 8. 3. 21:11
    PE 파일 포맷

    먼저 PE HEADER 이해를 돕기 위해 PE 파일 포맷이 무엇인지 이해할 필요가 있다.
    PE 파일 포맷은 윈도우 운영체제에서 정의한 파일 포맷으로 Portable Executable의 약자다.
    PE 파일 포맷의 구조만 가지고도 책 한 권을 쓸 수 있는 분량이기에 필자의 글에서는 필요한 정보만을 다룰 것이다. 더 깊이있게 공부하고 싶은 독자는 MSDN과 관련된 책들을 참고하기를 먼저 알려둔다.
    우리가 흔히 윈도우에서 접하는 확장자중 PE 파일 포맷으로 작성된 파일은 EXE, SCR, DLL, OCX, SYS, OBJ가 있으며, 직접 실행 가능한 EXE를 제외한 나머지 파일 종류중 OBJ를 제외하고는 간접적(서비스, 디버깅, 레지스트리 등)으로 실행이 가능한 파일들이다.


    <그림 1>은 오래전 MSDN에 공개되었던 PE 파일의 일반적 구조다.


     

     

    <그림 1> 왼쪽의 그림은 메모리에 올라가기 전 파일상태의 그림으로 필수로 있어야 하는 부분이고 각 구조체를 구분하는 방법은 각 끝부분은 Null Padding을 통해 구분할 수 있도록 되어있다.

    그리고 <그림 1>의 오른쪽 부분의 메모리에 로딩되었을 때 위치가 변경되는 것은 파일에서는 offset으로 메모리는 VA (Virtual Address)로 표현한다. 이때 섹션 크기에 맞춰 PE Header에 로드될 메모리 위치를 지정하게 되는데 최소기본단위에 맞춰 메모리에서 위치가 변경되는 것을 알 수 있다.

    <그림 1>에서 설명하고 있는 많은 구조체를 크게 DOS Header 혹은 NT Header(위 MSDN 그림상의 PE Header이나 구분을 위해 앞으로 NT Header로 표기)라고 하며 Sections Table을 합쳐서 보통 PE Header라고 부르기도 한다. 또한 그 상위의 섹션들을 PE Body라고 한다.

    http://www.dbguide.net/knowledge.db?cmd=view&boardUid=152295&boardConfigUid=19&boardStep=&categoryUid=574

     

    <위 사이트의 전문가 칼럼 글에서 부분 발췌하여 정리한 글로써 위 사이트에 로그인하면 다양한 툴을 사용하여 PE 파일에 대해 설명해 놓았으므로 참고 하기 바랍니다. 무료인지 유료인지는 모르겠습니다. I don't know, it's free or paid>

     

    'Hack > Reversing' 카테고리의 다른 글

    디 컴파일러(Decompilers)  (0) 2012.08.03
    실행 이미지 덤프 툴  (0) 2012.08.03
    바이너리 분석 툴  (0) 2012.08.03
    리버싱의 기본  (0) 2012.08.03
    Ollydbg 설치 & 설정  (0) 2012.08.03
Designed by Tistory.