Windows 2000 開機時顯示的藍色進度條畫面、關機/休眠畫面,其實都內嵌在 NTOSKRNL.EXE 的資源區段中。本文示範如何使用 Visual C++ 資源編輯器替換這些位圖,並透過 BOOT.INI 指定啟動修改後的核心檔案,打造專屬開機視覺體驗。
假設系統安裝在 C:\WINNT:
copy C:\WINNT\System32\NTOSKRNL.EXE C:\WINNT\System32\NTOSKRNL1.EXE
務必保留原檔,以免修改失敗導致無法開機。
C:\WINNT\System32\NTOSKRNL1.EXE資源檢視將顯示 Bitmap 節點,展開可見多個 ID(1, 2, 3, 4, 5...)。
| 資源 ID | 用途 | 建議尺寸 |
|---|---|---|
| 1 | 開機畫面 (16-bit) | 640×480 |
| 2 | 準備休眠畫面 | 333×147 |
| 3 | 「您現在可以關閉電腦」 | 333×147 |
| 4 | 開機畫面 (256-color) | 640×480 |
| 5 | 預設螢幕保護畫面 | 327×72 |
操作方式:
NTOSKRNL1.EXE開啟 C:\BOOT.INI(隱藏、系統、唯讀屬性,需先 attrib -s -h -r boot.ini):
[boot loader]
timeout=5
default=multi(0)disk(0)rdisk(0)partition(1)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows 2000 Server" /fastdetect /kernel=NTOSKRNL1.EXE
C:\="Microsoft Windows 98"
關鍵在 /kernel=NTOSKRNL1.EXE 參數,告知 NTLDR 載入自訂核心檔。
存檔後重新啟動,即可看到自訂開機畫面。若出現藍畫面或卡住,進入「上次正確配置」或使用啟動磁碟還原 NTOSKRNL.EXE。
BOOT.INI 保留原核心選項,新增一行 /kernel=NTOSKRNL.EXE 供回滾。bootres.dll + winload.exe 新架構,本法不適用。透過資源編輯器直接修改 NTOSKRNL.EXE 位圖資源,配合 BOOT.INI 的 /kernel 參數,是 Windows 2000 時代客製化開機畫面的經典技法。雖在現代 Windows 已不適用,但理解核心資源結構與啟動流程,對逆向工程、嵌入式系統開發仍具參考價值。