调用栈窗口包含5个栏目:地址[Address]、栈[Stack]、过程[Procedure],调用来自[Called from],框架[Frame]。
地址[Adress]栏包含栈地址,栈[Stack]栏显示了相应的返回地址或参数。
函数[Procedure](或 函数/参数[Procedure / arguments])显示了被调用函数的地址,在某些情况下,OllyDbg并不能保证该地址是正确的并会添加如下标记之一:
? 找到的入口点不可靠
可能[Maybe] OllyDbg无法找到精确的入口点,报告的地址是用启发式算法猜测的。
包含[Includes] OllyDbg无法找到入口点,仅知道该函数包含显示的地址
通过按例标题栏上的按钮或从菜单中选择“隐藏/显示参数[Hide/Show arguments]”,可以在显示或隐藏函数的参数之间切换。
调用来自[Called from]用于显示调用该函数的命令地址。
最后一栏是框架[Frame]这一栏默认是隐藏的,如果框架指针的(寄存器EBP)已知的话,则该栏用于显示这个。
当调用函数经过分析[yzed].后,栈移动会更可靠并且迅速。
十、调用树[Call tree]
调用树(快捷键:在反汇编窗口中CtrlK)利用分析[Analysis]的结果来找出指定函数过程直接或间接调用的函数列表,同时列出指定函数过程被调用的地址。为了避免由此可能造成的副作用。调用树会判断选定函数是否明确地是递归的。 “明确地”意味着它不会跟踪目标未知的调用,比如CALL EAX。如果函数过程中有未知调用,调用树将会添加标记“未知目标”。
某些函数调用将会添加如释之一:
叶子[Leaf] 不调用其他函数
纯函数[Pure] 不调用函数,不会产生副作用
单返回[RETN] 只有一个RETN 命令
系统[Sys] 系统动态链接库中的函数。系统动态链接库定义为保存在系统目录下的动态链接库。
如果想在调用树上移动,可以双击“被调用[Calledfrom]”或“调用/直接调用[Calls/Calirectly]”两栏中的地址。调用树窗口保存了移动记录(快捷键“—”和“”)。
如果被调试的程序包含几个模块,推荐你分析所有模块。Call tree 不会试图处理系统函数。
十一、选项[Options]
外观选项[Appearance options]
常规[General]
默认[Defaults]
对话框[Dialogs]
目录[Directories]
字体[Fonts]
颜色[Colours]
代码高亮[Code highlighting]
调试选项[Debugging options] (AltO)
安全[Security]
调试[Debug]
事件[Events]
异常[Exceptions]
跟踪[Trace]
自解压[SFX]
字符串[Strings]
地址[Addresses]
命令[Commands]
反汇编[Disasm]
CPU
寄存器[Registers]
栈[Stack]
分析1[Analysis 1]
分析2[Analysis 2]
分析3[Analysis 3]
即时调试[Just—in—time debugging]
添加到资源管理器[Add to Explorer]
十二、搜索[Search]
OllyDbg 允许你使用以下的搜索方式:
符号名(标签)[Symbolic name (label)]
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-41789-17.html
不听话
≧▽≦)
有导弹和相控雷迏了却不敢打仗了