전체 글 289

윈도우 세션 관리자 (smss.exe)

이번에는 Smss.exe를 알아볼 것임. 부팅 과정 중 Smss,exe의 위치는 아래와 같음 Smss.exe는 Session Manager Subsystem 의 약자다. 말 그대로 "세션 관리자" 커널 생성 이후 최초로 생성되는 시스템 프로세스이며 네이티브 어플리케이션이다. 얘의 역할은 윈도우에서 세션을 만들기 위한 환경을 구성한다. 부팅 시, 먼저 Smss.exe는 레지스트리의 부팅 중 실행하는 파일인 BootExecute을 확인하여 실행하게 된다. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\ 보이죠?? 기본값으로 Autochk가 등록되어 있고 부팅 중 유저모드 생성 전에 디스크 검사를 합니당 단, 여기 이용되는 프로그램은 네..

윈도우 서브시스템

시스템 프로세스는 윈도우 시작 프로세스 이며, 사용자가 시스템을 사용하는 데 필요한 핵심 부분을 담당하는 프로세스이다. 커널과 연결되는 서브시스템을 구동하거나 관리하는 역할을 하는 것. 우리가 사용하는 유저모드에서 아주 중요한 프로세스라고 말할 수 있겠죠?? Smss.exe, Csrss.ee, Winlogon.exe, Lsass.exe, Services.exe 등이 있는데, 작업관리자 열어서 보면 다들 한번씩 이름쯤은 접해봤을 겁니다. 그럼 먼저 서브시스템이 무엇인가 부터 한번 알아보죠. 서브시스템 윈도우의 보안과 호환성을 위해 커널의 시스템 자원을 호출할 때 사용되는 시스템. 환경 서브시스템, 서브시스템 DLL 두가지로 나눌 수 있돠. 한번 알아봅시다. 1. 환경 서브시스템 프로그램의 구동 환경을 제공..

윈도우 커널 생성 (Ntos****.exe)

Windows가 부팅 되는 과정을 순차적으로 따라가며 해부하는 방식이다. 이후 BCD는 지정된 일정 시간 이상 입력이 없으면, 기본 설정된 OS로 선택하여 커널 초기화 작업을 진행한다. 이 때, 부트 파티션에서 커널 초기화에 필요한 커널 파일과 HAL이미지 등을 로드하고 레지스트리 %SystemRoot%\System32\Config\System 을 하이브(연결)하여 디바이스 드라이버를 로드하는 작업을 진행한다. 레지스트리에 대한 내용은 다음에 다루겠다. 커널 초기화에 필요한 파일들을 언급하였었는데, Ntos****.exe 이름이 뭐 요런 형식이다. CPU 갯수, 메모리 PAE 활성화 여부에 따라 4개의 프로세스 중 하나가 실행이 된다. 흠 아래 설명 Ntoskrnl.exe : 1 CPU Ntkrnlmp...

Windbg 커널 디버깅 환경 설정

윈도우 구조 분석을 위해 필요한 도구 Windbg 환경 설정 및 사용법에 대해 알아보자. http://msdn.microsoft.com/library/windows/hardware/ff551063(v=vs.85).aspx 다운로드는 이곳에서.. 현재는 Windbg가 WDK에 통합되어서.. WDK를 설치해야 Windbg를 사용할 수 있다. 물론 따로 설치하는 것도 가능하긴 함. 일단 Windbg를 설치하고, 심볼 설정을 해주어야 한다. 심볼 파일이란 어셈블리 코드에서 소스코드의 위치, 함수 이름, 변수 이름 같은 정보를 담고 있는 파일이다. 확장자는 .pdb 심볼 파일이 담고 있는 정보는 다음과 같다. - 전역 변수의 이름과 주소 - 각 엔트리 포인트의 함수 이름과 주소 - FPO 데이터 ( Frame P..

윈도우 부팅 과정 및 OS 기초

1. 윈도우 부팅 과정 위 그림은 윈도우 부팅과정을 순차적으로 나타낸 그림이다. 참고로, 부팅 과정에서는 어느것 하나도 빼먹으면 올바르게 부팅이 되지 않음 이 과정을 진행하면 GINA(Graphic Identification and Authentication) 즉, 윈도우 로그인 화면 까지 진행된다. 2. 유저모드와 커널모드 윈도우는 왜 유저모드와 커널모드를 나누어 두었을까. 일단 운영체제의 가장 큰 목적은, 각각의 사용자가 다른 제조사의 하드웨어를 사용하지만 동일한 동작을 하도록 공통된 환경을 제공하는 것이다. 이 작업을 사용자가 굳이 따로 제어해주지 않아도 사용자가 요구하는 자원을 커널 단에서 알아서 분배와 관리를 해준다. 또한 다양한 개발 환경에서 만들어진 응용 프로그램들을 유저모드에서 커널모드로 ..

반응형