阅读:2964回复:5
更改開機畫面(一個類似Softice的開機畫面)
Softice很有名的除錯程式,可惜Compuware自從Windows XP1以後就不再維護了,回想安裝Softice後,開機時在螢幕的下方會出現按”ESC…”等的字樣,可以在進入OS前修改或DEBUG某一個驅動程式,現在我想到了一個方法可以類似Softice一樣在開機時顯示一些我們自訂的訊息,執行結果如下圖.
图片:bootstring.png 設計的觀念很簡單,主要是利用VGA BIOS的記憶體位址(B800h)將字串直接寫入此區域,類似在DOS下做DMA的動作.首先取得B800h映射的位址,然後對此位址寫資料. NTSTATUS InitializeVideoBuffer(VOID) { PHYSICAL_ADDRESS addr; // if (_gOutputString == NULL) { addr.QuadPart = 0xB8000; _gOutputString = MmMapIoSpace(addr, 1, MmNonCached); }; return STATUS_SUCCESS; }; 當字串完全輸出後會暫停驅動的執行數秒,可以做適當修改使它可以接受使用者名稱與密碼(IN/OUT 60/64 port讀取Keybd的資訊),作為保護系統的動作.在此驅動中有一個函數可以讀取註冊表的設定值,此設定值可以更改字串顯示時的前後背景的顏色.如要使用此設定值,請將下列的註解移除. // if (QueryImageName(RegistryPath, &fgColor, &bkColor) != // STATUS_SUCCESS) // return STATUS_UNSUCCESSFUL; 目前在Windows XP中測試成功,Windows 7還在修改測試中, 在安裝完成後請記得修改BOOT.INI檔案,在敘述的最後加上 “/NOGUIBOOT”然後存檔重新開機既可. 原始程式與註冊表的設定值請參考附件. 源碼可至 http://bbs.codeheaven.com.tw 下載 |
|
|
沙发#
发布于:2010-04-30 19:38
不错,使用"/NOGUIBOOT"选项是个很不错的想法
|
|
|
板凳#
发布于:2010-05-02 21:11
楼主,厉害。你最近发表的一系列帖子,我都有看,非常好!!
|
|
|
地板#
发布于:2010-05-02 21:25
好得很!再次赞叹。
|
|
|
地下室#
发布于:2010-05-03 23:31
回 3楼(张书爱玉) 的帖子
谢谢,欢迎有时间到我的网站发帖,交流. http://bbs.codeheaven.com.tw |
|
5楼#
发布于:2010-05-05 10:27
mark, 留个记号
|
|
|