注意:如果你运行的是Windows NT、2000 或XP操作系统,你应该拥有管理员权限以便能够调试程序。。
二、CPU 窗口[CPUwindow]
对于用户来说,CPU窗口在OllyDbg中是最重要的窗口。你调试自己程序的绝大部分操作都要在这个窗口中进行。它包括以下五个面板(这五个面板的大小都是可以调节的):
l 反汇编[Disassembler]
l 信息[Information]
l 数据[Dump]
l 寄存器[Registers]
l 栈[Stack]
按TAB键,可以切换到下一个CPU面板中(顺时针方向)。
按ShiftTAB,可以切换到前一个CPU面板(逆时针方向)。
三、断点[Breakpoints]
OllyDbg支持数种不同类型的断点:
一般断点[Ordinary breakpoint], 将你想中断的命令的第一个字节,用一个特殊命令INT3(调试器陷阱)来替代。你可以在反汇编窗口中选中要设断点的指令行并按下 F2键就可以设定一个此类型的断点。也可以在快捷菜单中设置。再次按下F2 键时,断点将被删除。注意,程序将在设断指令被执行之前中断下来。INT3断点的设置数量是没有限制的。当你关闭被调试程序或者调试器的时候,OllyDbg将自动把这些断点保存到硬盘中,永远不要试图在数据段或者指令的中间设置这种断点,如果你试图在代码段以外设置断点,OllyDbg将会警告。你可以在安全选项[Security options]中永远关闭这个提示,在某些情况下调试器会插入自带的临时INT3断点。
条件断点[Conditional breakpoint](快捷键 ShiftF2)是一个带有条件表达式的普通INT3断点。当调试器遇到这类断点时,它将计算表达式的,如果结果非零或者表达式无效,将暂停被调试程序,当然,由条件为假的断点引起的开销是非常高的(主要归因于操作系统的反应时间)。在Windows NT、奔腾Ⅱ/450处理器环境下OllyDbg每秒最多处理2500个条件为假的断点。条件断点的一个典型使用情况就是在Windows消息上设置断点(比如 WM_PAINT)。为此,你可以将伪变量 MSG 同适当的参数说明联合使用。如果窗口被激活,参考一下后面的消息断点描述。
条件记录断点Conditional logging breakpoint](ShiftF4)是一种条件断点,每当遇到此类断点或者满足条件时,它将记录已知函数表达式或参数的。例如,你可以在一些窗口过程函数上设置记录断点并列出对该函数的所有调用。或者只对接收到的WM_COMMAND消息标识符设断,或者对创建文件的函数(CreateFile)设断,并且记录以只读方式打开的文件名等,记录断点和条件断点速度相当,并且从记录窗口中浏览上百条消息要比按上百次F9轻松的多,你可以为表达式选择一个预先定义好的解释说明。你可以设置通过的次数—每次符合暂停条件时,计数器就会减一。如果通过计数在减一前,不等于零,OllyDbg就会继续执行。如果一个循环执行100次(十进制),在循环体内设置一个断点,并设置通过次数为99(十进制)。OllyDbg将会在最后一次执行循环体时暂停。
另外,条件记录断点允许你传递一个或多个命令给插件[plugins]。例如,你需要使用命令行插件改变一个寄存器的内容,然后继续执行程序。
消息断点[Message breakpoint]和条件记录断点基本相同,除了OllyDbg会自动产生一个条件,这个条件允许在窗口过程的入口处设置某些消息(比如WM_PSINT)断点,你可以在窗口[Windows]中设置它。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-41789-12.html
这件可能就这样结束了
铁汉柔情
1