SoftICE使用(2)-網絡遠程調試zz xfocus

2 將VMware與SoftICE基於網絡的遠程調試功能相結合

Q: 在VMware上安裝SoftICE,總是無法正確配置顯卡驅動,選擇

   Universal Video Driver(SoftICE appears in a "window")

   測試失敗。因此無法在VMware中Ctrl-D呼叫出SoftICE的屏幕。能否對VMware機進
   行基於網絡的遠程調試。

A: 小四 <[email protected]> 2003-03-20 09:04


經過四個小時測試、調整,答案是肯定的。我使用VMware Workstation 3.0,其上安
裝了英文版Windows XP SP1以及DriverStudio 2.7所攜帶的SoftICE,版本如下:


SoftICE (R) - DriverStudio (tm) 4.2.7 (Build 562)


VMWare外部機器也是英文版Windows XP SP1。下面未提與遠程調試無關的SoftICE配
置。


--------------------------------------------------------------------------
1) 確認在VMware設置中只虛擬出一塊物理網卡。在VMware中安裝XP,是否打SP1與遠
   程調試無關。


   安裝操作系統完成後,系統屬性->硬件->設備管理器,確認只有一塊物理網卡,
   並且正常工作中(無黃色問號、無紅色叉號)。


   進入網絡屬性,將與現有物理網卡關聯的原有驅動程序刪除。禁用(不建議刪除)
   已安裝協議、客戶端軟件、服務方軟件,就是將前面複選框中的對號全部勾去不
   要。


   如果不是新裝XP,假設有與上述不相符的配置,比如已經虛擬出兩塊物理網卡,
   已經進行過TCP/IP配置,最好能重新配置一下,刪除一塊物理網卡、取消現有的
   TCP/IP配置。當然,你可以不改動原有配置,一般來說不會出什麼問題,真出了
   問題再按我說的做也來得及。


   對於真實的遠程主機,如果有兩塊物理網卡,必須先從插槽拔下一塊來,只保留
   一塊物理網卡在插槽中。


2) SoftICE在\Program Files\Compuware\DriverStudio\SoftICE\Network\下提供了
   三種網卡驅動(3COM/3C90X、Intel/E100、Novell/NE2000),如果你的網卡在這三
   種驅動支持範圍內,可以立即安裝或更新網卡驅動,選擇從磁盤安裝,指定上述
   安裝目錄。安裝驅動安成後,可以配置TCP/IP協議等等。


   這個版本的VMware虛擬出來的網卡是AMD PCNET Family PCI Ethernet Adapter。


   按照以前BBS流行說法,如果你的網卡不在上述三種驅動支持範圍內,就無法進行
   基於網絡的遠程調試。總不能爲了遠程調試而專門換網卡吧,某些便攜機的網卡
   還不是那麼容易更換的。幸運的是有辦法讓幾乎所有類型的網卡都支持基於網絡
   的遠程調試。執行:


   \Program Files\Compuware\DriverStudio\SoftICE\Network\UND\UNDSetup.exe


   在Available Device中可以看到當前物理網卡,選中它,選擇收音機按鈕


   Use Universal Network Driver


   一路確定並重啓VMware中的OS。重啓之後,你會發現網絡屬性裏沒有任何物理網
   卡了。事實上,無論你以前有多少塊物理網卡、做過多少網絡配置,都會"丟失"。
   不要慌,如果想恢復,再次執行:


   \Program Files\Compuware\DriverStudio\SoftICE\Network\UND\UNDSetup.exe


   在Available Device中可以看到"SoftICE network transport",選中它,選擇收
   音機按鈕


   None


   一路確定並重啓VMware中的OS。重啓之後,你以前設置就基本恢復了。前面我的
   建議部分出於完美主義傾向,可能不是必須的,現在你理解了麼。


3) 當網絡屬性裏沒有任何物理網卡的時候,已經可以進行基於網絡的遠程調試。與
   "Remote Access"設置無關,將那裏所有複選框中的對號全部勾掉。不要使用
   "Network Debugging"設置,據yuange說,這裏處理有問題,他修改了ntice.sys。
   我沒有修改ntice.sys,而是使用General->Initialization,內容如下:


   faults off;set font 3;lines 43;net start 192.168.7.153 mask=255.255.255.0 gateway=192.168.7.254;net allow 192.168.7.2 auto password=123456;X;


   注意,這行內容很長,GUI界面上的輸入框有BUG,可能截斷末尾的部分內容,此
   時可以直接編輯winice.dat文件。


   VMware外部的機器IP爲192.168.7.2,所以有如上設置。只設置了lines而沒有設
   置width,因爲後者需要"Universal Video Driver"模式,否則不可調。


   雖然在VMware中Ctrl-D呼叫不出SoftICE屏幕,但實際上已經呼叫成功,可以盲打。
   因此,如果沒有做如上設置或基於其它原因需要動態修改、測試時,可在VMware
   中盲打輸入:


   Ctrl-D
   net start 192.168.7.153 mask=255.255.255.0 gateway=192.168.7.254
   net allow any auto
   X


   其中192.168.7.153就是遠程SoftICE所使用的IP地址,"net allow any auto"表
   示對操作方無任何IP、口令限制,對於初次測試遠程調試功能的人來說,最好使
   用這樣的設置,不需要重啓機器,即刻生效。


   留心盲打,碰上鍵盤、鼠標無響應時,很可能是SoftICE被呼出來了,輸入X退出
   試試,不要急於按電源重啓。


4) 如果遠端設置是:


   net allow any auto


   在VMware外部機器上執行如下命令:


   \Program Files\Compuware\DriverStudio\SoftICE\siremote.exe 192.168.7.153


   成功的話就會看到你熟悉的SoftICE窗口。如果遠端設置了口令:


   net allow 192.168.7.2 auto password=123456


   在VMware外部機器上執行如下命令:


   \Program Files\Compuware\DriverStudio\SoftICE\siremote.exe 192.168.7.153 21321 123456


   這種遠程調試使用了21321/UDP端口,123456是口令。siremote.exe有BUG,爲了
   指定口令,必須指定目標端口,可我在文檔中沒有找到相關說明,還好老夫是折
   磨Sniffer Pro出身,對"net allow any auto/siremote.exe 192.168.7.153"通
   信過程捕包一觀,才確定目標端口是21321/UDP。不過,我不敢確定你們那裏也使
   用同樣的端口,假設有問題,請立即捕包確定。


   net start、net allow這些命令不能在遠程窗口中使用,只能在本地窗口中使用,
   因此有時動態修改、測試時,需要在VMware中盲打。


   爲了進行基於網絡的遠程調試,不要求操作方啓動SoftICE,siremote.exe只作爲
   普通網絡客戶端軟件出現。


5) 可以在VMware中設置如下註冊表項:


   HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTice


   NullVGA REG_DWORD 1(缺省爲0)


   其本意是,如果遠程呼叫SoftICE,在被調試端看不到SoftICE窗口,否則可以看
   到。由於VMware中顯卡驅動的緣故,有無這個設置都一樣效果,我還是設置上了。


6) 至第5步爲止,結合VMware的遠程調試已經搞定。可VMware中的XP也喪失了正常的
   網絡通信功能,我們需要遠程調試SMB協議處理時,就完蛋了。此時有兩種選擇,
   第一種是通過添加新硬件安裝如下虛擬設備:


   \Program Files\Compuware\DriverStudio\SoftICE\Network\UND\VNIC\sivnic.inf


   在重啓過程中如果因VNIC出現故障,當UND驅動提示時,可按ESC,這將禁止加載
   UND、VNIC。很可憐,我還沒等到重啓,只是在安裝過程中就出現BSOD了,連續試
   了幾次都如此,不清楚是使用VMware的緣故,還是sivnic.inf本身的緣故,我沒
   有試真實遠程主機的情形。


   理論上,如果此時安裝了VNIC,就可以看到一塊網卡,然後可進行TCP/IP協議配
   置等等。但是網絡性能很低,這與是否使用VMware無關,即便真實的遠程機器也
   如此。


   另一種辦法是真實添加一塊物理網卡。對於VMware來說,需要關閉當前XP,關閉
   電源,回到初始界面,然後在配置中增加一塊物理網卡。對於真實的遠程主機,
   就需要打開機箱插入新網卡了。注意,安裝UND時會導致以前所有配置"丟失",包
   括物理網卡,因此一些操作順序尤其重要。VMware以前有兩塊物理網卡,安裝UND
   後丟失,不太影響什麼,可以繼續增加物理網卡。真實遠程主機就不同了,不大
   可能有第三個插槽給你插第三塊物理網卡,現在明白步驟1中所說了吧。


   現在在網絡屬性裏可以看到惟一一塊網卡了,就是新增加上來的那塊,然後進行
   正常的TCP/IP協議配置,不要使用192.168.7.153,這是SoftICE使用的IP地址,
   比如可以使用192.168.7.152。有些網絡設置是全局設置,比如TCP/IP篩選,如果
   修改,可能會影響包括"那些丟失的網卡"在內的所有網卡,結果未知,所以不建
   議修改這些全局設置。此外還有一處古怪,即使沒有選擇"自動獲得IP地址",而
   是配置靜態固定IP,重啓後在網絡屬性裏看到的還是"自動獲得IP地址",不過這
   是假像,最好在CMD中執行"ipconfig /all"命令,可以看到:


   Dhcp Enabled. . . . . . . . . . . : No
   IP Address. . . . . . . . . . . . : 192.168.7.152
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 192.168.7.254


   在註冊表中也只看到一個網絡接口,並且配置了靜態固定IP:


   HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces


   雖然"自動獲得IP地址"是假像,但你要修改什麼的話,還是需要從頭走一遍,除
   非你直接去註冊表中修改。無論如何,都需要重啓,而本來XP下修改這些東西不
   需要重啓的。


   現在我們的VMware既具有正常的未降低性能(與VNIC相比)的網絡功能,又支持基
   於網絡的遠程調試功能,爽。


7) UND、VNIC的卸載順序很重要,一定要先通過刪除設備卸載VNIC,再執行
   UNDSetup.exe卸載UND,和安裝順序正好相反,不要混了。


   如果安裝VNIC過程中出現BSOD,也去設備管理器中查看一下,刪除半安裝狀態的
   VNIC,以免影響UND。


   從上述文字看出,有兩塊物理網卡的真實遠程主機無論如何都可以支持基於網絡
   的遠程調試。影響性能的方式只有一種,就是VNIC,其它兩種方式都不影響性能。
   不再侷限於3COM/3C90X、Intel/E100、Novell/NE2000。


   如果使用VMware,更方便。


8) 在設備管理器中,System devices->SoftICE network transport,該設備佔用了
   中斷請求15。我的測試環境中,Secondary IDE Channel也佔用中斷請求15,前者
   會搶佔成功,於是後者出現黃色問號,無法啓動。如果VMware的光驅的接在
   IDE 1:0上,就無法使用光驅,此時可以將光驅換接在IDE 0:1上,即Primary IDE
   Channel的從盤,與主盤一起使用中斷請求14,光驅恢復正常。
--------------------------------------------------------------------------


上述就是VMware+SoftICE完美解決方案的配置過程,中間省略了一些與遠程調試無關
的配置步驟。
發佈了7 篇原創文章 · 獲贊 1 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章