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파일이 되므로 상식을 벗어나는 파일들을 만들 수 있음