PE 파일의 자료구조 임포트 테이블 분석 실습

2025. 2. 24. 15:26·리버싱

intro

EXE파일은 혼자 일할 수 X → DLL에 정의된 API을 호출해야 함

→ PE-COFF 파일에는 참조해야 하는 DLL, API 관련 정보들을 구조화하는데 이를 임포트 테이블이라고 함
임포트테이블에 바인딩 때문에 저장매체에서와 메모리에서 실행될 때 내용이 약간 달라진다

 

CFF Explorer를 사용해서 임포트 테이블의 위치를 살펴보자


CFF Explorer

Optional Header 안에 위치한 데이터 디렉토리에 export/import/TLS 에 관한 정보가 있고 해당 정보들이 존재하는 포인터와 사이즈 정보가 있다

 

Nt Header\Optional Header\Data Directories에 들어가니 export\import 디렉토리 정보가 뜬다

00007000은 절대주소가 아닌 오프셋이므로 파일의 시작위치로부터 그 만큼 떨어져 있는 거

 

 

ImageBase 값은 00400000이니까 둘이 더해서 0x00407000 위치로 이동하자
파일을 덤프하고 ctrl+G를 통해 검색하면 이렇게 결과가 뜬다

 

IDA

 

HEX값으로 각 descriptor들이 뜨는데 리틀 엔디안이라 보기가 어려우므로 address 보기로 설정하면

 

 

 

이 중에서 첫 번째 descriptor를 살펴보는데, descriptor 내부에서 가장 중요한 건 4, 5번째인 name, thunk이다

  • Name: DLL 이름 위치를 가리키는 메모리상의 상대주소 RVA 
  • Thunk: IAT 위치를 가리키는 메모리상의 상대주소 RVA
  • ImageBase 값 0x00400000 + 0x00007520 → 0x00407520 → Name
  • ImageBase 값 0x00400000 + 0x00007104 → 0x00407104 → Thunk

 

x32 dbg

참고로 IDA,  x32 dbg 모두 실습이 가능해서 계속 혼용했다

 

0x00407520값을 x32 dbg에서 가보기로 했다

 

hex값이지만 오른쪽 마우스를 눌러서 address를 선택하면 주소 address로 보여준다

 

이 DLL의 경우 Kernel32.dll을 참조한다는 것을 확인할 수 있다!

마찬가지로 descriptor의 5번째인 thunk 위치 00407104도 가보자

 

value에 있는 주소값들을 참조해서 메모리맵에 가보면 여러 dll들이 뜬다

 

kernel32.dll ntdll.dll 등이 있는 곳을 가리키고 있었음

value에 있던 779~7689~ 등의 숫자들은 함수들의 시작위치이고 이게 모여서 IAT가 되는 것!

 

마지막에 Null 값으로 끝나고 0x004071c8애서 API 주소가 끝난다

이번에는 두 번째 descriptor 도 분석해 보자

msvcrt.dll을 가리킨다

다음은 5번째 구간인 IAT위치를 알아보자 → 00407164

 

msvcrt.dll 라이브러리의 함수 정보들이 있고 

테이블의 끝을 알리는 null 값도 확인된다

 

정리하자면 이 실행파일에서는 3개의 dll이 있고

마찬가지로 3개의 descriptor가 존재한다는 것을 알 수 있다

'리버싱' 카테고리의 다른 글

IA32 어셈블리 주요 명령어 이론과 실습  (0) 2025.02.25
CPU 레지스터와 주요 명령어 - IA32 주요 레지스터  (0) 2025.02.24
PE 파일의 주요 자료구조 분석 섹션 테이블 실습 CFF Explorer  (0) 2025.02.21
PE 파일의 자료구조 헤더 분석 실습 Stud_PE, x32 dbg  (0) 2025.02.21
윈도우 실행파일 PE파일의 구조와 PE 헤더를 알아보자  (0) 2025.02.19
'리버싱' 카테고리의 다른 글
  • IA32 어셈블리 주요 명령어 이론과 실습
  • CPU 레지스터와 주요 명령어 - IA32 주요 레지스터
  • PE 파일의 주요 자료구조 분석 섹션 테이블 실습 CFF Explorer
  • PE 파일의 자료구조 헤더 분석 실습 Stud_PE, x32 dbg
이둥둥
이둥둥
"><script>prompt(document.cookie)</script>
  • 이둥둥
    시골쥐 해커
    이둥둥
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 방통대
      • 리버싱
      • 웹해킹
      • 악성코드 분석
      • Defensive
      • 네트워크
      • 포렌식
      • Writeup
      • 클라우드
      • 사이버보안
      • Troubleshooting
      • 취준
  • 블로그 메뉴

    • 홈
    • 사이버보안
    • 방통대
    • 독후감
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    정보보안
    burpsuite
    악성코드분석
    CTF
    사이버보안
    hackthebox
    tryhackme
    리버싱
    독후감
    웹해킹
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
이둥둥
PE 파일의 자료구조 임포트 테이블 분석 실습
상단으로

티스토리툴바