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

使用 VToolsD 開發簡單 VxD 與 SoftIce 原始碼級除錯完整指南

     編輯:關於VC++

本文將詳細介紹如何使用 VToolsD 開發一個最基本的動態載入 VxD,並搭配 SoftIce 進行原始碼級除錯。VxD(Virtual Device Driver)是 Windows 9x 系統下的虛擬裝置驅動程式,掌握其開發流程對於系統級程式設計具有重要意義。

VToolsD 核心工具:QuickVxD

VToolsD 套件中最關鍵的開發工具是 QuickVxD,它能自動產生 VxD 原始碼框架,並提供豐富的特性選項:

  • 載入模式:動態載入或靜態載入
  • 程式語言:C 或 C++
  • 其他 VxD 特性選項

建立動態載入的 C 語言 VxD 框架

我們選擇建立動態載入、基於C 語言的 VxD 框架,主要考量如下:

  • 動態載入優勢:修改程式碼重新編譯連結後,只需使用 VToolsD 附帶的 VxDLoad 工具即可卸載或重新載入記憶體中的 VxD,無須重新啟動電腦,大幅提升除錯效率
  • 選擇 C 語言:語法簡潔易懂,適合教學與快速原型開發

按照 QuickVxD 精靈的步驟(對應圖 1~圖 4)進行選擇,點擊 Generate Now 按鈕即可獲得完整的原始碼框架。

編譯與載入 VxD

假設您已按照前文設定好 VToolsD 編譯環境,在 DOS 提示字元下輸入指令:

nmake -f myfirst.mak

編譯成功後,當前目錄下會產生 myfirst.vxd。若未產生,請檢查編譯環境配置。

使用 VxDLoad 工具載入 myfirst.vxd(參見圖 5),點擊 Load 按鈕,出現 "VxD load successfully" 訊息框即表示載入成功。

使用 SoftIce 進行原始碼級除錯

在 SoftIce 中依序進行以下操作:

  1. File → Open Module:選擇剛產生的 myfirst.vxd
  2. Module → Translate:若 Symbol Loader 提示無法載入某些 asm 檔案,選擇跳過所有 asm 檔
  3. Module → Load:載入模組符號

按下 Ctrl+D 進入 SoftIce 環境(需先安裝 SoftIce),輸入指令:

:file myfirst.c

此時 SoftIce 中將顯示 myfirst.c 的原始碼,即可進行原始碼級除錯,包含設定中斷點、單步執行、檢視變數等操作。

關鍵工具鏈總結

工具用途
QuickVxD自動產生 VxD 框架程式碼
VxDLoad動態載入/卸載 VxD,免重開機
SoftIce系統級除錯器,支援原始碼級除錯
NMAKEMicrosoft 建構工具,編譯連結 VxD

掌握此流程後,您即可開始進行更複雜的 VxD 開發,如硬體存取、系統服務攔截、記憶體管理等進階主題。

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