吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 10389|回复: 9
收起左侧

[分享] OllyDbg 常用快捷热键(给新手看)

  [复制链接]
jxrbwwp 发表于 2013-12-6 11:26
本帖最后由 jxrbwwp 于 2013-12-6 13:24 编辑

在看Shark恒 破解教程 时,有很多吾友对教程中按键的含义不懂,我发一个常用的快捷键列表,希望对新手有点帮助。
打开一个新的可执行程序 (F3)
重新运行当前调试的程序 (Ctrl+F2)
当前调试的程序 (Alt+F2)
运行选定的程序进行调试 (F9)
暂时停止被调试程序的执行 (F12)
单步进入被调试程序的 Call 中 (F7)
步过被调试程序的 Call (F8)
跟入被调试程序的 Call 中 (Ctrl+F11)
跟踪时跳过被调试程序的 Call (Ctrl+F12)
执行直到返回 (Ctrl+F9)
显示记录窗口 (Alt+L)
显示模块窗口 (Alt+E)
显示内存窗口 (Alt+M)
显示 CPU 窗口 (Alt+C)
显示补丁窗口 (Ctrl+P)
显示呼叫堆栈 (Alt+K)
显示断点窗口 (Alt+B)
打开调试选项窗口 (Alt+O)

有的人问不全,应要求补全:
通用快捷键[Global shortcuts]  
无论当前的OllyDbg窗口是什么,这些快捷键均有效:   
Ctrl+F2 - 重启程序,即重新启动被调试程序。如果当前没有调试的程序,OllyDbg会运行历史列表[history list]中的第一个程序。程序重启后,将会删除所有内存断点和硬件断点。 译者注:从实际使用效果看,硬件断点在程序重启后并没有移除。  
Alt+F2 - 关闭,即关闭被调试程序。如果程序仍在运行,会弹出一个提示信息,询问您是否要关闭程序。  
F3 - 弹出“打开32位.EXE文件”对话框[Open 32-bit .EXE file],您可以选择可执行文件,并可以输入运行参数。  
Alt+F5 - 让OllyDbg总在最前面。如果被调试程序在某个断点处发生中断,而这时调试程序弹出一个总在最前面的窗口(一般为模式消息或模式对话框[modal message or dialog]),它可能会遮住OllyDbg的一部分,但是我们又不能移动最小化这个窗口。激活OllyDbg(比如按任务栏上的标签)并按 Alt+F5,OllyDbg将设置成总在最前面,会反过来遮住刚才那个窗口。如果您再按一下Alt+F5,OllyDbg会恢复到正常状态。 OllyDbg是否处于总在最前面状态,将会保存,在下一次调试时依然有效。当前是否处于总在最前面状态,会显示在状态栏中。  
F7 - 单步步入到下一条命令,如果当前命令是一个函数[Call],则会停在这个函数体的第一条命令上。如果当前命令是是含有REP前缀,则只执行一次重复操作。  
Shift+F7 - 与F7相同,但是如果被调试程序发生异常而中止,调试器会首先尝试步入被调试程序指定的异常处理(请参考忽略Kernel32中的内存非法访问)。  
Ctrl+F7 - 自动步入,在所有的函数调用中一条一条地执行命令(就像您按住F7键不放一样,只是更快一些)。当您执行其他一些单步命令,或者程序到达断点,或者发生异 常时,自动步入过程都会停止。每次单步步入,OllyDbg都会更新所有的窗口。所以为了提高自动步入的速度,请您关闭不必要成窗口,对于保留的窗口最好 尽量的小。按Esc键,可以停止自动步入。  
F8 - 单步步过到下一条命令。如果当前命令是一个函数,则一次执行完这个函数(除非这个函数内部包含断点,或发生了异常)。如果当前命令是含有REP前缀,则会执行完重复操作,并停在下一条命令上。  
Shift+F8 - 与F8相同,但是如果被调试程序发生异常而中止,调试器会首先尝试步过被调试程序指定的异常处理(请参考忽略Kernel32中的内存非法访问)。  
Ctrl+F8 - 自动步过,一条一条的执行命令,但并不进入函数调用内部(就像您按住F8键不放一样,只是更快一些)。当您执行其他一些单步命令,或者程序到达断点,或者 发生异常时,自动步过过程都会停止。每次单步步过,OllyDbg都会更新所有的窗口。所以为了提高自动步过的速度,请您关闭不必要成窗口,对于保留的窗 口最好尽量的小。按Esc键,可以停止自动步过。  
F9 - 让程序继续执行。

Shift+F9 - 与F9相同,但是如果被调试程序发生异常而中止,调试器会首先尝试执行被调试程序指定的异常处理(请参考忽略Kernel32中的内存非法访问)。  
Ctrl+F9 - 执行直到返回,跟踪程序直到遇到返回,在此期间不进入子函数也不更新CPU数据。因为程序是一条一条命令执行的,所以速度可能会慢一些。按Esc键,可以停止跟踪。  
Alt+F9 - 执行直到返回到用户代码段,跟踪程序直到指令所属于的模块不在系统目录中,在此期间不进入子函数也不更新CPU数据。因为程序是一条一条执行的,所以速度可能会慢一些。按Esc键,可以停止跟踪。  
Ctrl+F11 -Run跟踪步入,一条一条执行命令,进入每个子函数调用,并把寄存器的信息加入到Run跟踪的存储数据中。Run跟踪不会同步更新CPU窗口。  
F12 - 停止程序执行,同时暂停被调试程序的所有线程。请不要手动恢复线程运行,最好使用继续执行快捷键或菜单选项(像 F9)。  
Ctrl+F12 - Run跟踪 步过,一条一条执行命令,但是不进入子函数调用,,并把寄存器的信息加入到Run跟踪的存储数据中。Run跟踪不会同步更新CPU窗口。  
Esc - 如果当前处于自动运行或跟踪状态,则停止自动运行或跟踪;如果CPU显示的是跟踪数据,则显示真实数据。  
Alt+B - 显示断点窗口。在这个窗口中,您可以编辑、删除、或跟进到断点处。  
Alt+C - 显示CPU窗口。  
Alt+E - 显示模块列表[list of modules]。  
Alt+K - 显示调用栈[Call stack]窗口。  
Alt+L - 显示日志窗口。  
Alt+M - 显示内存窗口。  
Alt+O - 显示选项对话框[Options dialog]  
Ctrl+P - 显示补丁窗口。  
Ctrl+T - 打开 暂停 Run跟踪 对话框  
Alt+X - 关闭 OllyDbg。  
大多数窗口都支持以下的键盘命令:

Alt+F3 - 关闭当前窗口。  
Ctrl+F4 - 关闭当前窗口。  
F5 - 最大化当前窗口或将当前窗口大小改为正常化。  
F6 - 切换到下一个窗口。  
Shift+F6 - 切换到前一个窗口。  
F10 - 打开与当前窗口或面板相关的快捷菜单。  
左方向键 - 显示窗口左方一个字节宽度的内容。  
Ctrl+左方向键 - 显示窗口左方一栏的内容。  
右方向键 - 显示窗口右方一个字节宽度的内容  
Ctrl+右方向键 - 显示窗口右方一栏的内容   
反汇编窗口中的快捷键[Disassembler shortcuts]  
当CPU窗口中的反汇编面板[Disassembler pane]处于激活状态时,您可以使用以下快捷键:  
回车键 - 将选中的命令添加到命令历史[command history]中,如果当前命令是一个跳转、函数或者是转换表的一个部分,则进入到目的地址。  
退格键 - 移除选中部分的自动分析信息。如果分析器将代码误识别为数据,这个快捷键就非常有用。请参考解码提示[decoding hints].  
Alt+退格键 - 撤消所选部分的修改,以备份数据的相应内容替换所选部分。仅当备份数据存在且与所选部分不同时可用。  
Ctrl+F1 -如果API帮助文件已经选择,将打开与首个选择行内的符号名相关联的帮助主题。  
F2 -在首个选择的命令上开关INT3 断点[Breakpoint],也可以双击该行第二列。  
Shift+F2 -在首个选择命令设置条件断点,参见忽略Kernel32中内存访问异常[Ignore memory access violations in Kernel32]。  
F4 -执行到所选行,在首个选择的命令上设置一次性断点,然后继续执行调试程序,直到OllyDbg捕获到异常或者停止在该断点上。在程序执行到该命令之前,该一次性断点一直有效。如有必要,可在断点窗口Breakpoints window]中删除它。  
Shift+F4 -设置记录断点(一种条件断点,当条件满足时一些表达式的值会记录下来), 详情参见断点[Breakpoint]。  
Ctrl+F5 -打开与首个选择的命令相对应的源文件。  
Alt+F7 -转到上一个找到的参考。  
Alt+F8 -转到下一个找到参考。  
Ctrl+A -分析当前模块的代码段。  
Ctrl+B - 开始二进制搜索。  
Ctrl+C -复制所选内容到剪贴板。复制时会简单地按列宽截断不可见内容,如果希望排除不需要的列,可把这些列的宽度调整到最小。  
Ctrl+E -以二进制(十六进制)格式编辑所选内容。  
Ctrl+F -开始命令搜索。  
Ctrl+G -转到某地址。该命令将弹出输入地址或表达式的窗口。该命令不会修改 EIP。  
Ctrl+J -列出所有的涉及到该位置的调用和跳转,在您用这个功能之前,您必须使用分析代码功能。  
Ctrl+K - 查看与当前函数相关的调用树[Call tree]。在您用这个功能之前,您必须使用分析代码功能。  
Ctrl+L - 搜索下一个,重复上一次的搜索内容。  
Ctrl+N - 打开当前模块的名称(标签)列表。  
Ctrl+O - 扫描object文件。扫描Object文件。该命令会显示扫描Object文件对话框,您可以在该对话框中选择Object文件或者lib文件,并扫描这个文件,试图找到在实际代码段中用到的目标模块。  
Ctrl+R -搜索所选命令的参考。该命令扫描激活模块的全部可执行代码,以找到涉及到首个选中的命令的全部相关参考(包括:常量、跳转及调用),您可以在参考中使用快捷键 Alt+F7 和 Alt+F8来浏览这些参考。为便于您使用,被参考的命令也包含在该列表中。  
Ctrl+S -命令搜索。该命令显示命令查找[Find command]对话框供您输入汇编命令,并从当前命令开始搜索。  
星号[Asterisk](*) -转到原始位置(激活线程的EIP处)Ctrl+星号(*) - 指定新的起始位置,设置当前所选线程的EIP为首个选择字节的地址。您可以在选择EIP并撤消该操作。  
加号[Plus](+) -如果run跟踪[run trace] 没有激活,则根据命令历史[command history]跳到下一条运行过命令的地方;否则跳到Run跟踪的下一个记录。  
Ctrl+加号 - 跳到前一个函数开始处。(注意只是跳到,并不执行)  
减号[Minus](-) - 如果run跟踪[run trace] 没有激活,则根据命令历史[command history]跳到前一条运行过命令的地方;否则跳到Run跟踪的前一个记录。  
Ctrl+减号 - 跳到下一个函数开始处。(注意只是跳到,并不执行)  
空格[Space] - 修改命令。您可在显示对话框中以汇编语言修改实际指令或输入新指令,这些指令将替换实际代码,您也可以在想要修改的指令处双击鼠标。  
冒号[Colon](:) - 添加标签。显示添加标签窗口[Add label]或修改标签窗口[Change label],您可在此输入与首个选择的命令中的第一个字节相关联的标签(符号名)。注意,在多种编程语言中,冒号可以是标签的一部分。  
分 号[Semicolon](;) - 添加注释[comment]。显示添加注释窗口[Add label]或修改注释窗口[Change label],您可在此输入与首条所选命令的第一个字节相关联的注释(注释串会显示在最后一列中)。注意,多种汇编语言使用分号作为注释开始。您也可以在 注释列双击需要注释的命令行。

免费评分

参与人数 1热心值 +1 收起 理由
hlm2003 + 1 已答复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Aurelion 发表于 2013-12-6 11:30
Ctrl+X  复制当前代码内存地址
nicegz 发表于 2013-12-6 11:36
781536564 发表于 2013-12-6 11:36
这个,不错,有事看老大的贴,经常直接说F?,然新手不知道在哪,
sunset920 发表于 2013-12-6 11:40
我先收藏咯   新手真心很需要这个  比如那个ctrl g  太好用了
难得糊涂 发表于 2013-12-6 12:38
有没有全的快捷键组合
akmissxt 发表于 2013-12-6 13:09
lz,请问用od载入程序后没有了“文件被压缩什么。。”那个提示框,该怎么调出来?
 楼主| jxrbwwp 发表于 2013-12-6 14:35
难得糊涂 发表于 2013-12-6 12:38
有没有全的快捷键组合

应你的要求补充了全部快捷键
hlm2003 发表于 2013-12-6 21:37
真是及时雨的好帖
rainny2012 发表于 2014-10-8 08:52
对新手真是太好了 带有详细的解释 不错 好好收藏 每天一看 直到熟记于心
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-18 01:49

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表