반응형
Portable Executable : 이동이 가능하고 실행이 가능한 파일이다. 다른 윈도우 시스템에 옮겼을 때 실행이 되도록. 같은 윈도우 계열에 어디서든 실행이 될 수 있게 하기위함.(호환성)
PE파일이라는 실행 파일은 구조체 형태로 이루어져 있다. 이 구조체에 대한 정의는 winnt.h.라는 파일에 정의 되어있다.
- winnt.h 파일을 보면 PE 포맷에 대한 정보를 볼 수 있다.
- Image File
- EXE, DLL과 같은 확장자를 가지는 실행 파일
- 실행 파일 자체가 가상 주소 공간에 Mapping되어 사용
- Object File
- Linker에 입력되는 파일
- Linker는 Object File에서 Image File을 생성하게 되고 생성된 Image File은 Loader에 의해 Memory로 적재
- 정렬 단위
- Memory나 File별 정렬단위가 존재
- Section의 최소 크기를 의미
PE의 기본적인 레이아웃- 코드와 데이터, 헤더가 실행파일에 기본적으로 포함이 된다. 외부에서 불러오기 위한 것인 idata(import data)도 필요
- Header는 헤더, Code, data, idata는 섹션이라고 한다.
- 실행파일을 만들어 주는건 링커, 기계어인 바이너리 코드로 만들어 주는건 컴파일러
- Header는 DOS Header, DOS STUB code, PE Header, Section Header로 나뉘어진다.
- 위의 PE Header를 나뉘서 보면, PE signature(단순한 문자열 형태의 값), File Header, Optional Header
- Section Header는 위에서 나눴던 PE파일에서의 섹션으로 Code, data, idata 3개가 나온다.
반응형
'OLD_posting' 카테고리의 다른 글
주요 포트 정리 (0) | 2012.10.08 |
---|---|
리버스 텔넷 (0) | 2012.08.06 |
Caller/Callee Seaved Register (0) | 2010.11.15 |
Calling Convention (0) | 2010.11.15 |
ALU (arithmetic-logic unit) - 산술논리 연산장치 (0) | 2010.11.15 |