윈도우 시작 프로그램 등록되는 위치 정리(대충 Windows XP 위주로...)
일단 흔히들 잘 알고있는 위치, 즉 시작→실행(R)→msconfig.exe 명령으로 쉽게 알 수 있는 위치입니다.
가장 기본적인, '시작' 메뉴의 시작프로그램 폴더
C:\Documents and Settings\All Users\시작 메뉴\프로그램\시작프로그램
C:\Documents and Settings\사용자명\시작 메뉴\프로그램\시작프로그램
영문판 C:\Documents and Settings\All Users\Start Menu\Programs\Startup
영문판 C:\Documents and Settings\LoginName\Start Menu\Programs\Startup
msconfig의 '시작프로그램'에서 볼 수 있는 레지스트리 키들
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
다음은 msconfig로는 눈에 잘 안띄어, 컴퓨터 바이러스들도 잘 애용하는 위치입니다. 그렇다고, 여기 등록된게 바이러스란 소리는 아닙니다(오히려 중요 프로세스들이 있을 가능성도 높음)
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon 아래 레지스트리 키의 값(오른쪽 창에 나오는 값)들 중에서, "Userinit"
→ 이 값에는, 기본값으로 "C:\WINDOWS\system32\userinit.exe,"값이 들어있고, 추가로 실행할 프로그램을 쉼표(콤마/,)로 구분합니다. userinit.exe는 기본 시작 프로그램입니다. 가령, 중국발 USB 바이러스에 걸렸을 경우 아래와 같이
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit=
C:\windows\system32\userinit.exe, EXPLORER.EXE
EXPLORER.EXE로 가장한(다른 폴더에 '탐색기'와 똑같은 파일명의 바이러스를 심었더군요) 프로그램을 실행하죠. 덕분에 해당 바이러스 파일을 지우고나면, 다음 부팅때부터는 부팅 후에 '탐색기' 창이 자동으로 하나 더 뜨더군요.
그 외에도...
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows 레지스트리 키 우측에 포함된 "load" 값
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows 레지스트리 키 우측에 포함된 "run" 값
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows 레지스트리 키 오른쪽 창에 보이는 "AppInit_DLLs" 값 등이 있다고 합니다.
추가적으로, msconfig.exe를 열어보면 보이는, '서비스'들(services.msc 명령), 그리고 기본 '드라이버 장치 파일' 등도 있겠네요. 그리고 아래 파일들에도 시작시 로드하는 내용이 포함되어 있습니다. 단, 아래 사항은 OS 종류별로(98, Me, XP, Vista) 적용되는 것이 조금씩 다르겠네요.
C:\autoexec.bat, C:\config.sys
C:\Windows\win.ini 중에서 [windows] "load", "run"
C:\Windows\system.ini 중에서 [boot] "shell", "scrnsave.exe"
C:\Windows\wininit.ini, winstart.bat
C:\Windows\System\autoexec.nt, config.nt 등
- 기타, 윈도우 XP 서비스가 등록되는 레지스트리 키 위치 : (건드리지 않는게 좋을 듯)
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet001\Services\
(services.msc나 msconfig에서 끄고 켤 수 있으므로, 굳이 레지스트리에서 직접 조작하지 않는게 좋겠습니다.)
※ 참고한 사이트
http://windowsxp.mvps.org/Startup.htm
http://www.bleepingcomputer.com/tutorials/tutorial44.html