오브의 빛나는 별

2부 13장 PE File Format(1) 본문

리버싱

2부 13장 PE File Format(1)

오브의 별 2022. 4. 23. 17:58
반응형

안녕하세요, 오브입니다.

오늘은 PE 파일의 기본구조와 VA, RVA에 대해 알아보겠습니다.

 

PE File Format

13.1. 소개

  • PE 파일: Windows 운영체제에서 사용되는 실행 파일 형식. 기존 UNIX에서 사용되는 COFF 기반. 32비트 형태의 실행 파일.
종류 주요 확장자 종류 주요 확장자
주요 확장자 EXE, SCR 드라이버 SYS, VXD
라이브러리 계열 DLL, OCX, CPL, DRV 오브젝트 파일 계열 OBJ
  • OBJ 제외 모두 실행 가능

 

13.2.1. 기본 구조

  • notepad.exe는 일반적인 PE 파일의 기본 구조임.
  • DOS header부터 Section header까지 PE 헤더, 그 밑의 Section들을 합쳐 서 PE 바디(Body)라고 함.
  • 파일에서는 offset으로, 메모리에서는 VA(절대주소)로 위치 표현
  • 파일의 내용은 보통 코드(.text), 데이터(.data), 리소스(. rsrc) 섹션에 나뉘어서 저장
  • PE 헤더 끝부분과 각 세션의 끝에는 NULL padding 존재. 컴퓨터에서 파일, 메모리, 네트워크 패킷 등 처리할 때 효율을 높이기 위해 최소 기본 단위 개념을 사용하는데 PE 파일에도 같은 개념 적용
  • 파일/메모리 섹션의 시작 위치는 최소 기본 단위의 배수에 해당하는 위치. 빈공간은 NULL

https://furysecurity.tistory.com/28 . '리버싱핵심원리', 이승원 저자, 인사이트

 

13.2.2. VA & RVA

  • VA: 프로세스 가상 메모리의 절대주소
  • RVA: 어느 기준 위치에서부터의 상대주소
  • RVA + ImageBase = VA
  • PE 헤더 내의 정보는 RVA 형태로 된 것이 많음. PE 파일(주로 DLL)이 프로세스 가상 메모리의 특정 위치에 로딩되는 순간 이미 그 위치에 다른 PE 파일이 로딩되어 있을 수 있음, 그럴 때 재배치를 해야하는 VA로 되어있으면 정상적인 엑세스가 이루어지지 않기 때문에 RVA로 함.
반응형

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

2부 13장 PE File Format(3)  (0) 2022.04.24
2부 13장 PE File Format(2)  (0) 2022.04.23
1부 3장 리틀 엔디언 표기법  (0) 2022.04.23
1부 2장 Hello World! 리버싱(3)  (0) 2022.04.23
1부 2장 Hello World! 리버싱(3)  (0) 2022.04.23