본문 바로가기
WebBook/윈도우 구조

시스템 프로세스(Windows Startup Process) - 자동 실행 - Userinit.exe

by 올엠 2022. 3. 23.
반응형

Userinit Logon Application 약자로, 이름에도 알 수 있듯이 유저 세션의 환경을 초기화 해주는 프로세스이다.

사용자 인증을 거쳐 로그인에 성공하면 Logon script를 실행하고, 사용자 환경에 GPO(그룹 보안정책) 적용과 같은 사용자 환경의 위한 초기화 작업를 수행한 이후 마지막으로 우리에게 익숙한 Explorer.exe를 실행하고서 본 프로세스는 스스로 종료된다.

관련 정보는 레지스트리는

HKLM\SOFTWARE\Microsft\Windows NT\CurrentVersion\Winlogon 의 하위 Userinit 값를 통해 확인할 수 있다.

Winlogon 설정 레지스트리에 지정된 Userinint 실행 경로

그럼 Logon script는 어디서 실행하는 것일까? HKCU\Software\Policies\Microsoft\Windows\System\Scripts

에 존재하는데, 설정되어 있지 않은 경우 해당 레지스트리는 존재하지 않는다. 이에 대한 설정은 Gpedit.msc를 통해 설정할 수 있다.

Gpedit.msc 를 통해 로그온 스크립트 설정

자동 실행

Userinit까지 실행되면, 사전에 자동 실행 레지스트리와 디렉토리에 등록해 놓은 실행 프로그램들이 실행된다. 그럼 부팅시 실행되는 경로와 로그인 시 실행되는 경로를 나누어 확인해 보자 로그인시 시작되는 프로그램은 다음과 같다.

 

시작 메뉴의 시작 프로그램:

사용자별 시작 메뉴의 시작 프로그램:

C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

전체 사용자에게 적용되는 시작 메뉴의 시작프로그램:

C:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

 

레지스트리:

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx

 

그리고 64비트 운영체제에서는 32비트형 시작 프로그램을 실행하기 위해서 레지스트리 경로가 하나 더 아래 위치에 존재한다. HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run

 

유저별 시작 프로그램: HKCU\Software\Microsoft\Windows\CurrentVersion\Run

 

시스템 프로세스 구동전 Smss가 구동하는 드라이버:

HKLM\System\CurrentControlSet\Control\Session Manager\BootExecute

(기본값인 Autochk를 변경하여 다른 프로그램을 등록할 수 있다)

 

윈도우는 기본적으로 제공하는 Msconfig 유틸리티를 통해 여러 경로로 설정된 자동 실행 파일들을 확인할 수 있다. 그리고 Sysinternals에서 제공하는 Autorun 도구를 이용하면 보다 자세한 정보를 확인할 수 있다. Autorun을 실행하면 다음과 같이 윈도우 곳곳에 자동으로 실행 가능한 개체를 찾아 보여준다.

Autorun 을 통해 확인한 현재 자동 실행으로 등록된 이미지들

해당 도구를 통해 자동으로 실행되는 리스트와 Msconfig를 함께 비교해 보는 것도 좋은 방법이 될 수 있다. 추가로 Autorun CLI 도구인 Autorunsc를 통해 CLI 상태에서도 정보를 확인할 수 있다.

반응형