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
'게임 시큐리티' 카테고리의 다른 글
| 실시간으로 커널 디버깅하기 (0) | 2009/10/13 |
|---|---|
| VMWare로 리모트 디버깅하기 (0) | 2009/10/13 |
| Windows 의 부팅과정 (0) | 2009/10/13 |
| MonnLighte Engine vs GameGuard 기싸움 (0) | 2009/10/11 |
| 자바 게임 해킹 (Java game hacking) (0) | 2009/10/09 |
| 게임런처 보안에 관해... (0) | 2009/10/09 |