떡밥위키
최근 변경
최근 토론
특수 기능
파일 올리기
작성이 필요한 문서
고립된 문서
고립된 분류
분류가 되지 않은 문서
편집된 지 오래된 문서
내용이 짧은 문서
내용이 긴 문서
차단 내역
RandomPage
라이선스
IP 사용자
216.73.216.107
설정
다크 모드로 전환
로그인
개인정보 처리방침 개정 안내
Microsoft Windows/커널
(r1 문단 편집)
닫기
RAW 편집
미리보기
==== 생성 과정 ==== 윈도우 프로세스의 생성 과정은 다음과 같다. 1. 사용자가 실행 파일을 클릭하면 PE Loader가 해당 실행 파일을 열고 PE 헤더를 찾는다. PE 헤더에는 타깃 CPU 아키텍처, 진입점, 서브시스템 등, 프로세스 실행에 필요한 정보가 들어가 있다. 2. PE 헤더에서 필요한 정보들을 얻어냈으면 다음 단계로 넘어간다. 3. NtCreateUserProcess 함수를 호출하여 커널 영역에서 프로세스 객체(EPROCESS, KPROCESS[* PCB (Process Control Block)])를 할당하고 초기화한다. 4. 프로세스가 성공적으로 생성됐으면 NtCreateThread 함수를 호출하여 프로그램의 진입점을 실행하는 기본 스레드를 생성한다. NtCreateThread는 커널 영역에서 스레드 객체(ETHREAD, KTHREAD[* TCB (Thread Control Block)])를 할당하고 초기화한다. 이렇게 만들어진 스레드는 일시정지(Pause) 상태로 생성된다. 5. 프로세스 및 기본 스레드가 생성됐으면 Win32 서브 시스템인 csrss.exe 프로세스에 생성된 프로세스 ID 및 기본 스레드 ID를 전달하여 Win32 서브시스템에서 관리할 수 있도록 만든다. 6. 이후 기본 스레드의 일시정지 상태를 해제하여 실행되도록 만든다. 단, CREATE_SUSPENDED 옵션이 주어졌을 경우 예외로 한다. 이 경우 ResumeThread 함수로 직접 스레드의 일시정지 상태를 해제시켜야 한다.
요약
문서 편집을
저장
하면 당신은 기여한 내용을
CC BY-NC-SA 2.0 KR
또는
기타 라이선스 (문서에 명시된 경우)
로 배포하고 기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다. 이
동의는 철회할 수 없습니다.
비로그인 상태로 편집합니다. 로그인하지 않은 상태로 문서 편집을 저장하면, 편집 역사에 본인이 사용하는 IP(216.73.216.107) 주소 전체가 영구히 기록됩니다.
저장
사용자
216.73.216.107
IP 사용자
로그인
회원가입
최근 변경
[불러오는 중...]
최근 토론
[불러오는 중...]