Windows 9x 系統提供多達十種以上的自動啟動機制,既是軟體安裝便利性的體現,也是惡意程式(病毒、木馬)駐留系統的主要手段。本文系統梳理這 10 種方法,並說明其註冊表/檔案位置、運作原理與安全風險,幫助開發者與系統管理員識別並防範異常啟動項目。
| # | 方法 | 位置 / 設定 | 特點與風險 |
|---|---|---|---|
| 1 | 啟動資料夾 | C:\Windows\Start Menu\Programs\Startup註冊表: HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Startup | 最直觀、使用者可見、易手動移除。路徑可被程式修改。 |
| 2 | Win.ini | [windows] load=file.exe / run=file.exe | 16 位元相容機制,仍被部分舊軟體/惡意程式利用。 |
| 3 | System.ini | [boot] Shell=Explorer.exe file.exe | 修改 Shell 啟動命令,極高風險,可能導致系統無法正常啟動。 |
| 4 | winstart.bat | C:\Windows\winstart.bat | 每次啟動執行,隱蔽性較高,常被忽略。 |
| 5 | 註冊表 Run 鍵值 | HKLM\Software\Microsoft\Windows\CurrentVersion\RunHKLM\...\RunOnceHKLM\...\RunServicesHKLM\...\RunServicesOnceHKCU\...\RunHKCU\...\RunOnceHKCU\...\RunServices | 最主流、最常用機制。HKLM 影響所有使用者,HKCU 僅當前使用者。RunOnce 只執行一次後自動刪除。 |
| 6 | wininit.ini | C:\Windows\wininit.ini(執行後自動刪除)範例: [Rename] NUL=c:\windows\picture.exe(刪除檔案) | 安裝程式常用於重開機後替換/刪除鎖定檔案。極隱蔽,執行後自毀。 |
| 7 | Autoexec.bat | C:\Autoexec.bat | DOS 時代遺留,進入 Windows 前執行,可載入 TSR 程式或修改環境。 |
| 8 | Shell Spawning (檔案關聯劫持) | HKCR\exefile\shell\open\command @="\"%1\" %*"同類:comfile, batfile, piffile, htafile 及 HKLM\Software\Classes\... 對應鍵值 | 極度危險:將預設的 "%1" %* 改為 "server.exe %1 %*",導致所有 exe/com/bat/hta/pif 執行前先跑 server.exe。SubSeven 等木馬常用手法。 |
| 9 | ICQ Agent | HKCU\Software\Mirabilis\ICQ\Agent\Apps\testPath, Startup, Parameters, Enable | ICQ 偵測到網路連線時啟動指定程式。類似機制可能存在於其他 IM 軟體。 |
| 10 | 雜項:NeverShowExt | HKCR\ShellScrap NeverShowExt="" | 隱藏特定副檔名(如 .shs),abc.jpg.shs 僅顯示 abc.jpg,利用社交工程誤導使用者執行惡意腳本。 |
msconfig、Autoruns (Sysinternals) 完整掃描所有啟動點。FindFirstChangeNotification)監控啟動資料夾、winstart.bat、wininit.ini 變更。Run/RunOnce/RunServices、Shell\Open\Command 等關鍵鍵值異動。NeverShowExt。HKLM、系統目錄權限。winstart.bat、System.ini Shell=)在 NT 核心系統行為不同或已廢除,需實測驗證。HKCU\Run 或啟動資料夾,避免污染 HKLM 影響其他使用者。理解自動啟動機制,不僅能開發更友善的軟體,更是系統安全防護的核心技能。