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;



   注意,这行内容很长,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完美解决方案的配置过程,中间省略了一些和远程调试无关

的配置步骤。

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!