`

OllyDbg使用技巧总结

阅读更多

 

OllyDbg(简称od)是Win32汇编器级的分析调试器。

 

下载:

http://www.ollydbg.de/

参考资料(日文):

sp-.up.seesaa.net/image/kyozai.html

 

简单用法:

(1)打开exe

File->Open

 

(2)附到进程(假如要调试服务进程或者一些特殊运行方式的程序,

但执行暂停可能会破坏进程的处理)

File->Attach

 

(3)查找API入口表(用于下API断点)

切换模块:在反汇编窗口右键->View->Module 'XXX'

(通常是你正在调试的那个exe名称,如果没有就是说现在就在此模块上,不需要切换)

然后在反汇编窗口右键->Search for->Name(label) in current module

弹出N窗口(Names),选择一个DLL入口函数(例如MSVCRT.exit),右键执行API相关操作(最常见的是下断点或日志断点)

如果列表太长,可以粘贴到文本文件中进行搜索。

 

(4)查找API的引用

常用于API断点的添加。

照(3)所示打开N窗口后,

N窗口中右键->Find references to import

弹出R窗口(References),然后双击选择位置。

C窗口(CPU)会跳到指定的位置,并且在注释中提示该API的参数信息。例如

00401131   . 6A 30          PUSH 30                                  ; /BeepType = MB_ICONEXCLAMATION

00401133   . FF15 5C204000  CALL DWORD PTR DS:[<&USER32.MessageBeep>>; \MessageBeep

另一种方法是直接在C窗口右键->Search for All Intermodular calls打开R窗口,

然后双击直接跳到引用的地方,再执行断点等操作。

 

 

(5)日志断点

日志断点不会中断程序,而是在程序通过断点处时记录下信息,而方便分析。

在C窗口的反汇编行中右键->Breakpoint->Conditional Log

或R窗口的指定行中右键->Set log breakpoint on every command

弹出对话框,一般OK是灰色的,需要修改单选框。

例如我对运行于该汇编指令处的EBX上的字符串值感兴趣,可以

Expression输入STRING [EBX]

Pause program选择Never。

Log value of expression选择Always。

B窗口(Breakpoints)就会多出一条断点。

日志记录会输出到L窗口(Log data)

关于od的表达式用法可参考

http://hi.baidu.com/hateme_xm/blog/item/3b6d8b81271329d3bc3e1e9c.html

 

(6)断点和步进

在C窗口双击即可添加断点,然后Debug->Run运行程序。

程序中断后执行Debug->Step into/Step over进行调试,观察堆栈和寄存器的数值变化。

 

(7)修改exe内容

在C窗口中某反汇编语句上按空格,然后输入新的汇编指令。

修改后右键->Copy to executable->All modifications

弹出D窗口(File)

然后右键->Save File

另存为新的文件。

 

(8)条件断点和Trace

条件断点与断点的不同在于它是针对数据而非指令。

条件断点在Trace下有效,而在Run下无效。

添加条件断点:

Debug->Set conditon(例如:Command is one of PUSHFD)

然后Debug->Trace into

或者Debug->Animate into(动画显示)

 

(9)Trace日志

当执行Trace操作(例如Debug->Trace into),

...窗口(Run trace)会保存所有执行过的指令。

右键->Log to file保存为txt文件

用于比较两次Trace的日志以发现代码覆盖的不同。

 

(10)文本搜索

有时需要知道用户界面的某条字符串在exe的哪个位置。

方法是C窗口Alt+F10(或右键)->Search for->All referenced text strings

弹出R窗口,双击跳到引用处。

如果文本太多,可以考虑复制到记事本中搜索,或者

R窗口右键->Search for text

 

(11) etc

F9运行

Ctrl+F2结束后重新加载

(Options->Debugging options对话框->

Warn when terminating active process)

F8步进

F2断点

F7步入

Alt+B:B窗口(断点)

C窗口右面的寄存器窗格虽然没有滚动条,但是可以拖动

双击修改汇编,如果按Ctrl+F2重新加载,会变成灰色,

??每次修改应保存

??可以用右键->Backup->Load backup from file重新应用修改过的地方

Copy to executable->All Modifications

 

 

分享到:
评论

相关推荐

    ollydbg常用断点汇总

    本文将针对Ollydbg(简称OD)这款常用的调试工具,汇总一系列在实际操作中频繁使用的断点设置方法及应用场景。 #### 一、Windows API函数断点 在调试过程中,经常会遇到需要跟踪特定Windows API函数调用的情况,...

    OllyDbg中文版win7

    总结,OllyDbg中文版在Win7系统中提供了一套强大的调试工具,无论是对于软件开发者、逆向工程师还是安全研究人员,都具有极高的价值。通过熟练掌握OllyDbg的使用,我们可以深入理解程序的运行机制,发现并修复错误,...

    OllyDbg完全教程OllyDbg完全教程

    #### 五、调试技巧与高级用法 - **函数调用跟踪**:可以跟踪函数调用过程,分析函数调用的顺序及参数传递情况。 - **数据流分析**:OllyDbg能够帮助分析程序中的数据流动,包括内存读写操作、寄存器值变化等。 - **...

    ollydbg反汇编引擎源码及使用例子及归纳文档

    本文将深入探讨ollydbg的反汇编引擎,通过源码分析与实例应用,帮助读者掌握其核心功能和使用技巧。 一、反汇编引擎概述 反汇编引擎是调试器的核心部分,负责将机器语言指令转换为可读的汇编代码。ollydbg的反汇编...

    ollydbg的使用 看雪牛人翻译的

    《ollydbg的使用详解——...总结,ollydbg作为一款强大的逆向工程工具,其丰富的功能和看雪牛人的深度解析,使得它成为IT安全领域不可或缺的利器。通过熟练掌握ollydbg,我们可以更好地理解和应对各种复杂程序的挑战。

    OllyDbg_2.01.zip

    《OllyDbg 2.01:动态调试利器》 OllyDbg是一款著名的、在Windows平台上广泛使用的动态调试工具,尤其在逆向工程和恶意软件分析...对于任何对程序分析有兴趣的人来说,掌握OllyDbg的使用技巧都是不可或缺的技能之一。

    ollydbg学习资料

    本文将通过深入解析OllyDbg的基础知识,帮助读者掌握其核心概念和操作技巧。 一、OllyDbg简介 OllyDbg由OllyDbg开发者OllyDbg LP所开发,主要应用于软件调试、逆向工程和恶意软件分析。它能够让我们查看程序的内存...

    OllyDbg命令行命令+汇编指令大全

    ### 高级使用技巧 除了基本的命令外,OllyDbg还支持一些高级用法,例如通过脚本来自动化一些调试过程。下面是一些示例: - 使用`ASM`命令可以进行即时汇编: - `ASM mov eax, 1; 0x401000`:在地址0x401000处汇编...

    ollydbg 入门教程(多模式版)

    通过调试简单的程序,例如计算圆面积的程序,逐步了解ollydbg的使用流程。随着经验的积累,可以尝试更复杂的项目,如逆向工程恶意软件。 十、学习资源 除了本入门教程,还有许多在线资源和社区讨论可以帮助你深入...

    OllyDBG完美教程

    ### OllyDBG完美教程知识点详解 ...通过本文详细介绍的安装配置过程、窗口功能以及基本调试方法等内容,可以帮助用户快速掌握 OllyDBG 的使用技巧。无论是新手还是有一定经验的开发者,都能够从中获益匪浅。

    逆向分析基础 OllyDBG 入门系列(五)-消息断点及 RUN 跟踪

    本文将重点介绍如何利用OllyDBG进行消息断点设置以及如何使用RUN跟踪功能,这两个技巧在逆向分析过程中极为关键。 #### 二、消息断点的基本概念 消息断点是一种特殊的断点类型,用于在程序处理特定Windows消息时...

    用 Ollydbg 手动脱壳

    ### 使用Ollydbg进行手动脱壳 在网络安全与软件逆向工程领域中,手动脱壳是一项重要的技能。本文将通过解UPX压缩壳的过程来演示如何利用Ollydbg这一强大的调试工具来进行手动脱壳,并解释esp定律的应用。 #### 一...

    ollydbg基础知识.zip

    总结,ollydbg是强大的动态调试工具,通过学习和实践,我们可以掌握它来探索程序的内部运作,解决复杂问题,提升软件分析和调试技能。"ollydbg基础知识.pdf"文档将详细解释这些概念,并提供实际操作指导,是初学者的...

    ollydbg汉化版

    使用教程则涵盖了基本操作到高级技巧,帮助用户逐步掌握ollydbg的强大功能。 总结而言,ollydbg汉化版是软件分析和逆向工程领域中不可或缺的工具,它的汉化使得更多中文用户得以无障碍地接触和使用。通过反汇编和...

    Ollydbg郁金香插件加强版

    《Ollydbg郁金香插件加强版:深入解析与应用》 Ollydbg是一款知名的动态二进制分析...对于软件开发者、逆向工程师和安全研究人员来说,掌握郁金香插件的使用技巧,无疑能提升他们在代码分析和问题解决上的专业素养。

    OLLYDBG完全教程

    在《OLLYDBG完全教程》中,一共分为十六个小节,涵盖了从基础到高级的各个层面,帮助用户全面掌握OLLYDBG的使用技巧。以下是对每个小节可能涉及的关键知识点的概述: 1. **什么是OLLYDBG**:这部分会介绍OLLYDBG的...

    OllyDbg入门教材

    通过对上述内容的学习,我们可以更好地掌握OllyDbg的基本操作和调试技巧,为后续的软件调试和安全研究打下坚实的基础。需要注意的是,不同的OllyDbg版本可能存在差异,因此在实际应用过程中应结合具体版本进行操作。

    OD跟踪调试与技巧(外挂编)

    本文将深入探讨使用OllyDBG(简称OD)进行程序跟踪调试的技巧和方法,帮助读者更好地理解软件运行机制,提高调试效率。 #### OllyDBG简介 OllyDBG是一款强大的32位处理器反汇编器和调试器,主要用于Windows平台上...

    [安全攻防进阶篇] 六.逆向分析之OllyDbg逆向CrackMe01-02及加壳判断1

    总结,本文档是作者在网络空间安全学习过程中的分享,旨在通过实例教学逆向分析技巧。作者提醒读者,这些知识应用于合法防护,而非非法活动。同时,作者提供了相关的GitHub资源,供读者进一步学习和实践。通过这样的...

Global site tag (gtag.js) - Google Analytics