SoftICE for WIN95中文命令解说(五)

/ns/cn/tool/data/20010129095856.htm

SoftICE for WIN95中文命令解说(五)
Copyright (c) 1999 http://coobe.cs.hn.cninfo.net/~tianwei

命令: DATA
作用: 显示另一个数据窗口
语法: DATA [window-number]
用法:
window-number: 所要选择的窗口号,0,1,2,3
SoftICE最多支持4个数据窗口.每一个窗口可以独立按
自己的格式显示数据. 但同一时刻只能显示一个窗口.
如果用DATA窗口不带任何参数, 将按0,1,2,3的次序显
示各个窗口中的内容.在数据窗口的右上角的横线上有
窗口序号的提示.

点评: 可以很方便地对多个目标的进行观察

命令: DEX
作用: 在数据窗口中显示(或赋予)某个表达式
语法: DEX [data-window-number [expression]]
用法:
data-window-number: 即DATA命令中所讲的0,1,2,3号
数据窗口
DEX 命令可以为每一个数据窗口赋予一个表达式,每次
SoftICE弹出该表达式就被重新计算, 并显示在相应的
数据窗口中.这对某些指针非常有用. 指针可以放在寄
存器中或是在内存变量中,如下二例:

DEX 0 SS:ESP 每次SoftICE弹出, 就在0号数据窗口中
显示堆栈的值
DEX 1 @pointervariable 每次SoftICE弹出, 就在1号
窗口中显示由pointervariable指针所指的内存单元的
内容.(@ 操作符后有论述).

用DEX不带参数将显示当前在各个数据窗口中所赋予的
表达式. 用 DEX data-window-number(不跟表达式)将
取消前次赋予窗口的表达式.

点评: 相当于自动化的D命令.

命令: DIAL
作用: 将控制台重定向到MODEM
语法: DIAL [on [ com-port] [ baud-rate] [i=init-string] [p=number] | off]
用法:
COM-PORT : 串行通讯口,默认为COM1
BAUD-RATE: 1200,2400,4800, 9600, 19200, 23040,
28800,38400(默认),57000,115000
I=INIT : MODEM的初始化字符串.
p=number : 电话号码
DIAL 命令通过拨号与远程电脑取得联系, 远程电脑必
需正在运行SERIAL.EXE且在等待对方拨号.一旦联接完
成,SoftICE的的输入将来自远程计算机,输出也重定向
到远程计算机.本地计算机除了激活的热键外不接收其
他对SoftICE的输入.当远程机结束调试后,用DIAL OFF
来挂断MODEM.

点评:
前次的ANSWER命令是等远程机拨号过来,而DIAL是拨过
去.有机会试一下这两个命令就好了.


命令: E
作用: 修改内存单元
语法: E[size] [address [data-list]]
用法:
size : B 字节;W 字;D 双字;S 短实型;L 长实型
;T 10字节的实型
data-list: 要修改的值,(和size类型一致) 可用单引
号或双引号来输入字符串.
如果键入没有data-list参数的E 命令, 光标将切换到
数据窗口并定位到所指定的内存单元,等待使用者相应
的操作.如果加跟data-list参数,则内存单元立刻被修
改为所指定的值.数据窗口当前如果不可见, 则键入E
命令将使之可见.在修改中可以用TAB键在ASCII与十六
进制方式之间切换.

点评: 无

命令: EC
作用: 进入或退出代码窗口
语法: EC
用法:
EC 命令使得光标在代码窗口和命令窗口之间切换. 如
果代码窗口当前不可见,则键入 EC 命令后将自动可见
当光标在代码窗口中时,使用者可以利用 SoftICE的几
项快捷功能:
1.可以在光标处设断点,直接打BPX不跟地址,更方便的
是按F9快捷键,再执行一遍将清除当前所在的断点
2.可以用HERE 命令来设个临时断点, 所谓临时断点好
象DEBUG中的G命令,也可用F7快捷键来实现.
3.在代码窗口中时,也可用上下光标键,PageUp,PageDn
来翻页,上下浏览.
另外,当用户调试源文件时,可以用:
Ctrl+Home , 到源程序的第一行
Ctrl+End , 到源程序的最后一行
Ctrl+左右光标, 水平察看源程序

点评: 实际上可以用Ctrl+光标,Ctrl+PgUp,Ctrl+PgDn来直接翻页

命令: EXIT
作用: 强行退出DOS程序或WINDOWS程序
语法: EXIT
用法:
这个命令在PDF手册中说95已经不被支持, 实际上还是
有用的. 特别是当开个DOS VM跑时,用EXIT退出还是偶
尔会用到.EXIT实际上是强行执行一个INT 21h AH==4C
所以在DOS VM和保护模式的ring3还是有可能正常退出.
只是有可能而已.

点评:
在WIN95(Protected)下除非你很肯定, 否则不要用EXIT.
一不小心,你的机器将会死得很难看!


命令: EXP
作用: 显示DLL中的出口函数
语法: EXP [[module!][partial-name]] | [!]
用法:
module! : 对所指定的模块列出出口函数(注意要
加 ! 惊叹号)
partial-name: 指定出口函数的前几个字符, 可以用?
来做替代不定字符. (注意要跟紧前面
的module!)
! : 只跟! 表示列出SoftICE当前已加载出
口函数表的模块.
WIN95中SoftICE自动加载KERNEL,USER,GDI的出口函数
表.你也可以通过WINICE.DAT或SoftICE 的LOADER (加
载器)来加载更多的出口函数列表.

点评:
比较常用的DLLs,DRVs都在WINICE.DAT中有了, 用户只
要修改为相应的路径就能每次开机自动带入.这样带来
的好处是:
1.可以在反汇编时直接看到调用接口.
2.可以直接在函数上下断点


命令: F
作用: 填充某一块内存区域
语法: F address l length data-list
用法:
length : 字节长度
data-list: 所要填的数据. 可以是用单引号或双引号
括起来的字符串
执行F 命令将向所指定的内存区域填充length 长度的
数据,如果数据不够长度,将重复数据,直到达到长度为
止.

点评: 无