IAT
IAT(Import Address Table)란?
프로그램이 어떤 라이브러리에서 어떤 함수를 사용하고 있는지를 기술한 테이블입니다.
IMAGE_IMPORT_DESCRIPTOR 구조체
PE파일은 자신이 어떤 라이브러리를 Import하고 있는지 IMAGE_IMPORT_DESCRIPTOR 구조체에 명시하고 있다.
구조체 중요 멤버
OrginalFirstThunk : INT(Import Name Table)의 주소(RVA)
Name : Library 이름 문자열의 주소(RVA)
FirstThunk : IAT(Import Name Table)의 주소(RVA)
EAT
EAT(Export Address Table)란?
라이브러리 파일에서 제공하는 함수를 다른 프로그램에서 가져다 사용할 수 있도록 해주는 핵심 메커니즘이다.
즉 EAT를 통해서만 해당 라이브러리에서 export하는 함수의 시작 주소를 정확히 구할 수 있다.
IMAGE_EXPORT_DIRECTORY 구조체
구조체 중요 멤버
NumberOfFunctions : 실제 Export 함수 개수
NumberOfNames : Export 함수 중에서 이름을 가지는 함수 개수 (<= NumberOfFunctions)
AddressOfFunctions : Export 함수 주소 배열 (배열의 원소 개수 = NumberOfFunctions)
AddressOfNames : 함수 이름 주소 배열 (배열의 원소 개수 = NumberOfNames)
AddressOfNameOrdinals : Ordinal 주소 배열 (배열의 원소 개수 = NumberOfNames)
'Study > Reversing' 카테고리의 다른 글
[리버싱] 언패킹 (0) | 2017.09.19 |
---|---|
[리버싱] 패킹 (0) | 2017.09.18 |
[리버싱] 정적&동적 라이브러리 (0) | 2017.09.16 |
[리버싱] PE파일 (0) | 2017.09.14 |
[리버싱] CALL, JMP, RET(RETN) 명령어에 대해 알아보자 (0) | 2017.09.03 |
댓글