【轉貼】將VMware與SoftICE基於網路的遠端除錯功能相結合 (8千字)
作者:scz(小四)
2.0 將VMware與SoftICE基於網路的遠端除錯功能相結合
Q: 在VMware上安裝SoftICE,總是無法正確配置顯示卡驅動,選擇
Universal Video Driver(SoftICE appears in a "window")
測試失敗。因此無法在VMware中Ctrl-D呼叫出SoftICE的螢幕。能否對VMware機進
行基於網路的遠端除錯。
A: 小四 <scz@nsfocus.com> 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;
VMware外部的機器IP為192.168.7.2,所以有如上設定。只設定了lines而沒有設
置width,因為後者需要"Universal Video Driver"模式,否則不可調。
雖然在VMware中Ctrl-D呼叫不出SoftICE螢幕,但實際上已經呼叫成功,可以盲打。
因此,如果沒有做如上設定或基於其它原因需要動態修改、測試時,可以在盲打
輸入:
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完美解決方案的配置過程,中間省略了一些與遠端除錯無關
的配置步驟。
相關文章
- 基於 Scrcpy 的遠端除錯方案2019-12-13除錯
- gdb除錯命令小結_與多檔案除錯_遠端除錯2013-10-11除錯
- 轉載:如何生成SoftICE可用的除錯符號檔案*.NMS (1千字)2001-04-15除錯符號
- Pycharm遠端除錯2018-12-16PyCharm除錯
- 前端遠端除錯2018-02-25前端除錯
- chrome 遠端除錯2016-03-15Chrome除錯
- 遠端除錯 Android 裝置網頁2019-06-26除錯Android網頁
- PHPSTROM遠端除錯2021-03-22PHP除錯
- pycharm 遠端除錯配置2015-07-18PyCharm除錯
- Spark 1.5.0 遠端除錯2015-11-15Spark除錯
- Mobile Web 除錯指南(2):遠端除錯2014-05-20Web除錯
- 如何基於SpringBoot+Docker構建公司級別的遠端除錯2019-01-16Spring BootDocker除錯
- Dapr 遠端除錯之 Nocalhost2022-04-21除錯
- pycharm 遠端除錯之二2019-01-09PyCharm除錯
- 遠端除錯 Azure Web App2016-08-09除錯WebAPP
- 用WinDBG遠端除錯程式2010-12-12除錯
- 本地除錯遠端服務2024-11-04除錯
- 修改SoftIce使其在2000/xp下躲過檢測 轉貼 (2千字)2003-01-02
- IntelliJ IDEA引入了VsCode的Docker遠端除錯功能2021-04-27IntelliJIdeaVSCodeDocker除錯
- 基於 HTML5 結合網際網路+ 的 3D 隧道2019-02-16HTML3D
- 基於 HTML5 的結合網際網路+ 的 3D 隧道2020-04-06HTML3D
- 通過Mac遠端除錯iPhone/iPad上的網頁2017-02-22Mac除錯iPhoneiPad網頁
- 一路踩坑,被迫聊聊 C# 程式碼除錯技巧和遠端除錯2020-11-04C#除錯
- WebStorm遠端除錯Node.js2020-04-05WebORM除錯Node.js
- vs搭建遠端除錯環境2021-01-04除錯
- IDEA、ECLIPSE遠端除錯2020-09-25IdeaEclipse除錯
- VS 遠端除錯 Azure Web App2017-03-26除錯WebAPP
- java Remote Debug(遠端除錯)2016-02-02JavaREM除錯
- debug技巧之遠端除錯2024-05-16除錯
- VS - 打斷點/本地除錯/遠端除錯 問題2024-03-13斷點除錯
- 基於 HTML5 結合網際網路+的電力接線圖2019-02-16HTML
- mist連線私有網路除錯智慧合約2018-09-22除錯
- 網路相關基礎概念小結2016-02-22
- 如何將深度學習與你正在做的事情相結合?2019-02-21深度學習
- 如何將AI技術與六西格瑪的理念相結合?2023-12-19AI
- Xdebug+PhpStorm 遠端除錯2018-11-30PHPORM除錯
- Pycharm同步遠端伺服器除錯2020-11-03PyCharm伺服器除錯
- 使用IDEA遠端debug除錯2022-11-24Idea除錯