官术网_书友最值得收藏!

1.2 安裝與運行

1.2.1 下載一個安裝工具

有很多工具可以安裝內核模塊,但是筆者不大敢隨便下載推薦給讀者,因為現在網站上病毒實在太多了。請讀者搜索srvinstw.exe。這個小軟件還有漢化版,筆者在華軍軟件園找到的地址如下:

http://www.onlinedown.net/soft/36059.htm

如果這個地址已經失效了,請讀者自己在網上搜索這個小工具。

1 執行這個工具,把我們編寫的first.sys安裝到自己的計算機上。剛開始打開的界面如圖1-4所示。

圖1-4 執行srvinstw.exe的開始界面

2 選擇“安裝服務”并單擊“下一步”按鈕。然后選擇“本地計算機”,單擊“下一步”按鈕,這時要輸入服務名稱,這里輸入文件的名字“first”。但這個名稱不一定要和文件名相同,可以隨意輸入,只是不能和已經存在的服務沖突。

3 輸入sys文件的路徑:這里只能手工輸入,請不要去單擊下面的“瀏覽”按鈕。因為只能瀏覽到.exe文件,卻無法找到.sys文件。

4 選擇“設備驅動”。

5 輸入“NT驅動器目標名”:不需要輸入任何內容,直接單擊“下一步”按鈕即可。

6 選擇啟動類型:請一定選擇“手動”(見圖1-5)。選擇手動可以方便調試,可以在所需要的時間進行啟動和停止。

圖1-5 srvinstw.exe安裝到最后一步選擇“手動”

至此,就安裝成功了。

1.2.2 運行與查看輸出信息

現在這個內核模塊已經可以運行了,但是我們不會看到任何現象。雖然在前面的代碼中,調用了DbgPrint來打印一些信息,但是因為這是內核模塊,不能指望它彈出一個窗口,或者顯示一個控制臺來輸出那些信息。

可以在WinDbg中看到內核模塊的輸出(也就是調用DbgPrint)。但是我們目前還沒有講到如何調試內核代碼,現在用DbgView.exe來查看輸出是個不錯的選擇。可以從微軟的網站上下載DebugView.exe,筆者下載時使用的地址如下:

http://technet.microsoft.com/zh-cn/sysinternals/bb896647(en-us).aspx

如果這個地址已經失效了,請讀者自己搜索。

打開DebugView.exe之后,界面如圖1-6所示。注意:DebugView可以捕獲各種輸出,所以要把Capture Kernel勾上,才能看到內核輸出。

圖1-6 DebugView的界面

由于前面已經安裝了服務,所以,現在打開控制臺(所有程序→附件→命令提示符),輸入net start first就可以啟動first.sys了。反之,可以輸入net stop first來停止它的運行。請注意:net start之后跟的是服務名(在前面的安裝時的第2步指定。),而不是文件名。這個驅動安裝時用的服務名和驅動文件的名字剛好一致,容易引起誤解。讀者要記住,如果前面輸入了不同于文件名的服務名,這里就必須用安裝時輸入的服務的名字。對于這個例子,控制臺輸入/輸出的結果如圖1-7所示。

圖1-7 first的運行和停止

與此同時,筆者在DebugView中看到的輸出結果如圖1-8所示。

圖1-8 first運行的輸出結果

1.2.3 在虛擬機中運行

雖然按照前面的設置,讀者已經可以編譯一個內核程序并在自己的計算機上運行了,但是在本機上直接加載剛剛編寫的內核模塊是非常不明智的。如果模塊中有錯誤,很容易導致操作系統立刻藍屏,這時工作文件可能還沒有保存,導致代碼丟失。

筆者的做法是,一般都安裝一個虛擬機,把編譯好的sys文件放到虛擬機中運行。這樣,即使操作系統崩潰,也不會導致自己手忙腳亂。

請去VMWare的官方主頁上下載VMWare的30天免費試用版本。官方網站網址如下:

http://www.vmware.com/download/ws/

官方網站不一定始終提供使用試用版本下載。如果已經無法找到的話,讀者可以自己搜索,一定有其他軟件下載網站提供。

沒有使用過虛擬機的讀者可能覺得很有意思,因為在自己的Windows XP系統上又運行了另一個Windows XP系統(也可以運行其他系統,比如Linux),就好像有了兩臺計算機一樣。

打開VMWare之后,選擇“文件”→“新建虛擬機”,然后按照向導操作即可。用于調試的虛擬機和一般的虛擬機沒什么區別,讀者需要Windows XP的安裝光盤,像安裝普通計算機一樣在虛擬機上安裝Windows XP。

安裝完畢之后,碰到的另一個問題可能是如何從外面(本機)將文件拷貝到虛擬機中。這有很多方法,其中一種方法是讓虛擬機也正常上網,這樣兩臺計算機之間可以用網絡鄰居訪問。

另一種方法是可以從外面用鼠標直接將文件拖到虛擬機中;或者從里面拖到外面。這個操作類似于段譽的六脈神劍,強大但是時靈時不靈。

還有一種方法是選擇“編輯該虛擬機設置”,然后選擇“Options”。在左邊選中“Shared Folders”,在右邊增加一個共享目錄,這個目錄在本機上。選中之后,在虛擬機中也可以訪問這個目錄,但是訪問的方法比較離奇:必須在虛擬機中的“我的電腦”中輸入“\\.host”,按回車鍵后才能看見外面共享的目錄。

主站蜘蛛池模板: 杭锦旗| 喀什市| 辽阳市| 乌兰县| 红桥区| 英山县| 阳春市| 德昌县| 长治县| 育儿| 辛集市| 赣榆县| 甘孜县| 河源市| 永福县| 蓬莱市| 辉县市| 利津县| 巴里| 阳曲县| 鞍山市| 和静县| 汉源县| 开化县| 通道| 化隆| 东丰县| 丹凤县| 乌拉特后旗| 象山县| 奉节县| 大同县| 濉溪县| 宜丰县| 齐齐哈尔市| 凉山| 全南县| 永善县| 鄂尔多斯市| 宜川县| 淮安市|