跟踪断点[Trace breakpoint] 是在每个选中命令上设置的一种特殊的INT3断点。如果你设置了Hit跟踪[hit trace],断点会在命令执行后移除,并在该地址处做一个标记。如果你使用的是Run跟踪[run trace],OllyDbg会添加跟踪数据记录并且断点仍然是保持激活状态。
内存断点[Memory breakpoint]OllyDbg每一时刻只允许有一个内存断点。你可以在反汇编窗口、CPU窗口、数据窗口中选择一部分内存,然后使用快捷菜单设置内存断点。如果有以前的内存断点,将被自动删除。你有两个选择:在内存访问(读,写,执行)时中断,或内存写入时中断。设置此类断点时,OllyDbg将会改变所选部分的内存块的属性。在与80x86兼容的处理器上将会有4096字节的内存被分配并保护起来。即使你仅仅选择了一个字节,OllyDbg 也会将整个内存块都保护起来。这将会引起大量的错误警告,请小心使用此类断点。某些系统函数(特别是在Windows95/98下)在访问受保护的内存时不但不会产生调试事件反而会造成被调试程序的崩溃。
硬断点[Hardware breakpoint](仅在Windows ME,NT或2000下可用)在80x86兼容的处理器上,允许你设置4个硬件断点。和内存断点不同,硬件断点并不会降低执行速度,但是最多只能覆盖四个字节。在单步执行或者跟踪代码时,OllyDbg能够使用硬断点代替INT3断点。
内存访问一次性断点[Single—shot break on memory access](仅在Windows NT或2000下可用)。你可以通过内存窗口的快捷菜单(或按F2),对整个内存块设置该类断点。当你想捕捉调用或返回到某个模块时,该类断点就显得特别有用。中断发生以后,断点将被删除。
暂停Run跟踪[Run trace pause] (快捷键:CtrlT)是在每一步Run跟踪[run trace]时都要检查的一个条件集。你可以在EIP进入某个范围或超出某个范围时暂停,某个条件为真时暂停,或者命令与指定的模式匹配时暂停,或者当命令可疑的时候暂停。注意,这一选择会极大的(高达20%)降低Run跟踪的速度。OllyDbg也可以在一些调试事件[debugging events]上暂停程序执行。比如加载或卸载DLL,启动或终止线程,或者程序发出调试字符串的时候。
四、数据窗口[Dump]
数据窗口用于显示内存或文件的内容。你可以从以下预处理式[predefined formats]中选择一种显示方式:字节[byte]、文本[text]、整数[integer]、浮点数[float]、地址[address],反汇编[disassembly]、 PE头[PE Header]。
如果 备份[backup]可用,则单击第一个列标题栏,会在地址[Address]/备份[Backup] 两种显示模式之间切换。点击其他列标题栏,会改变Dump模式。
像反汇编窗口一样,数据窗口也保存了大量查看内存地址的历史记录。你可以通过“”和“—”键来访问过去查看过的数据地址空间。要翻动一字节的数据,可以按住Ctrl↓或Ctrl↑。
五、可执行模块窗口[Executable modules window]
可执行模块窗口(快捷键:AltE)列出了当前被调试进程加载的所有可执行模块。它也显示了很多有用的信息,比如模块大小、入口地址、模块版本、以及可执行文件路径等。一些信息,如以十进制显示的模块大小、入口地址的符号名、是否为系统模块等,通常是被隐藏的。如果想看,可以增加相应栏的宽度。快捷菜单支持以下操作:
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-41789-13.html
我算是写过的