首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> VC++

修改 Windows 2000 開機畫面:替換 NTOSKRNL.EXE 內建位圖資源

     編輯:VC++

前言

Windows 2000 開機時顯示的藍色進度條畫面、關機/休眠畫面,其實都內嵌在 NTOSKRNL.EXE 的資源區段中。本文示範如何使用 Visual C++ 資源編輯器替換這些位圖,並透過 BOOT.INI 指定啟動修改後的核心檔案,打造專屬開機視覺體驗。

準備工具與素材

  • Microsoft Visual C++ 6.0(或更新版本,需支援資源編輯)
  • Adobe Photoshop 或任意位圖編輯軟體
  • 開機畫面:640×480、16 位元色彩 (High Color) BMP 檔
  • 若同時修改休眠/關機畫面:333×147 BMP
  • 預設螢幕保護畫面:327×72 BMP

操作步驟

1. 備份原始核心檔案

假設系統安裝在 C:\WINNT:

copy C:\WINNT\System32\NTOSKRNL.EXE C:\WINNT\System32\NTOSKRNL1.EXE

務必保留原檔,以免修改失敗導致無法開機。

2. 以資源模式開啟備份檔

  1. 啟動 Visual C++,選擇 File → Open
  2. 檔案類型選 Executable Files (.exe)
  3. 選取 C:\WINNT\System32\NTOSKRNL1.EXE
  4. 在對話框中勾選 Open as Resource(以資源方式開啟)

資源檢視將顯示 Bitmap 節點,展開可見多個 ID(1, 2, 3, 4, 5...)。

3. 替換位圖資源

資源 ID用途建議尺寸
1開機畫面 (16-bit)640×480
2準備休眠畫面333×147
3「您現在可以關閉電腦」333×147
4開機畫面 (256-color)640×480
5預設螢幕保護畫面327×72

操作方式:

  1. 在資源檢視雙擊目標 Bitmap ID
  2. 將準備好的 BMP 從檔案總管 拖曳貼上 至資源編輯器
  3. 確認尺寸、色深符合上表(不符可能導致畫面變形)
  4. File → Save 儲存 NTOSKRNL1.EXE

4. 修改 BOOT.INI 指定新核心

開啟 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 載入自訂核心檔。

5. 重新開機驗證

存檔後重新啟動,即可看到自訂開機畫面。若出現藍畫面或卡住,進入「上次正確配置」或使用啟動磁碟還原 NTOSKRNL.EXE。

進階技巧與風險提醒

  • 多重開機選單: 可在 BOOT.INI 保留原核心選項,新增一行 /kernel=NTOSKRNL.EXE 供回滾。
  • 色深限制: 開機早期僅支援 16-bit (High Color) 或 256 色調色盤,請勿使用 24/32-bit BMP。
  • 檔案保護: Windows 2000 檔案保護 (WFP) 可能偵測到核心檔異動並自動還原,建議在修改後立即重開機,或暫停 WFP 服務。
  • 簽章驗證: 修改後核心檔案數位簽章失效,若環境強制驗證簽章(如啟用 Driver Signing Enforcement),可能拒絕載入。
  • 適用範圍: 僅限 Windows 2000 / XP 早期版本;Vista 以降採用 bootres.dll + winload.exe 新架構,本法不適用。

結語

透過資源編輯器直接修改 NTOSKRNL.EXE 位圖資源,配合 BOOT.INI 的 /kernel 參數,是 Windows 2000 時代客製化開機畫面的經典技法。雖在現代 Windows 已不適用,但理解核心資源結構與啟動流程,對逆向工程、嵌入式系統開發仍具參考價值。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved