게임 시큐리티2009/10/13 13:30


Inside Microsoft Windows 2000 에서 정리한 내용입니다. 



 
부팅 (booting)


Bios 가 boot sector 를 읽음
ntldr 가 부트 섹터에 위치함


Ntldr :


16 리얼 모드 -> 32 보호모드로 전환
메모리 페이징을 시작
boot.ini 를 읽어와서 부트옵션을 적용 ( SCSI 나 특별한 장치를 위해 ntbootdd.sys 를 로드)
Ntdetect.com을 실행 시스템 정보를 모음 ( HKLMHARDWAREDESCRIPTION 에 정보가 취합됨 )
Ntoskrnl.exe 를 메모리에 로드, Bootvid.dll , Hal.dll 을 로드하고, boot-start 디바이스 드라이버를 초기화함

 ( HKLMSYSTEMCurrentControlSetServices안에 드라이버가 있음 )
CPU를 Ntoskrnl.exe 를 위해 준비하고 Ntoskrnl.exe 시작점으로 제어를 넘김


Ntoskrnl.exe :


 각종 서브시스템을 초기화, 실행하고
system-start 디바이스 드라이버를 초기화
native app 인 smss.exe ( 세션 서브시스템) 을 실행

 자세히 :

 스텝 0 : 인터럽트를 중단시키고
KiSystemStartup -> HalInitializeprocessor , Ki1InitializeKernel  ; 초기의 커널 자료구조를 생성함  Ki1InitializeKernel 은 ExpInitializeExecutive() 호출하고 이는 각각
메모리관리자, 개체관리자, 보안참조 모니터, 프로세스관리자, 플러그엔 플러그 0 단계 초기화를 한다.

 스텝 1 :

  인터럽트 준비, 전원관리자, 시스템 시간 초기화 , 개체관리자가 링크됨, 커널 스케쥴러 초기화, ntdll.dll 매핑,
구성관리자가 Registry 복원, I/O 관리자 초기화
보안참조 모니터 호출 후
Native app 인 Smss.exe 를 실행시킨다.


Smss.exe:


 Windows 서브 시스템 win32k.sys 를 로드하고,
Csrss ( client/server runtime 서브시스템) 실행, winlogon 을 로드

자세히 :

LPC 포트 개체 생성
알려진 dll 을 열고
추가적 페이징 생성

레지스트리 초기화
시스템 환경변수 생성
Win32k .sys 로드
csrss 시작
Winloon 시작


Winlogon:


 SCM(서비스 컨트롤 매니져), LSASS(로칼 보안 인증 서브시스템) 를 로드하고 사용자 로긴 다이얼로그를 띄움

SCM:

 SCM 에 있는 자동시작 드라이버들을 로드

 

"Inside microsoft windows 2000" ,
David A.Solomon & Mark E. Russinovich

 

Posted by 진실찾기