WIN.INI fileThe WIN.INI file was used in earlier versions of Windows (3.x and 9x) to load applications and configuration settings at startup. Though no longer used by default on newer operating systems such as Windows XP, values included in these files will still be acted upon. Thus, some malware authors will leverage the WIN.INI file to load viruses or other malicious software.
The pertinent sections to check in the WIN.INI file are the <load> and <run> lines located under the [Windows] heading.
System.ini FileThe system.ini file was used in earlier versions of Windows to load device drivers and the explorer shell. The reliance on system.ini was phased out and is no longer relied upon by Windows XP and above. In the case of an upgrade from an older OS, such as 9x, to Windows XP or above, the settings contained in system.ini will be retained. Though a fresh installation of Windows XP or above will not include any data in the system.ini, subsequent inclusions will be acted upon by the OS. Hence malware authors still occasionally use the system.ini to cause viruses and other malicious software to load.
The pertinent line to check in the system.ini file is <shell>, located under the [boot] heading.
Startup FolderThe Windows Startup folder can include shortcuts, documents, executables, or other types of files and programs to be launched when Windows is started. The current logged on user can view startup folder inclusions through the Start menu:
Start | Programs | Startup
Items in the Startup folder can also be viewed by navigating to:
%USERPROFILE%\Start Menu\Programs\Startup (where %USERPROFILE%) signals the username of the logged on user)
The common startup folder, applicable to all users, correlates to:
System Registry Run KeysCertain registry keys may contain values used to load applications (including malware) when Windows is started. The values to examine are located in subkeys Run, RunOnce, RunServices, and RunServicesOnce, located in either of the following registry keys:
System Registry - WinlogonWinlogon is responsible for supporting the DLL responsible for managing the interactive logon when Windows starts. Pre-Vista, that DLL provides a customizable user interface and authentication process. Malware that hooks into Winlogon can be particularly difficult to remove, as even booting into Safe Mode will not deactivate it. The string values that customize the Winlogon process are located in the following registry key:
ASEPS Specific to ME, 2000, XPUsers running Windows ME, 2000 or XP will also want to check the following registry keys for any unexpected values:
HKCU = HKEY_CURRENT_USER
HKLM = HKEY_LOCAL_MACHINE
Active SetupThe Active Setup registry key is an often overlooked load point. Programs register themselves using CLSIDs. For each CLSID listed under the Active Setip key, look for the value "StubPath". Any program specified by the StubPath value will be loaded when Windows is started. Pertinent key location is:
HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components\
Upgrades from Windows 9xUsers who installed an upgrade version of ME, 2000, or XP over an installation of Windows 9x will also want to check the following registry locations:
These keys will contain items from the <load> and <run> lines of the win.ini file used by Windows 9x.
ASEP Loading SequenceThe order in which Windows processes the autostart entry points is as follows:
- RunServices / RunServicesOnce - HKEY_LOCAL_MACHINE and HKEY_CURRENT_USER RunServices/RunServicesOnce will be launched concurrently. In the event of a conflict, precedent is given to HKEY_LOCAL_MACHINE. These ASEPS may continue loading during and after the login dialog.
- Login Dialog (Winlogon)
- RunOnce / Run for HKEY_LOCAL_MACHINE hive
- Run key in HKEY_CURRENT_USER hive
- Startup Folder
- RunOnce in HKEY_CURRENT_USER hive