注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

刺马的博客

 
 
 

日志

 
 

OllyDbg教程(转帖)   

2009-10-08 12:59:29|  分类: Windows |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

      预备知识

大多数壳都有一个共同的特点。在壳准备开始解压时都要执行PUSHAD,当壳解压

完时都要调用POPAD。到底PUSHAD和POPAD是什么干什么用的呢?其实PUSHAD是用来将

所有普通寄存器顺序进栈的指令,POPAD是所有普通寄存器顺序出栈指令。POPAD的出

栈顺序和PUSHAD相反。壳为了保护寄存器,便在解压前将所有寄存器进栈保护起来,

当解压完成后又将寄存器出栈,恢复其原貌,并将IP设置为原程序的OEP。这样我们就

可以通过这个特点快速脱掉多种软件的壳。

32位程序级的调试器--ollyDbg,这个东东操作简便,提示信息量大,介绍一些简单的操作

快捷键:

F3,装入程序

F8,单步执行,不进入call

F9 (运行)

F7,单步执行,进入call

CTRL+F9,相当于trw2000的F12

ALT+F9,相关于trw2000的pmodule

F2,设置断点(相当于trw2000的F9)

CTRL+N(当前模块中的名称)

F12(暂定)

CTRL+F12(重新运行)

CTRL+F11(跟踪进入)

CTRL+T(设置条件)

CTRL+F7(自动步入)

CTRL+F8(自动步过)

CTRL+F9(执行到返回)

另转的快捷键使用方法如下

OllyDbg 常用快捷热键

聆风听雨整理

===============================================================

打开一个新的可执行程序 (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)

 

窗口:

左上:代码区

左下:内存数据

右上:寄存器

右下:stack区

以下命令适用于 OllyDbg 的快捷命令栏插件(显示于程序的状态栏上方)

========================================================

CALC

判断表达式

WATCH

添加监视表达式

AT / FOLLOW

Disassemble at address

在地址进行反汇编

ORIG

Disassemble at EIP

反汇编于 EIP

DUMP

Dump at address

在地址转存

DA

Dump as disassembly

转存为反汇编代码

DB

Dump in hex byte format

转存在十六进制字节格式

DC

Dump in ASCII format

转存在 ASCII 格式

DD

Dump in stack format

转存在堆栈格式

DU

Dump in UN

ICODE format

转存在 UNICODE 格式

DW

Dump in hex word format

转存在十六进制字词格式

STK

Go to address in stack

前往堆栈中的地址

AS + 地址 + 字符串

Assemble at address

在地址进行汇编

L + 地址 + 字符串

Label at address

在地址进行标号

C + 地址 + 字符串

Comment at address

在地址进行注释

BP

Break with condition

使用条件中断

BPX

Break on all calls

中断在全部调用

BPD

Delete break on all calls

清除位于全部调用的断点

BC

Delete breakpoint

清除断点

MR

Memory breakpt on access

内存断点于访问时

MW

Memory breakpt on write

内存断点于写入时

MD

Remove memory breakpoint

清除内存断点

HR

HW break on access

硬件中断在访问

HW

HW break on write

硬件中断在写入

HE

HW break on execution

硬件中断在执行

HD

Remove HW breakpoint

清除硬件断点

STOP

Pause execution

暂停执行

PAUSE

PAUSE

RUN

Run program

运行程序

Run till address

运行到地址

GE

Run and pas

s exception

运行和通过例外

SI

Step into

步入

SO

Step over

步过

TI

Trace in till address

跟踪进入直到地址

TO

Trace over till address

跟踪步过直到地址

TC

Trace in till condition

跟踪进入直到条件

TOC

Trace over till condition

跟踪步过直到条件

TR

Till return

直到返回

TU

Till user code

直到用户代码

LOG

View Log window

查看记录窗口

MOD

View Modules window

查看模块窗口

MEM

View Memory window

查看内存窗口

CPU

View CPU window

查看 CPU 窗口

CS

View Call Stack

查看 Call 堆栈

BRK

View Breakpoints window

查看断点窗口

OPT

Open Options

打开选项

EXIT / QUIT

Quit OllyDbg

退出 OllyDbg

OPEN

Open executable file

打开可执行文件

CLOSE

Close executable

关闭程序

RST

Restart current program

恢复当前程序

HELP

Help on API function

API 函数的帮助

ASM

Assemble (if command needs it's own addr

es, \"ASM COMMAND;ADDRESS\")

汇编 (如果命令需要自身的地址 \"ASM COMMAND;ADDRESS\")

DASM

Disassemble immediate opcode

反汇编直接的机器码

FR

Find reference to selected command/address

查找参考到选定的命令/地址

AC

Analyse code

分析代码

SN

Search for Name(label) in current module

在当前模块中搜索名称(标号)

SOB

Scan object files

扫描项目文件

网友最新评论

别爱我我没钱 - [2005-8-20 16:52]

OllyDbg

   记住:工具栏的所有功能都能在菜单栏里找到,工具栏是菜单栏的快捷按钮(废话!)

各项详细功能我们在下面说!

   再往下看有四个窗口他们是代码窗(左上),寄存器窗口(右上),内存窗口(左下)和堆栈窗口(右下)

2*菜单栏各项命令功能

*文件(F)----这些命令用说吗?

       |____注意**该菜单的下部有你上次打开的纪录,该纪录保存有你上次未清除的断点**注意**

*查看(V)------这个菜单我只介绍一下我常用的,别的我不会!:-)

       |____执行模块(快捷键ALT+E):查看该程序使用的动态连接库(我的理解)

;|____断点(快捷键ALT+B):这个是查看你所有的断点,(有时自己设到哪里都忘了,可以看一下)起到一个辅助功能.

       我就会这么多!:-(

*调试(D)-------这个菜单是关键,不明白你就别调试软件了!也只说常用的!

       |_______运行(F9)加载程序后,运行!

       | 

       |_______暂停(F12)

       |

       |_______单步进入(F7)遇见CALL就进!进入该子程!行话:"跟进去"

       |

       |______单步跳过(F8)遇见CALL不进去!不去管子程的内部!第一次粗跟的时候常用!

       |

       |______执行到返回(ALT+F9)就是执行到该子程的返回语句!

别爱我我没钱 - [2005-8-20 16:57]

关于快捷键,我找的并不是很全,欢迎GGJJ们补充,还有在使用OD时候的心得还有使用技巧,也希望能给予补充,以便以后能让我们这些菜鸟级的人物方便参考查询.....

别爱我我没钱 - [2005-8-20 17:41]

Ctrl+F2---OllyDbg重置,重新开始调试。如果没有活动程序,OllyDbg装入历史列表中的第一个程序。OllyDbg重置会释放内存移除硬断点。

Alt+F2--关闭被调试的程序。如

;|____断点(快捷键ALT+B):这个是查看你所有的断点,(有时自己设到哪里都忘了,可以看一下)起到一个辅助功能.

       我就会这么多!:-(

*调试(D)-------这个菜单是关键,不明白你就别调试软件了!也只说常用的!

       |_______运行(F9)加载程序后,运行!

       | 

       |_______暂停(F12)

       |

       |_______单步进入(F7)遇见CALL就进!进入该子程!行话:"跟进去"

       |

       |______单步跳过(F8)遇见CALL不进去!不去管子程的内部!第一次粗跟的时候常用!

       |

       |______执行到返回(ALT+F9)就是执行到该子程的返回语句!

别爱我我没钱 - [2005-8-20 16:57]

关于快捷键,我找的并不是很全,欢迎GGJJ们补充,还有在使用OD时候的心得还有使用技巧,也希望能给予补充,以便以后能让我们这些菜鸟级的人物方便参考查询.....

别爱我我没钱 - [2005-8-20 17:41]

Ctrl+F2---OllyDbg重置,重新开始调试。如果没有活动程序,OllyDbg装入历史列表中的第一个程序。OllyDbg重置会释放内存移除硬断点。

Alt+F2--关闭被调试的程序。如

程以停止程序执行。最好用继续键和菜单命令(像F9)恢复执行线程,而不要用其它手动方法恢复。

Ctrl+F12--run trace over,一步一步执行程序,不进入函数调用,记录寄存器内容。Run trace不重绘CPU窗口。

ESC--如果animation或跟踪正在进行,将被终止。如果CPU窗口显示跟踪时的数据,此时转为显示实际数据。

Alt+B--打开或恢复Breakpoint窗口。这里可以编辑,删除和观察断点。

Alt+C--打开或恢复CPU窗口。

Alt+E--打开或恢复模块列表

Alt+E--打开或恢复Call stack窗口。

Alt+L--打开或恢复Log窗口。

Alt+M--打开或恢复Memory窗口。

Alt+O--打开Option对话框

Ctrl+P--打开Patch窗口。

Ctrl+T--打开Pause run trace对话框

Alt+X-中断OllyDbg。

多数窗口可以使用下列快捷键:

Alt+F3--关闭活动窗口。

Ctrl+F4--关闭活动窗口。

F5--最大化或恢复活动窗口。

F6--激活下一个窗口。

Shift+F6--激活前一个窗口。

F10--打开激活窗口或面板的右键菜单。

LeftArrow--左移一个字符。

Ctrl+LeftArrow--左移一行。

RightArrow--右移一个字符。

Ctrl+RightArrow--右移一行。

  评论这张
 
阅读(108)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018