OllyDbg完全教程 如何开始调试[How to start debugging session] CPU 窗口[CPU window]

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

七,如何开始调试[How to start debugging session]

最简单的方法是:运行 OllyDbg,点击菜单上的文件[File]|打开[Open],选择您想调试的程序。如果程序需要命令行参数,您可以在对话框底部的输入栏中,输入参数或者选择以前调试时输入过的一条参数。

OllyDbg 能够调试独立的DLL[stand-alone DLLs]。在这种情况下,OllyDbg 会创建并运行一个小的应用程序来加载链接库并根据您的需要调用输出函数。

如果您想重新启动上一次调试的程序,只要按一下 Ctrl+F2(这是重启程序的快捷键),这样 OllyDbg 会以同样的参数运行这个程序。另一种做法是在菜单中选择文件[File],从历史列表中选择程序。您也可以在 Windows 资源管理器中将可执行文件或 DLL 文件拖拽到 OllyDbg 中。

当然,您可以在 OllyDbg 启动时,运行指定带有运行参数的被调试程序。例如:您可以在桌面创建一个 OllyDbg 的快捷方式,右击并选择“属性”,在“快捷方式”中的“目标”中添加调试的程序的全路径。这样,您每次双击快捷方式时,OllyDbg 将自动运行被调试程序。注意:DLL文件不支持这种方式。

您可以把正在运行的进程挂接到 OllyDbg 中。在菜单中打开 文件[File]|挂接[Attach],从进程列表中选择要挂接的进程。注意:在您关闭 OllyDbg 的同时,这个进程也会被关闭。不要挂接系统进程,否则可能会导致整个操作系统的崩溃。(事实上在大多数情况下,操作系统禁止您挂接敏感进程)。

OllyDbg 可以作为即时[just-in-time]调试器。这需要在系统注册表中注册。在菜单中选择选项[Options]|即时调试[Just-in-time debugging] 并在弹出的对话框中单击按钮“设置OllyDbg为即时调试器”[Make OllyDbg just-in-time debugger]。今后,如果某个应用程序发生了非法操作,系统将提示您是否用 OllyDbg 调试这个程序。操作系统会启动 OllyDbg 并直接停在发生异常的地方。如果您选择了“挂接时不询问”[attaching without confirmation],则在即时调试时OllyDbg不会弹出询问对话框。如果想恢复成以前的即时调试器[Restore old just-in-time debuger],按相应的按钮即可。

另一种方法是把 OllyDbg 添加到与可执行文件关联的快捷菜单中(这个想法是 Jochen Gerster 提出的)。在主菜单中,选择选项[Options]|添加到资源管理器中[Add to Explorer]。以后您可以在所有的文件列表中,右击可执行文件或DLL,在快捷菜单中选择OllyDbg。这个功能会创建四个注册表键值:


HKEY_CLASSES_ROOT/exefile/shell/Open with OllyDbg
HKEY_CLASSES_ROOT/exefile/shell/Open with OllyDbg/command
HKEY_CLASSES_ROOT/dllfile/shell/Open with OllyDbg
HKEY_CLASSES_ROOT/dllfile/shell/Open with OllyDbg/command

OllyDbg能够调试控制台程序(基于文字的)。

OllyDbg不能调试.NET应用程序。.NET程序是由微软的中间语言这种伪指令组成的,或是on-the-fly to native ?6 commands编译的。

注意:如果您运行的是Windows NT、2000 或XP操作系统,您应该拥有管理员权限以便能够调试程序。。,

八,CPU 窗口[CPU window]

对于用户来说,CPU窗口在OllyDbg中是最重要的窗口。您调试自己程序的绝大部分操作都要在这个窗口中进行。它包括以下五个面板(这五个面板的大小都是可以调节的):


反汇编[Disassembler]
信息[Information]
数据[Dump]
寄存器[Registers]
栈[Stack]

按TAB键,可以切换到下一个CPU面板中(顺时针方向)。

按Shift+TAB,可以切换到前一个CPU面板(逆时针方向)。


OllyDbg完全教程 内存映射窗口[Memory map window]

十,内存映射窗口[Memory map window]内存映射窗口显示了被调试程序分配的所有内存块。因为没有标准的方法来完成这项任务,所以OllyDbg可能会把一个大的内存块分成几个部分。然而,在大多...
  • paste
  • paste
  • 2006年06月10日 08:53
  • 5732

[转]CPU体系结构CISC与RISC之争

在PC发展之初,除了成熟的CISC指令架构外,IBM没有更好的选择,原因很简单,更先进的RISC架构在1975年才出现,且只针对超级计算机领域,当时没有人意识到PC会有如此之大的发展,只是将它作为计算...
  • orz365
  • orz365
  • 2013年07月03日 17:33
  • 349

[转]CPU体系结构CISC与RISC之争

在PC发展之初,除了成熟的CISC指令架构外,IBM没有更好的选择,原因很简单,更先进的RISC架构在1975年才出现,且只针对超级计算机领域,当时没有人意识到PC会有如此之大的发展,只是将它作为计算...
  • eltaera
  • eltaera
  • 2013年07月08日 16:06
  • 416

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

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

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

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

[Android Studio 权威教程]断点调试和高级调试

好了开始写一个简单的调试程序,我们先来一个for循环 ? 1 2 3 4 5 6 7 8 for ...

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

  • 2010年05月16日 14:33
  • 7.51MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OllyDbg完全教程 如何开始调试[How to start debugging session] CPU 窗口[CPU window]
举报原因:
原因补充:

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