视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
破解入门--5. OllyDbg简介及常用命令
2025-09-29 17:12:52 责编:小OO
文档
破解入门--5. OllyDbg简介及常用命令

By coldstar On 2009-09-25, 4:25 PM | Category: 安全相关 | Comments: 0 

程序界面

 

反汇编窗口

在反汇编器中双击以下的栏或选项完成相应操作:

· 地址栏:      显示相对被单击地址的地址;再次双击其地址返回到标准地址模式。

· 十六进制转存栏:触发设置无条件断点。

· 反汇编命令栏: 调用汇编器(可以直接修改汇编代码)。

· 注释栏:       允许你增加或编辑与该行汇编命令相关性的注释。

 

常用快捷键

Alt+E    → Modules窗口,查找输入函数 

Ctrl+N   → 查找名称标志,选择你要下断的内容 

Shift+F9 → 强制继续执行跟踪或称拦截信息步进跟踪 

F12 → 暂时停止

F10 → 打开反汇编选项菜单

F9  → 运行键

F8  → 单步跟踪结束

F7  → 单步跟踪

F3  → 打开快捷键

F2  → 下断点快捷键

Ctrl+F9 → 返回到跟踪 

Ctrl+F8 → 自动步进扫描,按F12可停止

Ctrl+F7 → 同上,功能略有不同

Ctrl+F6 → 回到OL主窗口

Ctrl+F2 → 重新开始

Art+F2  → 结束跟踪

Enter   → 进制转换计算

Art+L   → 打开日志窗口

Art+C   → 快速回到程序入口

Ctrl+S   → 打开查找命令次序窗口

Shift+F2 → 打开附加选项窗口

Shift+F4 → 打开条件对话窗

Ctrl+E   → 编辑机器码

Ctrl+G   → 输入跟随地址 

Space    → 填充或修改汇编内容(NOP修改) 

OD的支持的命令

表达式

CALC 表达式 -------------计算表达式的值 

? 表达式  --------------同上 

表达式 ---------------  (第一个字符不能是字母)同上 

WATCH表达式------------- 添加监视 

W 表达式 ---------------同上 

反汇编器

AT 表达式-------------  在反汇编中跟随 

FOLLOW--------------- 表达式 同上 

ORIG ----------------前往实际的 EIP 

* ------------------同上 

转存和堆栈

D 表达式----------- --- 在转存中跟随 

DUMP 表达式 -------------同上 

DA [表达式]------- ------转存为汇编格式 

DB [表达式] -------------转存为十六进制(hex)字节格式 

DC [表达式] -------------作为ASCII 文本转存 

DD [表达式] -------------作为地址(堆栈格式)转存 

DU [表达式] -------------作为 UNICODE 文本转存 

DW [表达式]------------- 转存为十六进制(hex)字格式 

STK 表达式-------------- 在堆栈中跟随 

汇编

A 表达式 [,命令]----------- 在地址处汇编

标号和注释

L 表达式, 标号 ------------为地址指派符号标号 

C 表达式, 注释 ------------在地址处作注释 

断点命令

BP 表达式 [,条件] -----------在地址处设置 INT3 断点

BPX 标号 ----------------在当前模块内部的每个调用外部'标号'处设置断点

BC 表达式 --------------- 删除地址处的断点

MR 表达式1 [,表达式2] ---------设置访问范围的内存断点

MW 表达式1 [,表达式2] ---------设置写入范围的内存断点

MD -------------------移除内存断点

HR 表达式 --------------- 在访问地址处设置一个字节的硬件断点

HW 表达式 --------------- 在写入地址处设置一个字节的的硬件断点

HE 表达式 --------------- 在执行地址处设置硬件断点

HD [表达式] -------------- 移除地址处的硬件断点

跟踪命令

STOP ----------------- 暂停执行 

PAUSE -----------------同上 

RUN ------------------运行程序 

G [表达式] ---------------运行到地址处 

GE [表达式] -------------- 跳过意外的句柄并运行到地址处 

S ------------------- 单步进入

SI------------------- 同上

SO -------------------单步跳过

T [表达式] ---------------跟踪进入到地址处

TI [表达式] -------------- 同上

TO [表达式] -------------- 跟踪跳过到地址处

TC 条件 -----------------跟踪进入到条件处

TOC 条件 -----------------跟踪跳过到条件处

TR --------------------执行到返回

TU --------------------执行到用户代码

ollydbg窗口

LOG -------------------查看日志窗口

MOD -------------------查看可执行模块

MEM -------------------查看内存窗口

CPU -------------------查看 CPU 窗口

CS --------------------查看调用堆栈

BRK --------------------查看断点窗口

OPT --------------------编辑选项

杂项命令

EXIT -------------------关闭 OllyDbg

QUIT -------------------同上

OPEN [文件名] -------------- 打开待调试的可执行文件

CLOSE ------------------ 关闭调试的程序

RST ------------------- 重新载入当前程序

HELP -------------------显示本帮助

HELP OllyDbg -------------- 显示 OllyDbg 帮助

HELP API函数帮助完整文件名 --------显示 API

 

1.要从键盘上选择多行,按Shift键Up/Down箭头或者PgDn键;一个字节一个字节滚动反汇编命令,按Ctrl键并按Up/Down箭头;

 

2.如果要修改多处代码,可以在每次修改后的代码处(拖动鼠标可以选取多行)右击选择复制到可执行文件,最后一起使用复制文件功能保存到文件;

 

3.让OD显示MFC42.DLL中的函数:打开Debug(调试)\\Select import libraries(选择导入库),单击弹出的对话框中Add(添加),在弹出的对话框中选择“MFC42.LIB”并打开,重新载入MFC程序即可;

 

4.让OD轻松躲过ANTI:在“X语言”开启后运行OD,并用Attach(附加)系上它就可以轻松通过检查,而且在OD系上它后仍然可以用CTRL+A进行分析;

 

5.轻松对付调用MessageBoxA以及类似的模态对话框的程序:首先用OD加载目标程序,如果不能加载用上面的方法“Attach”目标程序;然后,F9运行,并且有意让目标程序显示MessageBox,然后切换到OD中,F12暂停,如:

0041201F |> 53 PUSH EBX ; /Style

00412020 |. 57 PUSH EDI ; |Title

00412021 |. FF75 08 PUSH [ARG.1] ; |Text

00412024 |. FF75 F4 PUSH [LOCAL.3] ; |hOwner

00412027 |. FF15 A8534100 CALL DWORD PTR DS:[4153A8] ; \\MessageBoxA 

0041202D |. 85F6 TEST ESI, ESI ;  //停在此处

0041202F |. 8BF8 MOV EDI, EAX 

00412031 |. 74 05 JE SHORT 1551-CRA.00412038 

F8单步一下切换到MessageBox中,确认被OD中断。可以看见上面的代码41201F处有一个>,说明可以从某段代码跳转到此处,选择41201F这一行,在Information栏看见一句“JUMP FROM 412003”,右键选择GO TO JUMP FROM 412003回到412003,一般都是条件跳转,上面的内容就是比较的地方啦。

 

6.使用OD的Track(跟踪)功能:载入目标程序,在Debug(调试)中选择Open or clear run track(打开或清除run跟踪),然后就可以用CTRL+F11或CTRL+F12开启Track into和Track over了。当我们暂停程序的时候,可以用小键盘上的“+”,“-”,“*”来控制TRACK功能。

“Track into”和运行类似,但是记录所有指令以及寄存器变化。并且会自动进入所有的CALL中

“Track over”和“Track into”类似,但是不进入CALL

“+”用来显示TRACK缓冲区中的下一条指令

“-”用来显示TRACK缓冲区中的上一条指令

“*”用来发返回当前指令下载本文

显示全文
专题