使用Softice调试驱动程序

来源:互联网 发布:windows phone 支付宝 编辑:程序博客网 时间:2024/05/21 15:42


配置


近日使用Softice的一些心得,主要是一些网上看到的相关资料,遇到的问题,自己探索的解决方法。 

我使用softice的环境:操作系统XP( SP2 ),Softice是Driverstudio3.2自带的版本。 
  
初级篇 
1、不要使用USB的键盘和鼠标,这个Softice不支持。已试过。 
  
2、显卡驱动很关键,要不会出现花屏现象。为了支持"Universal Video Driver",SoftICE需 
要DirectDraw,这个是古老问题了。首先在cmd.exe中执行DirectX诊断工具dxdiag.exe,在显示面版中确认DirectDraw。先测试一下DirectDraw能不能用。如果这里是禁用的按钮是无效的,下面的内容你就不用看了。还有在Softice的启动选项中选择窗口模式,不要选全屏,要不也很容易会出现花屏。这个是网上说的,我试了试,好像没问题。可能是显卡比较支持吧。 
     
3、在VMware Workstation 中使用SoftICE。在上述前提下,打开VMware配置文件(*.vmx),在My Virtual Machines目录下(注意这不是VMWare的安装目录,而是VMWare的工作目录)找到虚拟的操作系统的vmx文件在未尾增加如下两行内容: 
vmmouse.present = "FALSE" 
svga.maxFullscreenRefreshTick = "5" 
现在启动VMware,Ctrl-D即可看到调试界面。 
至于为何要这样添加,请看:URL: http://frontline.compuware.com/nashua/kb/doc/1702.asp 
     在虚拟机这个问题上,我实在是没试过,条件不允许。虚拟机中的显卡驱动装不上,上网下载了很多的intel 82865g的驱动了,但是每次都说不符合最低配置。但是在主机上都行的。换了台机子试过,是intel 82845g的机子,也同样的问题。没办法只好在主机上测试。 
附注:有人回答我说vmware的显卡是虚拟显卡,所以不能用一般的驱动,把vmware tools装了就ok了,这个上面会有一个显卡驱动。我试过了,确实安装赏了驱动,并且1在行DirectX诊断工具dxdiag.exe,在显示面版中确认DirectDraw加速已启用。在SoftICE的设置界面中测试"Universal Video Driver"时显示测试成功。但是还是调不出Softice。这个问题我再问问。 
  
4、Softice加载mns过程。 
以Check方式编译驱动程序,然后用SoftICE的Symbol Loader将编译生成的驱动程序.sys   文件,Translate成.nms,然后在Symbol Loader中的symbols中加入,就可以实现源码级的调试。具体如下:     
   转换生成Symbols:将sys文件转换成mns文件,用于加载 
   Symbol   Loader   ->   File   ->   Open   ->   选中驱动文件.sys之后  
   Symbol   Loader   ->   Module   ->   Translate      
   加入Symbols:加入程序的所有的sym,这样在后面的调试中就可以用来查看各个变量。 
   Symbol   Loader   ->   Edit   ->   SoftICE   Initialization   Settings...   ->   Symbols   ->Add 
   加载Symbols:这必须在Softice已经启动后,才可以。 
   Symbol   Loader   ->   File   ->   Open   ->   选中文件.mns。 
   Symbol   Loader   ->   Module   ->   Load 
  
这时候你就可以看到你加载的文件了,,你就可以file *,看到你所加载的源码文件,譬如file miniport就可以看到miniport.c的代码。并可以设置断点,调试程序了。 
  
5、用Ctrl + D来调出softice 一个黑咕隆咚带有绿线的窗口出现了,上面满是汇编代码,内存中的十六进制数据,寄存器窗口,命令窗口什么的。这个就是以后调试将要用到的窗口了。原始的大小和字体看上去很小,在命令窗口敲 set font 2 回车(1最小 3最大字体),字体设置完后,基本上窗口就变大了好多,如果不满意,还可以继续 width 80 ,lines 60,这个是最大的高度。值得一提的是每次重起进入ice,都要重新设置它,比较不方便。方便的作法是到前面提到的symbol loader界面的菜单中有一个setting的地方,里面默认的配置是X;,你把它改成 set font 2;width 80;lines 60;X; 以后每次重起ICE的窗口就都是设置好的了,不用再配了。 
  
问题篇 
1.在使用Symbol Loader中的Translate和Load后,用Sym命令可以看见符号,但用File命令却不能显示C源文件。  
因为没有找到源文件的路径啊!你在open那个sys文件之后,要转化之前。在module里面seting。里面把那个prompt for missing source的check box选上,还有就是当告诉你缺上你自己的源文件的时候你去选择路径, 
我的方法是反正把所有.c和.pdb.可执行文件拷贝到一起,肯定不会出错拉,记得必须要有扩展名为pdb的调试文件。还有一个问题要注意,如果.sys文件和.pbd文件的绝对路径上有空格或者汉字那么同样无法找到。 
  
2.程序遇到断点后,跳出Softice,里面的代码是汇编。 
     在第一个问题已经解决的基础上,F3或者SRC命令。这是在源程序、汇编代码混合和汇编代码三种显 示方式之间切换。 
  
3.我想在softice中断下passthru的driverentry 和 ptbindadapter函数。但是这两个函数调用得很早(虽然 是在softice加载之后调用的),我按Ctrl-D总是没他快,有没有什么办法可以断下这两个函数?  
方法1:很简单的,你在driverentry的入口的地方加一句_asm int 3,然后写一个程序来动态加载驱动程序,加载前切换到softice里,打一句bpint 3,然后执行加载程序,就可以中断下来了。方法2:我不是这样设断点的: 你可以先安装passthru.sys,而后卸掉,重新启动windows,用softice把system32下的passthru.sys先Translate,再load。 在DriverEntry处设断点,重新装载passthru.sys即可。 
     这个问题我觉得很奇怪,我试过只要在driverentry或者ptbindadapter中设置断点,每一次加载驱动,我都能很顺利的进入这个函数啊。 
  
4.当我开机调入SoftIce时,当系统或者程序有错时,总会有SoftIce跳出来,说是页调用错误(0D),说选择C继续进行或者R跳出什么的,结果是怎么也跳不出来,只能HBOOT,郁闷了我有好长时间了。请问如何在SoftIce中不用重起就可以跳出来? 
     Softice有一个选项可以拦截所有的错误还是部分拦截。如果不选的话,像一些软件错误,它都不会被激活的。或者在启动里加上 FAULTS OFF。 
  
5.有些函数明明已经调用了,我也在里面设了断点,用dpgprint的语句看,确实执行了。但是为什么就是断不下来呢? 
     原因是编译器对程序做了些优化,会导致有些变量不能查看,有些语句不能设断点。解决方法,在makefile.def中的 DEFAULT_MSC_OPT = /Oxs 改为DEFAULT_MSC_OPT = /Od。或者是在Source file中加入MSC_OPTIMIZATION=/Od。用于取消编译优化 
     这个问题是我网上看的,但是我没碰到过。 
6.我的程序修改过了,但是为什么在Softice下的file 文件或者是sym都是原来的。  
     重新Translate一遍,再Load一遍,并把  Symbol   Loader   ->   Edit   ->   SoftICE   Initialization   Settings...   ->   Symbols   ->Add。也重新更新一遍。 
  
  
我遇到的问题篇 
1.我本来是想在虚拟机下测试的。看了很多在虚拟机下设置的问题。明白了,但是。。。我的显卡是intel82865g的。找了好多的驱动,在虚拟机下,就是安不上,都说什么不符合最低配置。换了一台82845g的机子,也还是这个问题。这样的话,连directdraw都不能用,更不要说是softice了。不知道大家有什么办法,我得解决办法就是在主机下使用softice,问题算是解决了拉,但每次重启的时间太长。SIGH 
  
2.每次调用loader来转换我的sys文件都会跳出对话框,对原版的passthru是“symbol loader is unable to locate the gs_support.c”,对我修改过的passthru则是“找不到gs_support.c,也找不到ndis.h”。虽然还是能转换成功,好像在后面用的时候也没任何问题,但是总觉得很奇怪,我就只是在上面加了几行程序而已,为什么会有这种区别,至于ndis.h这个文件,我们都是在precomp.h里面include的。这个不明白的说。还有就是会有什么问题吗?虽然还没碰到。 
  
3.现在这个问题比较重要,死机,我的softice是手动启动的。本来昨天用得好好的。今天不知道为什么,一手动加载就蓝屏。这个时候我的驱动是还没安装的,而且刚刚重启。本来怀疑是symbol loader的问题,但是把loader里面的加载的mns也remove了啊。很头痛了。但是有时候就能用,我也不太清楚为什么。而且一次能用的话,后面在改好几次都能用。就是不能重启。一重启的话,问题又来了。这个方法的解决问题是把Softice的启动方式改为boot就全部OK了。具体原因不明。 
  
4.就是老在网上看到Softice和xp(sp2)或者2k(sp4)不兼容,需要下载补丁。但是都不知道自己的Softice是什么版本,而且好像用得也没问题,可能是DriverStudio3.2版本比较高吧,这些问题都没遇上。 
  
Softice常用命令篇 
     因为我们并不是要用于硬件测试,所以又很多关于中断的端口的之类的命令我就没有一一试过了,在这里我把几乎所有的命令试过一遍,总结出一些我们常用的命令还有我得一些个人心得,基本上用了这些就足够了。 
  
界面设置: 
LINES 
改变SoftICE窗口的显示行数,譬如LINES 60 
WIDTH 
改变SoftICE窗口的显示列数,譬如WIDTH  80 
set font  
改变字体大小,最小的1,最大的3。譬如set font 2 
值得一提的是每次重起进入Softice,都要重新设置它,比较不方便。方便的作法是到前面提到的symbol loader界面的菜单中有一个setting的地方,,里面默认的配置是X;,你把它改成 set font 2;width 100;lines 60;X; 以后每次重起ICE的窗口就都是设置好的了,不用再配了。 
  
调试命令: 
FILE 
File 某个文件名,就会在代码窗口出现这个文件的代码。但是其实不用敲全,譬如我就是用file m,来打开miniport.c。但是不能用file p哦。因为他不知道是要打开protocol.c还是passthru.c。很懒的方法吧。还有可以用file *。来看有多少个加载的文件。 
Bpx   
在可执行语句上设定(或清除)断点,Bpx 函数名,那么当执行到这个函数的时候,Softice就会跳出来了。但是我还是不喜欢用它,直接在代码里面双击某行程序,那段程序会高亮显示,代表我们在这里下了中断,再双击这段代码,就可以清楚这个断点了。 
BC  BD  BE BL 
BC用来清除断点,BD用来使断点无效,BE用来有效断点。但是通常我都是用鼠标来清除断点。要不就是bc *。来清除掉所有断点。BD和BE不想用。BL是列出所有你下的断点。 
Watch 
加入一个监视窗口,很经常用的命令,譬如watch protocol,其中protocol是一个变量。就可以在监视窗口中看到这个变量的值了。 
Src  快捷键F3 
在源程序,反汇编代码,两者混和之间切换显示.,在你正确Load了那个symbol文件后,你就可以在代码窗口,看到你的源程序,这时可以用单步调试看到程序一步一步的执行。 
P  快捷键F10 
单步执行一条指令或者执行一个子程序。很经常用的。 
T  快捷键F8 
单步执行一条指令 
DB DW DD 
显示某内存区域的内容,其中DB显示的是以字节为单位,DW是以WORD为单位,DD是以双字为单位。这个其实和watch命令感觉差不多。 
EB EW ED 
修改某内存区域的内容,其中EB显示的是以字节为单位,EW是以WORD为单位,ED是以双字为单位。感觉很有趣,可以在代码执行掉一半的时候,修改一些里面变量的值。 
Locals 
从当前栈中列出所有的局部变量,当你执行到某一个函数体内,可以执行这个函数,他将所有的局部变量值都列出来。有时候可以用一用。 
DATA 
显示另一个数据窗口,通常只有一个数据窗口的,你可以用WD来打开或者关闭这个窗口。如果你同时关心两个到三个数据值时,可以用这个命令增加一个数据窗口。最多3个。 
WC,WD 
WC打开或关闭代码窗口,WD打开或关闭数据窗口,其他的还有WL,WR,WW个人感觉没多大用。不作介绍。 
FAULT 
Softice经常会出现一些page error的错误,这个很讨厌。因为当系统或者程序有错时,总会有SoftIce跳出来,说是页调用错误(0D),说选择C继续进行或者R跳出什么的,结果是怎么也跳不出来,只能HBOOT,郁闷了我有好长时间了。所以可以在初始化命令中加上这一条FAULT OFF。变成fault off;set font 2;width 100;lines 60;X; 
  
其他命令: 

退出Softice窗口,或者Ctrl D也行。要不弹出了窗口,你还真不知道怎么跳出来。 
CLS 
清屏,这么多的命令执行完,是不是觉得命令窗口有点乱。不要紧,一用这个命令,世界又清静了。 
Ss 

查找字符串,这么多的代码,怎么能找到自己想要的变量或者字符串呢。敲命令吧 ss ~~(~~为想要搜索的字符串,通常是某例程的名字什么的),找到第一个匹配的,不是?那就继续同样的找法,按上箭头就可以显示出刚运行过的命令了,不用每次都敲。


使用Softice

安装并配置好Softice后,我们就可以开始进入使用Softice的阶段了,如果你没有做好前面的工作,还是先返回去将Softice准备好,学软件要一边看一边学习效果才好。Softice的界面和操作都比较简单,只要熟悉一些基本的命令之后就可以开始利用它为我们服务了。有一点要提醒大家:Softice在WINDOWS启动之前装入系统中,然后将WINDOWS载入(因为要控制、拦截WINDOWS的动作),所以它工作于系统的0级(即特权级)。当在WINDOWS下用热键呼出Softice后,它就控制了整个系统,此时任何其它的程序(包括系统时钟)都将处于停止状态。
  本文只是介绍Softice的基本使用方法,有关Softice的详细使用方法请参阅随软件附带的命令手册和操作手册。
◆ 如何呼出/退出Softice?——在WINDOWS下可以随时用热键CTRL+D组合键呼出内存中的Softice,按F5功能键退出Softice ◆

  FAQ问题解答:
  用CTRL+D不能呼出Softice怎么办?
    ——如果确保成功安装了Softice,对于windows 9x请检查批处理文件autoexec.bat中是否有winice.exe这一句,对于windows NT请在“开始-〉程序-〉NuMega Softice”下选择“Start SoftICE”启动Softice试试。
  Softice的屏幕没有任何显示?
    ——在“开始-〉程序-〉NuMega Softice”下选择“Display Adapter Setup”重新设置显卡
  Softice中鼠标功能出现异常?
    ——在“开始-〉程序-〉NuMega Softice”下选择“Mouse Setup”重新设置鼠标
  在显卡设置中选择了“Universal Video Driver”选项,但是Softice的呼出的仍然是全屏DOS界面?
    两个对策:
    ——1. 将winice.dat的初始化命令行(即INIT)中的“LINES XX”数改小,例如:LINES 40
    ——2. 在显卡设置中将“Manufacturer”强制改为“StandardVGA”,然后“Test”,成功后退出。
  注意:以上的修改都要重新启动系统后才能生效!!! 

  ★ 关于寄存器区:修改寄存器的值有两种办法:1. 直接用鼠标点击需要修改的地方进行修改;2. 用修改指令“R”,例如:R EAX ->修改寄存器EAX,R FL ->修改标志位(用“Insert”键改变标志位状态),R FLZ ->改变零标志位的状态(在0和1之间切换)。修改完寄存器值后按ESC键退回命令行状态区。

  ★ 关于数据区:修改数据区的值有两种办法:1. 直接用鼠标点击需要修改的地方(16进制显示区或者字符形式显示区)进行修改;2. 用修改指令“E”,例如:E XXXXXXXX ->修改内存地址XXXXXXXX处的数据,用TAB键在16进制显示区和字符形式显示区之间切换。修改完寄存器值后按ESC键退回命令行状态区。
          查看数据区的内容的两种方法:1. 用ALT+↑和↓上下箭头移动数据显示区域;2. 直接用鼠标点击数据窗口最右边的↑和↓上下箭头(图中没有显示出来)来移动显示区域。

  ★ 关于程序区:机器代码的显示/关闭必须通过指令“CODE ON/OFF”来切换,Softice的默认工作画面是没有显示机器代码的。注意:程序的领空地域如图所示,图中的画面正在破解WINZIP这个程序,当你看到“WINZIP32!.TEXT”字样时说明程序已经返回到WINZIP的领空了^_^
          查看程序区的内容的两种方法:1. 用CTRL+↑和↓上下箭头移动程序代码显示区域;2. 直接用鼠标点击程序窗口最右边的↑和↓上下箭头(图中没有显示出来)来移动代码显示区域。

  ★ 关于命令区:是我们输入各种命令,完成各种操作和控制,进行破解的地方。

  ★ 关于动作状态区:输入命令时显示命令的用法及格式。

  ★ 关于堆栈区:只有TRW2000具有这个窗口区域。

◆ Softice预定义功能组合键的作用 ◆

F1:
F2:
F3:
F4:
F5:
F6:
F7:
F8:
F9:
F10:
F11:
F12:
SHIFT+F3:
CTRL+F8:
CTRL+F9:
CTRL+F10: 
CTRL+F11: 
CTRL+F12: 
ALT+F1:
ALT+F2:
ALT+F3:
ALT+F4:
ALT+F5:
ALT+F8:帮助
寄存器显示/关闭切换
源程序/反汇编代码切换(程序有源程序时可用)
Softice界面/屏幕原始画面显示切换
退出Softice窗口
进入/退出代码窗口
程序运行到光标所在处
单步跟踪
在光标所在位置设断点
单步执行(跳过子程序CALL)
程序执行到ES:ESP指向的地方
程序执行到RET指令处,即从子程序CALL中返回
改变数据窗口的显示格式,按照“字节->字->双字->短实型->长实型->10字节实型”的方式循环显示
模拟跟踪模式中单步跟踪
退出当前模拟跟踪模式
模拟跟踪模式中单步执行
从历史跟踪缓冲区的最后一条开始显示指令
从最初的一条指令开始模拟跟踪
显示/关闭寄存器窗口
显示/关闭数据窗口
显示/关闭程序窗口
显示/关闭监视窗口
清除命令窗口中的字符
模拟跟踪模式中反方向单步跟踪
◆ Softice的常用命令用法介绍 ◆


命令形式作 用说 明
.定位当前指令当上下移动浏览代码窗口中的内容时用这个命令能立即回到当前CS:EIP指令处,不用再慢慢的移动代码窗口返回来。
? 表达式计算表达式的值Softice内置的计算器,16进制为默认方式,下列均表示16进制数:FF、123、0x123;10进制数须在前加+号(正数)或-号(负数),例如:+42、-123、-FF(对应10进制数-255)、+(20)(对应10进制数+32);字符形式加''号,例如:'A'、'ddcrack'。计算结果分别以16进制、10进制和ASCII字符方式显示,例如:
? EAX
00000045 00000069 "E"
? 0073173+00066400
00796573 007955827 "yes"
A [地址]写入汇编代码用过DOS下DEBUG的人对这个命令都不会陌生,用法:
A  从当前CS:EIP处开始汇编
A XXXXXXXX  从程序地址XXXXXXXX处开始汇编
U [地址]反汇编代码U  从当前屏幕中最后一条指令的下一条指令开始反汇编
U XXXXXXXX  从程序地址XXXXXXXX处开始反汇编
BC list | *清除断点BC 3  清除断点3
BC *  清除所有断点
BD list | *禁止断点BD 3  禁止断点3
BD *  禁止所有断点
BE list | *恢复被禁止的断点BD 3  恢复断点3
BD *  恢复所有断点
BH显示历史断点显示Softice中曾经设置过的断点
BL列出当前断点显示当前Softice中所有设置的断点,包括激活的和被禁止的断点,被禁止的断点前有“*”号表示。
BPE 断点号编辑断点BPE 3  编辑断点3
BPINT 中断号对指定中断设置断点BPINT 13  在13号中断上设置断点
BPIO 端口号对指定I/O端口设置断点BPIO 378  在对端口378进行操作时中断
BPM [地址]对指定内存地址设置断点BPM XXXXXXXX  在对内存地址XXXXXXXX单元中的数据进行操作时中断
BPR [开始地址] [结束地址]在内存地址范围设置断点BPR XXXXXXXX ********  在对内存地址从XXXXXXXX到********单元中的数据进行操作时中断
BPX [地址]在指定处设置断点这是破解中最常用的命令之一了^_^
BPX  在当前光标所在处设置断点
BPX XXXXXXXX  在XXXXXXXX处的指令上设置断点
BPX GetDlgItemText  在API函数GetDlgItemText上设置断点
CODE ON/OFF显示/关闭指令机器码默认是不显示的,在需要的时候再打开它,否则屏幕会显得混乱。
D [地址]显示内存地址内容可以具体指定下面的模式:DB 字节; DW 字; DD 双字; DS 短实型; DL 长实型; DT 10b长实型,默认是DB,即字节方式。
D  将从继上次命令之后的地址开始显示
    D XXXXXXXX  显示内存地址XXXXXXXX单元中的内容
E [地址]修改内存单元可以具体指定下面的模式:EB 字节; EW 字; ED 双字; ES 短实型; EL 长实型; ET 10b长实型,默认是EB,即字节方式。
E  修改从继上次命令之后的地址单元
    E XXXXXXXX  修改内存地址XXXXXXXX单元中的内容
H / HELP [命令]获取帮助信息H  获取所有帮助信息
HELP BPX  获取指令BPX的帮助信息
LINES 行数设置SoftICE界面的行数LINES 45  设置SoftICE的界面显示行数为45行
VER查看SoftICE的版本号 
X退出Softice将控制权交还给被SoftICE中断的程序,快捷键是F5,我们经常用到的。
EXIT强行退出DOS或WINDOWS程序当出现致命错误致使Softice弹出后,如果用“X”指令没有用,可以用它试一下。
WC
WD
WR
WW显示/关闭程序窗口
显示/关闭数据窗口
显示/关闭寄存器窗口
显示/关闭监视窗口其中WC和WD可以指定窗口显示的行数,例如:WD 4 表示显示数据窗口为4行



Softice是一款经典的老牌动态调试工具,同时也是个非常成熟、完善的软件产品,从早期的DOS平台到现在的WINDOWS平台, Softice都有全线的产品支持,其正式推出的软件产品基于如下的平台:Dos、Windows 3.1、Windwos 9x和Windows NT,虽然如此,我们仍然可以在Dos、Windows 3.1、Windows 95/98、Windows Me、Windows NT直至最新的Windows 2000上运行。由于纯粹的Dos和Windows 3.1基本上已经没有人使用,所以下面主要讲一下在其它几个平台上安装时的注意事项。


★ 安装Softice for Windows 9x

关键点:显卡设置
    鼠标设置
    系统设置

1. Softice目前的最新版本是4.05,分为Win 9x和Win NT两个平台,建议使用新版本,这样稳定性较好。下载软件后直接运行Softice的自解压文件开始进入安装程序,或者是将Softice解压后运行setup.exe开始进行安装
2. 点击“Next”后在接下来的许可协议中选择“Yes”,然后出现用户信息输入框: 
3. 在“Name”中输入用户名,“Company”中输入公司名,“Serial”中输入Softice的序列号,选择“Next”: 
4. 用“Browse”更换Softice的默认安装目录,接着连续两次选择“Next”,来到显卡设置页面: 
5. 这里可以根据你的显卡的具体配置在“Manufacturer”和“Model”选定项目,不过对于大多数的显卡通常在“Manufacturer”中选择“StandardVGA”比较好(因为假如你的显卡质量不太好,又具体选定了型号,那么就算是安装成功,也可能在实际使用Softice时显示出现不正常的情况);然后将“Universal Video Driver”也选上,这样Softice弹出后是个窗口画面,推荐使用这样的工作方式,否则,如果不选择这项,Softice弹出的是全屏的DOS界面,操作不太方便,兼容性也不太好。显卡设置好后点击“Test”,让Softice自己测试一下是否能工作: 
6. 上面出现的画面告诉显卡测试正常(如果失败则要重新返回上一步设置显卡),选择“确定”,之后在Softice的显卡设置界面中选择“Next”,进入鼠标设置: 
7. 如果你使用较早的串行鼠标(方口的),应根据具体的串口选择“Serial”项(串口1:Connected to COM1,串口2:Connected to COM2),如果你不知道到底是哪个串口,只能先随便选一个,然后在Softice的弹出的弹出窗口中测试一下鼠标是否能用,不行的话就重新改去另外一个串口;如果你的鼠标是现在常见的PS2鼠标(圆口的),选择“PS/2 Compatible”;如果的电脑没有配备鼠标,则选择“None”。注意:假如你按上面的方法正确设置了鼠标,但鼠标功能还是不正常,则可以将“Microsoft IntelliMouse”也选上,这样应该能解决问题。设置鼠标好后选择“Next”,进入Softice的系统配置画面: 
8. Softice既不能直接运行在WINDOWS下,又不能工作在WINDOWS的DOS窗口下。如果想要安装完Softice后立即使用它,则选上“Let setup modify AUTOEXEC.BAT”,这样Softice会在批处理文件中加上“winice.exe”,让它自己先于WINDWOS调入系统中。如果并不急于使用Softice,则可选“Do not make any changes”,等需要的时候再去批处理中加载“winice.exe”。接下来连续选择“Next”,开始安装Softice,结束后出现如下的画面:

9. 上面的画面是Softice要求进行电子注册,其中有四个选项可供选择:
“Register using internet (requires Web browser)”——通过浏览器进行互联网在线注册
“Register using E-Mail”——通过E-MAIL电子邮件进行注册
“Print registration for faxing or mailing”——将打印出的注册表通过传真或者邮寄进行注册
“Register later”——以后注册
上面的注册选项并不影响Softice的使用,这里直接选择“Register later”,然后按“Next”: 
10. 如果你想立即应用Softice,选择“Yes,I want to restart my computer now”,让系统重新启动,加载Softice;否则就选择“No,I will restart my computer later”,直到下次重起电脑后才可以使用Softice,点击“Finish”,完成安装。 

★ 安装Softice for Windows Me

  Windows Me中取消了对DOS的支持,所以不能直接在Windows Me下安装Softice,需要 winice loader 这个工具的帮助,具体安装步骤如下:
1. 正常安装Softice for Windows 9x”;
2. 将winice.exe, winice.dat 和 siwvid.386复制到WINDOWS ME目录下,如:c:\WinMe;
3. 将winice loader内的loader.exe解压到WINDOWS ME的SYSTEM\VMM32\目录下,如:c:\WinMe\system\vmm32;
4. 重新启动系统。

★ 安装Softice for Windows NT

  安装Softice NT版和Win 9x版基本相同,区别主要是在上面Win 9x版安装的第7步以后出现的系统配置画面不一样,其画面如下所示:
有四个选项可供选择:

“Boot”——在Windows NT之前加载Softice,适合调试设备驱动程序;
“System”——Windows NT和Softice同时加载,适合应用程序调试;
“Automatic”——Windows NT和Softice同时加载,但是不能调试核心设备驱动程序;
“Manual”——需要在Windows NT环境下通过执行“Start SoftICE”手动启动Softice

通常选择“Manual”方式会比较方便,这样只是在需要的时候才加载Softice,Start SoftICE的路径如下:开始->程序->Numega SoftICE->Start SoftICE 。

★ 安装Softice for Windows 2000

  安装Windows 2000版和Win NT版的步骤相同,但如果将Softice作为WINDOWS 2000的系统启动驱动程序时,需要注意一些问题:

  由于Windows 2000的初始状态发生了改变,就有可能使得Softice不能正常加载必须的文件。Numega公司为WINDOWS 2000下的Softice设计了一个驱动程序:SoftICE Symbol Driver (SIWSYM),当Softice启动时为其提供文件影象表地址,Softice根据这个表寻找所需的启动文件,从而能其正常正常加载到系统中。驱动程序SIWSYM被放置在ICEPACK.EXE文件中,运行这个程序就可以自动完成必要的配置工作。切记:每次改变Softice的配置(直接编辑WINICE.DAT或通过LOADER32改变配置)后都要重新运行ICEPACK.EXE,这样才能保证新的修改产生作用。




0 0