EProcess 란
EPROCESS 란 커널에서 프로세스를 관리하기 위한 오브젝트이다.
프로세스를 관리 할 때 이중 연결 리스트로 관리되어진다
먼저 우리가 운영체제를 이용하는 이유는 작업을 하고자 하는 이유인데
즉 게임이나 문서 ,인터넷 등 모든작업을하는것을 작업이라고 보았을때
이 작업을하기위해서는 응용프로그램을 사용해야만하고
이러한 응용프로그램은 모두 프로세스 이다. 프로그램들을 실행시키고 관리하는
거대한 프로세스가 EProcess 이다.
(프로세스 위의 프로세스)
- 윈도우의 관점에서 프로세스란 바로 이 구조체를 의미하며, 프로세스를 종료한다는 것은 이 구조체에 대한 포인터 값을 관련 링크드 리스트에서 삭제하는 것을 의미한다.
- 이 구조체 에는 시스템이 프로세스를 실행하고 관리하기 위한 모든 정보가 들어있다.
-만약 프로세스를 숨기는 프로그램을 만들고싶다면
숨기고자 하는 프로세스 이름이나 PID 값을 찾은 다음 연결 방향만 숨기면 된다.
EProcess 특징
- 프로세스가 생성되면 해당 프로세스의 정보를 가지고 있는 EPROCESS 라는 구조체가 커널 메모리에 생성
- 모든 프로세스는 각자의 EPROCESS 구조체를 하나씩 가지고 자신이 사용하는 쓰레드의 개수만큼 ETHREAD 구조체를 가짐
- EPROCESS 와 ETHREAD 내부에는 각각 PCB, TCB란 이름의 KPROCESS 와 KTHREAD 라는 구조체가 존재
- KPROCESS 는 NULL 동기화 객체와 관련된 디스패처 객체 헤더, 가상 메모리의 CR3 레지스터 값, 프로세스에 속해 있는 스레드 리스트 헤더, CPU에 대한 종속성(Affinity), 프로세스 우선순위, 프로세스에 서 생성되는 스레드의 기본 실행 시간 값 등과 같은 정보 저장
- KTHREAD 는 스레드 종료 동기화 객체, TEB(Thread Environment Block) 포인터, 스레드 우선순위, 스케줄러에 의해 실행을 준비하고 있는 스레드 리스트, 퀀텀 값등의 정보 저장
'보안' 카테고리의 다른 글
[포렌식 도구] BrowsingHistoryView(브라우저에 대한 히스토리) (0) | 2019.05.21 |
---|---|
[포렌식] 레지스트리 증거 수집 및 분석 (0) | 2019.05.21 |
[포렌식] Windows Artifact 분석 (1) | 2019.05.21 |
실시간 대응 키워드 (0) | 2019.05.21 |
Virtual Memory 와 Physical Memory 이해하기 (0) | 2019.05.21 |