9-11강 요약 정리
1. PE File Format (Portable Executable)
Windows OS에서 실행 가능한 파일 형식 의미함
- 32bit: PE
- 64bit: PE+ / PE32+
PE 파일 종류
- 실행 계열: exe, scr
- 드라이버 계열: sys, vxd
- 라이브러리 계열: dll, ocx, cpl, drv
- 오브젝트 계열: obj
※ obj는 링크 전 단계 파일이라 단독 실행 불가
PE 파일 특징
실행에 필요한 다양한 정보들이 헤더(Header)에 저장됨
PE 파일 분석 =
PE Header 내부 구조체(Structure) 분석 과정이라고 볼 수 있음

2. 주소 개념 (VA / RVA)
VA (Virtual Address)
프로세스 가상 메모리에서 사용하는 절대 주소
RVA (Relative Virtual Address)
기준점 ImageBase 기준 상대 주소
ImageBase
프로그램이 메모리에 로드되는 시작 주소
관계식
RVA + ImageBase = VA
왜 RVA 사용함?
PE 파일을 특정 메모리에 로드하려는데
이미 다른 프로그램이 있으면 재배치(Relocation) 발생함
→ 다른 빈 주소로 이동해야 함
만약 절대주소(VA)만 사용하면 충돌 발생
그래서 상대주소(RVA) 사용함
PE 파일 내부 주소 대부분 RVA 방식 사용
3. DOS Header
PE 파일 맨 앞에 존재하는 필수 헤더
목적
→ MS-DOS와의 호환성 유지
구조체 이름
IMAGE_DOS_HEADER
크기
64 bytes
주요 필드
1) e_magic
DOS Signature
값
4D 5A (ASCII : MZ)
→ 모든 PE 파일 시작 부분에 존재
2) e_lfanew
NT Header 시작 위치 가리키는 값
즉
NT Header까지 떨어진 거리(Offset) 의미
위치
Offset 3Ch
크기
4 bytes
4. DOS Stub
위치
DOS Header 와 NT Header 사이
필수 아님 → Optional 영역
동작
DOS 환경
- 내부 16bit 코드 실행됨
- 메시지 출력
예
This program cannot be run in DOS mode
Windows 환경
- 이 영역 실행 안함
- 바로 NT Header로 이동
보안 관점
일반 실행에는 영향 없음
하지만
- 데이터 숨김
- 악성코드 삽입
같은 은닉 공간으로 악용될 가능성 존재
'2. Reversing (리버싱) > 2) 개념 정리' 카테고리의 다른 글
| [26.05.08] 개구리버싱 6주차 활동 (0) | 2026.05.08 |
|---|---|
| [26.05.01] 개구리버싱 4주차 활동 (0) | 2026.05.01 |
| [26.04.03] 개구리버싱 2주차 활동 (0) | 2026.04.03 |
| [26.03.27] 개구리버싱 1주차 활동 (0) | 2026.03.27 |
| [2025.05.24] 리버싱난다_6주차 활동 (5) | 2025.05.30 |