본문 바로가기

System/windows

Windows 프로세스 내부 구조:: 핵심 데이터 구조체 알아보기

 

윈도우 프로세스 핵심 데이터 구조체에 대해서 알아보자.

 

익스큐티브 프로세스 (EPROCESS)

- 모든 윈도우 프로세는 EPROCESS로 표현됨.

- 프로세스의 여러 속성 뿐만아니라 연관된 다른 구조체를 가리키는 포인터도 존재함.

- 시스템 주소 공간에 위치함

dt nt!_eprocess 명령 통해 EPROCESS 구조체 필드 확인

 

 

 

KPROCESS

- EPROCESS 구조체의 첫 필드인 PCB의 타입. 

- 커널 프로세스를 위한 구조체 타입이다.

- 익스큐티브 루틴은 EPROCESS에 정보 저장, 그러나 운영체제 커널은 KPROCESS에 정보를 저장

- 커널의 일부로서 디스패처, 스케줄러, 인터럽트, 시간관리코드 등이 존재

--> 익스큐티브 상위 레벨 기능과.. 해당 기능의 구현을 위한 하위 레벨 함수의 구현 간에 추상화 계층을 제공

--> 계층 간 원치 않는 종속성이 생기지 않도록 함.

※ KPROCESS는 EPROCESS의 첫번째 필드. EPROCESS 주소를 KPROCESS로 이용하여 dt _kprocess 명령 이용 가능

 

 

PEB

 

CSR_PROCESS

- 윈도우 서브시스템 프로세스(Csrss.exe)가 관리하는 프로세스마다 대응되는 구조체.

- 윈도우 애플리케이션만이 자신과 연관된 CSR_PROCESS 구조체 가짐

- CSR_PROCESS 구조체는 각 세션 내의 Csrss프로세스에 의해 관리됨

 

W32PROCESS

- 커널모드 쪽의 윈도우 서브시스템(Win32k.sys)가 관리하는 프로세스별 데이터 구조체.

- 커널 내에서 윈도우 그래픽이나 윈도우 관리 코드가 GUI 프로세스의 상태 정보를 관리하기 위해 필요한 모든 정보를 가짐

- Win32k 구조체 타입 (공개 심볼로는 이용 불가능)

 

DXGPROCESS

- 커널모드 윈도우 서브시스템은 DirectX 기반의 하드웨어 가속 그래픽을 과중하게 사용하기 때문에..

- 그래픽 다비이스 인터페이스(GDI) 컴포넌트 인프라가 DirectX 그래픽 커널(Dxgkrnl.sys)로 하여금 DXGPROCESS 구조체를 초기화하게 함.

 

 

'System > windows' 카테고리의 다른 글

ch3. #2 CreateProcess  (0) 2022.07.01
ch3. #1 프로세스 핵심 구조체  (0) 2022.07.01
Windows 이벤트 뷰어  (0) 2022.06.17
윈도우 인증 과정과 LSA Protection 레지스트리  (0) 2022.06.17
윈도우 보안 시스템 구성 요소  (0) 2022.05.09