2017. 2. 27. 21:01ㆍHobby/Reverse
PE 파일
- PE 파일 기본 개념
고급 언어 -> 기계어 -> 메모리
(컴파일러) (PE 구조) (로더) (DLLs)
_DLL : Dynamic Linking Library, 동적으로 라이브러리 연결
- 컴파일러
-> 컴퓨터가 이해할 수 있는 기계어로 번역, 처적의 성능 내도록 다양한 기능 제공
- PE 파일 종류
-- 실행 계열 : EXE, SCR
-- 라이브러리 계열 : DLL, OCX, CPL, DRV
-- 드라이버 계열 : SYS, VXD
-- 오브젝트 파일 계열 : DBJ
- PE Header : IMAGE_DOS_HEADER
MS-DOS Stub Program
-- IMAGE_NT_HEADERS : Signature
IMAGE_FILE_HEADER
IMAGE_OPTIONAL_HEADER
-- Section Header : SECTION HEADER 1
SECTION HEADER 2
- Section Data : SECTION DATA 1
SECTION DATA 2
- 주소 지정 방법
- pFile : PE 파일 내부에서의 오프셋 값을 의미 (파일)
- RVA (Relative Virtual Address) : PE 파일이 메모리로 로드 됐을 때 저장되는 상대 주소 (메모리)
- VA : 가상 메모리상에 저장되는 실제 주소 (메모리)
-> 찾는 데이터는 헤더에 있는 정보를 가지고 찾음
- IAT (Import Address Table)
-> PE파일 안에 어떤 라이브러리의 어떤 함수를 가져다 쓰는지 기록해놓은 정보, IAT 안에 API를 가리키는 주소를 로더가 로딩할 때 적어 놓고 찾아서 사용, 코드에서 라이브러리를 참조하는 부분은 IAT 내부에 있는 함수 주소를 사용
-> 헤더(PE 파일 동작 규칙)와 보디(헤더에 적혀 있는 규칙, 기계어들 저장)로 구성
'Hobby > Reverse' 카테고리의 다른 글
Reverse 01 (0) | 2017.02.26 |
---|