ielts5316
驱动小牛
驱动小牛
  • 注册日期2005-05-18
  • 最后登录2018-08-27
  • 粉丝0
  • 关注0
  • 积分478分
  • 威望940点
  • 贡献值0点
  • 好评度72点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:2878回复:5

更改開機畫面(一個類似Softice的開機畫面)

楼主#
更多 发布于:2010-04-29 20:56
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 下載

附件名称/大小 下载次数 最后更新
VidBoot.zip (10KB)  8 2010-04-29 20:56
ielts5316
驱动小牛
驱动小牛
  • 注册日期2005-05-18
  • 最后登录2018-08-27
  • 粉丝0
  • 关注0
  • 积分478分
  • 威望940点
  • 贡献值0点
  • 好评度72点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2010-05-03 23:31
回 3楼(张书爱玉) 的帖子
谢谢,欢迎有时间到我的网站发帖,交流. http://bbs.codeheaven.com.tw
游客

返回顶部