2018-04-29 21:21:55 +07:00
|
|
|
|
# 2.3.2 OllyDbg 调试器
|
2018-05-21 11:06:54 +07:00
|
|
|
|
|
|
|
|
|
- [快捷键](#快捷键)
|
2018-05-22 14:21:13 +07:00
|
|
|
|
- [命令行插件](#命令行插件)
|
2018-05-21 11:06:54 +07:00
|
|
|
|
- [参考资料](#参考资料)
|
|
|
|
|
|
|
|
|
|
## 快捷键
|
2018-08-05 16:43:10 +07:00
|
|
|
|
|
2018-06-02 13:52:30 +07:00
|
|
|
|
- `Ctrl`+`F1`:打开与所选行内符号相关的 API 帮助文档。
|
|
|
|
|
- `F2`:在光标选定位置按 F2 键设置或取消断点。
|
|
|
|
|
- `Shift`+`F2`:在首个选择命令设置条件断点。
|
|
|
|
|
- `Ctrl`+`F2`:重新启动被调试程序。
|
|
|
|
|
- `F4`:运行到光标选定位置处暂停。
|
|
|
|
|
- `Shift`+`F4`:设置记录断点。
|
|
|
|
|
- `F5`:最大化当前窗口。
|
|
|
|
|
- `Ctrl`+`F5`:打开与首个选择的命令相对应的源文件。
|
|
|
|
|
- `Alt`+`F5`:让 OllyDbg 窗口总在最前面。
|
|
|
|
|
- `F6`:切换到下一个窗口。
|
|
|
|
|
- `Shift`+`F6`:切换到前一个窗口。
|
|
|
|
|
- `F7`:单步步入:每次执行一条指令,遇到 call 等子程序时进入其中。
|
|
|
|
|
- `Shift`+`F7`:与 F7 相同,但当被调试程序发生异常而中止时,调试器首先尝试步入被调试程序指定的异常处理。
|
|
|
|
|
- `Ctrl`+`F7`:自动步入,在所有的函数调用中一条一条地执行命令。
|
|
|
|
|
- `Alt`+`F7`:转到上一个找到的参考。
|
|
|
|
|
- `F8`:单步步过,每次执行一条指令,遇到 call 等子程序时不进入其中。
|
|
|
|
|
- `Shift`+`F8`:与 F8 相同,但当被调试程序发生异常而中止时,调试器首先尝试步过被调试程序指定的异常处理。
|
|
|
|
|
- `Ctrl`+`F8`:自动步过,一条一条执行命令,但不进入函数内部调用。
|
|
|
|
|
- `Alt`+`F8`:转到下一个找到的参考。
|
|
|
|
|
- `F9`:运行,被调试软件继续运行,直到遇到下一个断点。
|
|
|
|
|
- `Shift`+`F9`:与 F9 相同,但当被调试程序发生异常而中止时,调试器首先尝试执行被调试程序指定的异常处理。
|
|
|
|
|
- `Ctrl`+`F9`:执行到返回,在执行到一个 ret 指令时暂停,常用于从当前函数快速返回到上一个函数。
|
|
|
|
|
- `Alt`+`F9`:执行到用户代码,可用于从系统部分快速返回到被调试程序部分。
|
|
|
|
|
- `F10`:打开与当前窗口或面板相关的快捷菜单。
|
|
|
|
|
- `Ctrl`+`F11`:Run 跟踪步入,一条一条执行命令,进入子函数调用,并把寄存器信息加入到 Run 跟踪的存储数据中。
|
|
|
|
|
- `F12`:停止执行,暂停所有线程。
|
|
|
|
|
- `Ctrl`+`F12`:Run 跟踪步过,一条一条执行命令,不进入子函数调用,并把寄存器信息加入到 Run 跟踪的存储数据中。
|
|
|
|
|
- `Alt`+`F3`:关闭当前窗口。
|
|
|
|
|
- `Alt`+`B`:显示断点窗口。
|
|
|
|
|
- `Alt`+`C`:显示 CPU 窗口。
|
|
|
|
|
- `Alt`+`E`:显示模块列表。
|
|
|
|
|
- `Alt`+`K`:显示调用栈。
|
|
|
|
|
- `Alt`+`L`:显示日志窗口。
|
|
|
|
|
- `Alt`+`M`:显示内存窗口。
|
|
|
|
|
- `Alt`+`O`:显示选项对话框。
|
|
|
|
|
- `Alt`+`Backspace`:撤销对所选部分的修改。
|
|
|
|
|
- `Ctrl`+`A`:分析当前模块的代码段。
|
|
|
|
|
- `Ctrl`+`B`:开始二进制搜索。
|
|
|
|
|
- `Ctrl`+`E`:以十六进制格式编辑所选内容。
|
|
|
|
|
- `Ctrl`+`F`:开始命令搜索。
|
|
|
|
|
- `Ctrl`+`G`:转到某地址。
|
|
|
|
|
- `Ctrl`+`J`:列出所有的涉及到该位置的调用和跳转。
|
|
|
|
|
- `Ctrl`+`K`:查看与当前函数相关的调用树。
|
|
|
|
|
- `Ctrl`+`L`:搜索下一个。
|
|
|
|
|
- `Ctrl`+`N`:打开当前模块的名称列表。
|
|
|
|
|
- `Ctrl`+`O`:扫描对象文件。
|
|
|
|
|
- `Ctrl`+`P`:显示补丁窗口。
|
|
|
|
|
- `Ctrl`+`R`:搜索所选命令的参考。
|
|
|
|
|
- `Ctrl`+`S`:命令搜索。
|
|
|
|
|
- `Ctrl`+`T`:打开“暂停Run跟踪”对话框。
|
|
|
|
|
- `Esc`:停止自动执行或跟踪。
|
|
|
|
|
- `Enter`:将选中的命令添加到命令历史,如果当前命令是一个跳转或者函数,则进入到目的地址。
|
|
|
|
|
- `Backspace`:如果分析器将代码误识为数据,可以将选中部分的自动分析信息移除。
|
|
|
|
|
- *:转到原始位置
|
|
|
|
|
- `Ctrl`+`*`:指定新的起始位置。
|
|
|
|
|
- `+`:如果 Run 跟踪没有激活,则根据历史命令跳到下一条运行过命令的地方;否则跳到 Run 跟踪的下一个记录。
|
|
|
|
|
- `Ctrl`+`+`:跳到前一个函数的开始处。
|
|
|
|
|
- `-`:如果 Run 跟踪没有激活,则根据历史命令跳到前一条运行过命令的地方;否则跳到 Run 跟踪的前一个记录。
|
|
|
|
|
- `Ctrl`+`-`:跳到下一个函数的开始处。
|
|
|
|
|
- `Space`:修改命令。
|
|
|
|
|
- `:`:添加标签。
|
|
|
|
|
- `;`:添加注释。
|
2018-05-22 14:21:13 +07:00
|
|
|
|
|
|
|
|
|
## 命令行插件
|
2018-05-21 11:06:54 +07:00
|
|
|
|
|
|
|
|
|
## 参考资料
|
2018-08-05 16:43:10 +07:00
|
|
|
|
|
|
|
|
|
- <http://www.ollydbg.de/>
|