📄 chap3-2.htm.primary
字号:
verb:所进行的操作,R为读;W为写;RW为读写(默认);X 为执行。<br>
作用:设置内存访问断点。<br>
注意: BPM用了DR3-DR0寄存器,所以最多只能设四个断点。<br>
6、BMSG命令<br>
语法:BMSG window-handle [条件表达式] DO[执行的命令]<br>
window-handle:消息发向的窗口句柄,即消息名<br>
作用:在Windows的消息上下断点。<br>
Windows本身是由消息驱动的, 所以跟踪一个消息会得到相当底层的答案。如:<br>
我们执行记事本程序(Notepad),然后Ctrl+D激活SoftICE输入:<br>
:bmsg wm_char <br>
:g <br>
然后回到Notepad中,随便按一个键,SoftICE就激活了;原因在于我们在按键消息上设置了断点(退出SoftICE别忘下命令"BC
*"清除刚才下的断点)。<br>
7、BL命令<br>
语法:BL<br>
作用:显示当前所设的断点<br>
注意: SoftICE会把所有断点按从0开始的编号列出,而TRW2000是从1开始编号列出。<br>
8、BC命令<br>
语法:BC list | *<br>
list:可以清除指定编号的断点,多个时中间用空格或逗号隔开。<br>
* :清除所有的断点。<br>
作用:清除一个或多个断点<br>
9、BD命令<br>
语法: BD list | *<br>
list:可以是单个,也可以是一系列断点,中间用空格或逗号隔开。<br>
* :禁止所有的断点<br>
作用:使一个或多个断点失效。<br>
10、BE命令<br>
语法:BE list | *<br>
作用:使一个或多个断点恢复有效。<br>
用来恢复前次用 BD 命令使之失效的断点。 (每当新定义断点或编辑断点时,系统自动将其置为有效)<br>
11、BPE命令<br>
语法:BPE index_number(断点索引号)<br>
作用:编辑一个已存在的断点。<br>
12、R命令<br>
语法:R 寄存器名<br>
作用:显示或更改寄存器的内容。 <br>
其可更改所有的寄存器的值。此命令较常用的一个功能是更改状态寄存器(PSW )的值,格式:R FL 标志位。比如当前
Z标志位(零位)为置位状态,执行"r fl z"之后会被清除;如果C标志位为清除状态,那么"r
fl c"将使之置位。<br>
注意: 利用此命令很方便在一些跳转指令上改变方向。<br>
13、A命令<br>
语法:A [地址]<br>
作用:进入小汇编状态,可直接写入汇编代码。<br>
如不加地址值,直接在当前CS:IP(EIP)处汇编。用SoftICE内置的汇编器在内存中写入汇编代码。汇编器支持标准的80x86指令集,包括386、486、Pentium、Pentium-Pro、MMX协处理器,新版的SoftICE还支持AMD的3D
Now!、PII、PIII的特有指令集。<br>
14、D命令<br>
语法:D[size] [address [l length]]<br>
size:B 字节;W 字;D 双字; S 短实型;L 长实型;T 10b长实型<br>
作用:显示某内存区域的内容。<br>
15、S命令<br>
语法:S [-cu][address L length data-list]<br>
address:搜索的起始地址<br>
length :搜索的长度(字节长)<br>
data-lis:可以是一系列字节,也可以是字符串,字符串可以用单引号,也<br>
可以用双引号括住.<br>
-c :使查找区分大小写<br>
-u :查找Unicode 编码的字符串.<br>
作用:在内存中搜寻特定数据,如果找到数据,那将在数据窗口中显示出来,如果在找到后,你还要继续查找,使用不带参数的S命令。由于S命令忽略不在内存中的页面,因此你可以使用32位平面地址数据段描述符30h在整个4GB(0~FFFFFFFFh
)空间查找。如:<br>
s 30:0 l FFFFFFFF "78787878" //在此令在内存中查找字串"78787878"位置。<br>
注意: TRW2000中S命令的字串应是单引号(而SoftICE皆可)。如:s 30:0 l FFFFFFFF '78787878'.<br>
16、E命令<br>
语法:E[size] [address [data-list]] <br>
作用: 修改内存单元<br>
17、U命令<br>
语法:U [address [l length]] | [symbol-name]<br>
address :段:偏移量或选择符:偏移量<br>
symbol-name:将从指定的函数开始反汇编<br>
length :反汇编的长度(字节)<br>
作用: 反汇编指令 <br>
你可以利用此命令抓取汇编代码,运行LOADER32后,将历史缓冲区(history buffer)调大些(默认为256,不能放足够多的缓冲数据)。然后切换到SoftICE调试画面下,来到你要抓取的地方,反汇编这些代码,如:U
CS:EIP L 1000 ,立即按Ctrl+D返回到Windows环境,再次来到symbol loader程序,选择"File/Save
SoftICE History As…"。<br>
注意: 在TRW2000下可以直接反汇编代码输出到一个文件:<br>
u 401000,402000 >路径/myfile。<br>
18、FAULTS命令<br>
语法:FAULTS [on | off] <br>
作用:打开或关闭错误跟踪功能 <br>
由于SoftICE做为一个DEBUGGER,FAULTS 默认为ON,所以一旦CPU有非法指令,SoftICE就会不停地弹出。<br>
19、?命令<br>
语法:? 表达式<br>
作用:计算一个表达式的值<br>
一个非常高级的计算器,另外由于可以显示ASCII,所以可以很方便地在各种数制之间察看。<br>
20、.命令<br>
语法: .<br>
作用:在代码窗口中定位当前指令 <br>
当你在代码窗口中上下浏览时,有可能走得很远,那么这时一个"."命令会让你在下一瞬间回到SoftICE当前所在的CS:EIP处。<br>
21、EXP命令<br>
语法: EXP [函数名]<br>
作用: 显示DLL中的出口函数<br>
函数名可以指定出其前几个字符, 可以用?来做替代不定字符,这样你就可查找相关函数及其是哪个DLL文件了。这对于你在Win2K系统上非常实用,Win2K系统的KERNEL32.DLL中许多函数形式和Windows
9x可能不同,用此命令你就可找到正确的函数名了。<br>
22、PMODULE命令(TRW2000特有命令)<br>
作用:'pret'(相当于按<F12>) 直至CS:EIP位于模块中,但比F12更实用,其可以快速回到你的当前程序领空,不用按多次F12了<br>
23、SUSPEND命令(TRW2000特有命令)<br>
作用: 暂停当前的线程,并退出 TRW2000,按热键返回,此命令相当方便。<br>
24、ver blue命令(TRW2000特有命令)<br>
如你的TRW2000背景颜色很暗,可通过此命令来调整背景。<br>
<br>
</p>
</div>
</div>
<p align="center"><a href="../Catalog.htm"><img src="../image/navtoc.gif" width="84" height="23" border="0"></a><a href="Chap3-1.htm"><img src="../image/Navprev.gif" width="80" height="23" border="0"></a><a href="Chap3-3.htm"><img src="../image/navnext.gif" width="83" height="23" border="0"></a></p>
</div>
<hr width=735>
<div align="center"><span class="p9"><font size="2"><span class="p9"><font size="2"><span class="p9">Copyright
© 2000-2001 <a href="http://www.pediy.com/">KanXue Studio</a>
All Rights Reserved.</span></font></span></font></span> </div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -