상세 컨텐츠

본문 제목

008 IAT & EAT

본문

I. IAT(Import Address Table)

: 프로그램이 어떤 라이브러리의 어떤 함수를 사용하고 있는 지 기술한 테이블

       i. DLL(Dynamic Linked Library)

             : 동적 연결 라이브러리

             : DOS에서 Windows OS로 넘어오며 Multi-Tasking을 지원하게 되어 이전에는 실행 파일에 삽입돼있던 함수의 Binary Code를 별도의 파일인 DLL로 구성하여 필요할 때마다 불러 쓸 필요성이 생김

             : 한 번 로딩된 DLL의 code, resource는 Memory Mapping 기술로 여러 프로세스에서 공유, 라이브러리 업데이트 시 해당 DLL 파일만 교체

             > Explicit Linking

                    : 프로그램에서 사용되는 순간 로딩 후 사용이 끝나면 메모리에서 해제

             > Implicit Linking

                    : 프로그램 시작 시 같이 로딩되어 종료 시 메모리에서 해제

             * 이후의 내용은 DLL Injection 공부 시 순차적인 이해를 위해 추후에 포스팅 예정

 

       ii. IAT

             : Implicit Linking에 대한 매커니즘 제공

             : 함수를 직접 호출하지 않고 주소에 있는 값을 가져와서 호출

                OS, 언어, Service Pack에 따라 dll의 버전이 달라지고 함수 주소가 달라짐

                    → 모든 환경에서의 실행을 보장하기 위해서는 해당 API 함수의 실제 주소가 저장될 위치를 준비하고 call dword ptr ds:[010010CC]의 명령어를 적어 둠

                ∵ DLL Relocation : 다른 DLL 파일이 해당 ImageBase를 사용 중일 경우

             > IMAGE_IMPORT_DESCRIPTOR

                    : 어떤 라이브러리를 import하고 있는 지 명시

                    : 보통 여러 개의 라이브러리를 import하므로 라이브러리 개수만큼 배열 형식으로 구조체 존재

IMAGE_IMPORT_DESCRIPTOR from ReverseCore
Important Elements of IMAGE_IMPORT_DESCRIPTOR from ReverseCore
PE 로더가 import 함수 주소를 IAT에 입력하는 순서 from ReverseCore
from ReverseCore

 

       iii. EAT

             : 라이브러리(다른 프로그램에서 불러 쓸 수 있도록 관련 함수들을 모아 놓은 파일_DLL/SYS) 파일에서 제공하는 함수를 다른 프로그램에서 가져다 사용할 수 있도록 해주는 매커니즘, 해당 라이브러리에서 export하는 함수의 시작 주소를 구할 수 있게 함

              : DataDirectory[0]의 VA가 export 구조체 배열의 시작 주소

             > IMAGE_EXPORT_DIRECTORY : EAT를 설명하는 export 정보 저장, 하나만 존재

from ReverseCore
from ReverseCore
from ReverseCore

             > GetProcAddress()

                    : 라이브러리에서 함수 주소를 얻는 API, EAT를 참조해 원하는 API 주소 구함

from ReverseCore

'Reversing > Project - 악성 코드, 진실의 방으로' 카테고리의 다른 글

010 고급 리버싱  (0) 2020.09.25
009 Packer  (0) 2020.09.20
007 PE File Format  (0) 2020.09.20
006 Calling Convention  (0) 2020.09.19
005 Stack  (0) 2020.09.19

관련글 더보기