b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

ollydbg_ollydbg入门教程_ollydbg破解注册码(20)

电脑杂谈  发布时间:2017-04-17 05:02:23  来源:网络整理

毫无疑问,Run跟踪需要足够的内存,每条命令平均需要占用16到35字节,同时速度也非常慢。在500—MHZ处理器、Windows NT环境下,它每秒能跟踪5000条指令。Windows95更慢:每秒钟仅2200条指令。但是在许多情况下,例如当一个程序跳转到不存在的地址的时候,这是找到原因的唯一方法。你可以在Run 跟踪时将准线性命令序列(即序列尾部只有唯一出口)跳过。当OllyDbg遇到这些需跳过的命令序列时,会设置一个临时断点,然后跟进到序列中,并一次运行完。当然了,如果排除命令中返回或跳转的地址在跟踪范围之外,将可能导致跟踪发生错误;因此OllyDbg会检查你想跳过的代码块,如果存在上述情况,会向你询问。

在大多数情况下,你对跟踪系统API代码不感兴趣。跟踪选项总是跟过系统DLL[Always traceover system DLLs]允许你在 跟踪/自动模式下跟过API函数。如果模块在系统目录下,OllyDbg就假设该模块是系统的。你可以在模块[Modules]窗口中标记任意DLL是系统的或者非系统的。

为了使执行速度更快,你可以通过设置Run跟踪断点,先将Run跟踪限制在选定的命令或代码块上,然后再运行程序。我把这种做法称作“强迫Run跟踪”。一般来说,删除Run跟踪断点不会移除Hit跟踪断点。但如果你删除了hit跟踪断点,同时你也移除了Run跟踪断点。

跟踪命令会保存到跟踪缓冲区中,这个缓冲区在跟踪开始时自动创建。你可以在选项中指定它的大小(最高64MB)。这个缓冲区是循环队列,当满了的时候,会丢弃老的记录。你可以通过从OllyDbg主菜单中选择“调试[Debug]—>打开或者清除Run跟踪[Open or clear run trace]”,来打开或者清除Run跟踪缓冲区。在Run跟踪缓冲区打开后,OllyDbg 会记录在执行过程中的所有暂停,甚至那些不是由Run跟踪引起的暂停。例如,你可以通过按 F7 或者 F8 单步执行程序,然后通过使用键和—键来反方向跟踪程序的执行。注意:如果Run跟踪缓冲区已经关闭,则用这些键浏览的是历史[history]记录。在你查看Run跟踪记录时,寄存器和信息面板会变灰,来强调它们所显示的寄存器并不是实际的寄存器。跟踪缓冲区并不保存栈顶或由寄存器所指向的内容。寄存器、信息和栈在Run跟踪的时候使用实际的内存状态来解释寄存器的变化。

OllyDbg能够记下每个指令在Run跟踪缓冲区里面出现的次数。在反汇编窗口快捷菜单中,选择是“查看[View]—>统计作为注释[Profile as comments]”。这个命令使用统计取代了注释栏。或者,如果列标题栏可见,则可以单击它几次直到它显示统计信息。注意显示出来的数字是动态的,而且不计算已经从跟踪缓冲区中丢弃的指令。你还可以在单独的统计窗口[Profile window]中,按触发次数排序,来查看整个模块的统计数据。

在反汇编窗口的快捷菜单中选择“Run跟踪[Run trace]—>添加到所有函数入口处[Add entries of all procedures]”,这样能够检查每个可识别的函数被调用的次数。另一个命令“Run跟踪[Run trace]—>添加到函数中所有的分支[Add branches in procedure]”会强行跟踪此函数中所有识别的跳转目的地址的内容。在这种情况下,统计功能能够找到最频繁执行的分支,你可以优化这部分的代码,以提高速度。

在反汇编窗口中的某条命令上使用快捷菜单中选择“搜索[Search for]—>Run跟踪的最新记录[Last record in run trace]”用于查找该命令是否被执行过,如果执行过,最后一次执行在哪里。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-41789-20.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...