OllyDbg完全教程 复制到剪切板[Copy to clipboard] 调用栈[Call stack] 调用树[Call tree]

转载 2006年06月10日 08:57:00

十四,复制到剪切板[Copy to clipboard]

整行[Whole line] -全部行--以多行文本的形式并带注释将所选记录复制到剪切板。如果在复制时想排除某个栏目,可以将该栏的宽度置为最小(栏目的残留部分将变灰)。

整个表格[Whole table] - 整个表格--以多行文本的形式将整个内存映象复制到剪切板,该文本的第一行包含窗口标题(“内存映射[Memory map]”),第二行是栏目标题,所有后继行是内存数据记录。复制将保持栏目的宽度。如果在复制时想排除某些栏目,可以将该栏的宽度置为最小(栏目的残留部分将变灰)。

十五,调用栈[Call stack]

调用栈窗口(快捷键:Alt+K)根据选定线程的栈,尝试反向跟踪函数调用顺序并将其显示出来,同时包含被调用函数的已知的或隐含的参数。如果调用函数创建了标准的堆栈框架(PUSH EBP; MOV EBP,ESP),则这个任务非常容易完成。现代的优化编译器并不会为栈框架而操心,所以OllyDbg另辟蹊径,采用了一个变通的办法。例如,跟踪代码到下一个返回处,并计算其中全部的入栈、出栈,及 ESP 的修改。如果不成功,则尝试另外一种办法,这个办法风险更大,速度也更慢:移动栈,搜索所有可能的返回地址,并检查这个地址是否被先前的已分析的命令调用。如果还不行,则会采用启发式搜索。栈移动[Stack Walk]可能会非常慢。OllyDbg 仅在调用栈窗口打开时才会使用。

调用栈窗口包含5个栏目:地址[Address]、栈[Stack]、过程[Procedure],调用来自[Called from],框架[Frame]。地址[Adress]栏包含栈地址,栈[Stack]
栏显示了相应的返回地址或参数值。

函数[Procedure](或 函数/参数[Procedure / arguments])显示了被调用函数的地址,在某些情况下,OllyDbg并不能保证该地址是正确的并会添加如下标记之一:

? 找到的入口点不可靠
可能[Maybe] OllyDbg无法找到精确的入口点,报告的地址是用启发式算法猜测的。
包含[Includes] OllyDbg无法找到入口点,仅知道该函数包含显示的地址
通过按例标题栏上的按钮或从菜单中选择“隐藏/显示参数[Hide/Show arguments]”,可以在显示或隐藏函数的参数之间切换。

调用来自[Called from]用于显示调用该函数的命令地址。最后一栏是框架[Frame]这一栏默认是隐藏的,如果框架指针的值(寄存器EBP)已知的话,则该栏用于显示这个值。

当调用函数经过分析[analyzed].后,栈移动会更可靠并且迅速。

十六,调用树[Call tree]

调用树(快捷键:在反汇编窗口中Ctrl+K)利用分析[Analysis]的结果来找出指定函数过程直接或间接调用的函数列表,同时列出指定函数过程被调用的地址。为了避免由此可能造成的副作用。调用树会判断选定函数是否明确地是递归的。“明确地”意味着它不会跟踪目标未知的调用,比如CALL EAX。如果函数过程中有未知调用,调用树将会添加标记“未知目标”。

某些函数调用将会添加如下注释之一:


叶子[Leaf] 不调用其他函数
纯函数[Pure] 不调用函数,不会产生副作用
单返回[RETN] 只有一个RETN 命令
系统[Sys] 系统动态链接库中的函数。系统动态链接库定义为保存在系统目录下的动态链接库。
如果想在调用树上移动,可以双击“被调用[Called from]”或“调用/直接调用[Calls/Calls directly]”两栏中的地址。调用树窗口保存了移动记录(快捷键“-”和“+”)。

如果被调试的程序包含几个模块,推荐您分析所有模块。Call tree 不会试图处理系统函数。


相关文章推荐

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

[转载]UIImage的剪切,尺寸缩小、压缩、添加水印

原文地址:http://blog.csdn.net/u012890196/article/details/42123263UIImage *image = [UIImage imageNamed:@"...

局域网共享 [图解] 教程.doc

  • 2011年04月27日 19:42
  • 6.2MB
  • 下载

GHOST 装双系统[详细图解教程]

  • 2010年05月16日 14:33
  • 7.51MB
  • 下载

OllyDbg完全教程 单步执行与自动执行[Step-by-step execution and animation] Hit跟踪[Hit trace]

二十,单步执行与自动执行[Step-by-step execution and animation] 您可以通过按 F7(单步步入)或 F8(单步步过),对程序进行单步调试。这两个单步执行操作的...

[授权发表]源码分析:动态分析 C 程序函数调用关系

上篇《静态分析 C 程序函数调用关系图》 介绍了 CallGraph 静态分析 C 语言程序的函数调用,该篇继续分析源码,不过是分析 C 程序运行时的函数调用关系,所以谓之动态分析,主要讲 Gprof...

Nero 2014 Platinum[破解及说明]

  • 2016年08月14日 12:21
  • 6.5MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OllyDbg完全教程 复制到剪切板[Copy to clipboard] 调用栈[Call stack] 调用树[Call tree]
举报原因:
原因补充:

(最多只允许输入30个字)