We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
과거 정리한 어셈블리, DLL관련과 묶어서 실제 동작 방식, 메모리 적재, 운영체제까지 묶어서
exe파일 실행과정에 대한 정리
과거 학부시절의 내용과 면접에서 나온 이슈를 정리한 내용이다.
운영 체제에서 실행 가능한 파일을 나타내는 확장자로 Executable의 줄임말이다.
exe파일은 PE (Portable Executable) 형식의 구조를 가지고 있으며 여러 섹션으로 나누어져 있다.
typedef struct _IMAGE_DOS_HEADER { WORD e_magic; // MZ WORD e_cblp; WORD e_cp; WORD e_crlc; WORD e_cparhdr; WORD e_minalloc; WORD e_maxalloc; WORD e_ss; WORD e_sp; WORD e_csum; WORD e_ip; WORD e_cs; WORD e_lfarlc; WORD e_ovno; WORD e_res[4]; WORD e_oemid; WORD e_oeminfo; WORD e_res2[10]; LONG e_lfanew; // PE 헤더의 오프셋 } IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER;
DOS 환경에서 실행될 때 "This program cannot be run in DOS mode"라는 메시지를 출력하는 코드가 들어있는 부분이다.
"This program cannot be run in DOS mode"
Windows 환경에서는 무시
+-----------------+ | DOS Header | +-----------------+ | DOS Stub | +-----------------+ | PE Header | +-----------------+ | Optional Header | +-----------------+ | Section Headers | +-----------------+ | .text | <- Code section (Instructions) +-----------------+ | .data | <- Data section (Global variables) +-----------------+ | .rdata | <- Read-only data section (Constants) +-----------------+ | .rsrc | <- Resources (Icons, Images) +-----------------+ | .reloc | <- Relocation info +-----------------+
여기서 나오는 .text/.data 영역은 Memory에서 다루었던 내용과 연관이 있다..!
실제 cpp 기준으로 정리한 내용이라 해당 내용을 참고하면 된다.
앞 내용들을 대략적으로 이해했다면, exe 파일이 실행되는 과정을 따라가보자..!
여기 부분이 중요.. 이해가 안된다면 위에서 부터 다시 이해하자!
The text was updated successfully, but these errors were encountered:
fkdl0048
Successfully merging a pull request may close this issue.
Task: exe 파일 실행 되는 과정
과거 정리한 어셈블리, DLL관련과 묶어서 실제 동작 방식, 메모리 적재, 운영체제까지 묶어서
FileExecutionProcess
과거 학부시절의 내용과 면접에서 나온 이슈를 정리한 내용이다.
.exe 파일이란?
exe파일은 PE (Portable Executable) 형식의 구조를 가지고 있으며 여러 섹션으로 나누어져 있다.
DOS 헤더 (MS-DOS Header)
DOS Stub
DOS 환경에서 실행될 때
"This program cannot be run in DOS mode"
라는 메시지를 출력하는 코드가 들어있는 부분이다.Windows 환경에서는 무시
PE 헤더 (PE Header)
옵셔널 헤더 (Optional Header)
섹션 헤더 (Section Headers)
섹션 (Sections)
구조 요약
여기서 나오는 .text/.data 영역은 Memory에서 다루었던 내용과 연관이 있다..!
기타 섹션
실제 .exe파일이 만들어지는 과정
실제 cpp 기준으로 정리한 내용이라 해당 내용을 참고하면 된다.
exe 파일 실행 과정
앞 내용들을 대략적으로 이해했다면, exe 파일이 실행되는 과정을 따라가보자..!
여기 부분이 중요.. 이해가 안된다면 위에서 부터 다시 이해하자!
참조
The text was updated successfully, but these errors were encountered: