Userinit Logon Application 약자로, 이름에도 알 수 있듯이 유저 세션의 환경을 초기화 해주는 프로세스이다.
사용자 인증을 거쳐 로그인에 성공하면 Logon script를 실행하고, 사용자 환경에 GPO(그룹 보안정책) 적용과 같은 사용자 환경의 위한 초기화 작업를 수행한 이후 마지막으로 우리에게 익숙한 Explorer.exe를 실행하고서 본 프로세스는 스스로 종료된다.
관련 정보는 레지스트리는
HKLM\SOFTWARE\Microsft\Windows NT\CurrentVersion\Winlogon 의 하위 Userinit 값를 통해 확인할 수 있다.
그럼 Logon script는 어디서 실행하는 것일까? HKCU\Software\Policies\Microsoft\Windows\System\Scripts
에 존재하는데, 설정되어 있지 않은 경우 해당 레지스트리는 존재하지 않는다. 이에 대한 설정은 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을 실행하면 다음과 같이 윈도우 곳곳에 자동으로 실행 가능한 개체를 찾아 보여준다.
해당 도구를 통해 자동으로 실행되는 리스트와 Msconfig를 함께 비교해 보는 것도 좋은 방법이 될 수 있다. 추가로 Autorun은 CLI 도구인 Autorunsc를 통해 CLI 상태에서도 정보를 확인할 수 있다.
'WebBook > 윈도우 구조' 카테고리의 다른 글
윈도우 예외 처리 이해 하기 - KeBugCheckEx (0) | 2022.09.13 |
---|---|
윈도우 구조 - 커널 진입 - Ntdll.dll 세부 분석 (0) | 2022.04.02 |
윈도우 - 서비스 계정 (0) | 2022.03.23 |
시스템 프로세스(Windows Startup Process) - 서비스 관리자 Services.exe (0) | 2022.03.14 |
시스템 프로세스(Windows Startup Process) - 보안 관리자 Lsass.exe (0) | 2022.03.05 |