[리버싱핵심원리] PE File Format(2)

흑흑코더·2023년 4월 5일
0

시스템

목록 보기
10/22
post-thumbnail

IAT

(Import Address Table)
Windows 운영체제의 핵심 개념인 process, memory, DLL 구조 등에 대한 내용이 함축

DLL

(Dynamic Linked Library)

  • 프로그램에 라이브러리를 포함시키지 말고 별도의 파일(DLL)로 구성, 필요할때마다 불러쓰자
  • 일단 한 번 로딩된 DLL의 리소스는 Memory Mapping 기술로 여러 Porcess에서 공유해서 쓰자
  • 라이브러리가 업데이트 되었을 때는 해당 DLL파일만 교체하면 된다.

CALL 7C8107F0이라고 하지 않는 이유?

  • 컴파일 하는 순간 운영체제 버전, 언어 등 모든 환경에서 함수호출을 보장하기 위해
  • PE로더는 비어있는 공간에 사용한 DLL파일을 Relocation시켜줌

IMAGE_IMPORT_DESCRIPTOR

PE파일이 어떤 라이브러리를 Import하고 있는지 명시해놓은 구조체
라이브러리 개수만큼의 구조체가 배열 형식으로 존재, 마지막은 NULL구조체

EAT

Export Address Table

  • 라이브러리 파일에서 제공하는 함수를 다른 프로그램에서 가져다 사용할 수 있도록 하는 핵심 메커니즘
  • 함수의 시작 주소를 구할 수 있음
  • IAT와 마찬가지로 PE파일 내의 특정 구조체에 익스포트 정보를 저장 (하나만 존재)
    => PE헤더에서 찾을 수 있음

IMAGE_EXPORT_DIRECTORY


Patched PE

: PE 스펙만 맞추면 PE파일이 되므로 상식을 벗어나는 파일들을 만들 수 있음

profile
공부합시다

0개의 댓글