-
IAT(Import Address Table) , EAT(Export Address Table)windows system 2013. 12. 28. 22:29IAT(Import Address Table)
exe는 process생성 주체가 되므로 자신의 ImageBase에 정확히 loading되지만,
dll은 자신의 ImageBase에 정확히 loading되지 못하며, 빈 공간으로 relocation된다.
IMAGE_IMPORT_DESCRIPTOR구조체로 이루어져 있다.
여러 개의 라이브러리를 import하기 때문에 라이브러리의 개수만큼 위 구조체의 배열 형식이 존재하며, 마지막엔 null구조체를 넣어주어야한다.
IMPORT Name Table(INT)구조체에선 OriginalFirstThunk, PEView에선 IMPORT Name Table(INT)이란 이름으로 되어있다.
IAT는 IMAGE_IMPORT_BY_NAME 구조체의 배열로 이루어져 있다.
첫 2바이트는 라이브러리에서 해당 함수의 고유번호를 나타내며, 그 뒤론 함수의 이름이 배열로 들어있다.
IMPORT Address Table구조체에선 FirstThunk, PEView에선 IMPORT Address Table(IAT)이란 이름으로 되어있다.
첫번째 창은 IMAGE_IMPORT_DESCRIOTOR을 보여주며, firstThunk는 IAT의 RVA 주소값을 가지고 있다.
두번째 창은 IAT로 넘어왔으며, 라이브러리의 API의 RA address를 가지고 있다.
세버째 창은 ADVAPI32.dll에서 RegSetVauleExW API의 코드 찾을 수 있다.EAT(Export Address Table)IMAGE_EXPORT_DESCRIPTOR구조체로 이루어져 있다.
'windows system' 카테고리의 다른 글
윈도우에서 파이썬 개발 환경 세팅 (Anaconda, ipython, Visual Studio python) (0) 2014.09.21 TLS, TEB, PEB, SEH (0) 2014.01.08 DLL injection (0) 2013.12.24 CreateProcess API (0) 2013.12.23 calling convention (0) 2013.12.22