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(简称OD)这款常用的调试工具,汇总一系列在实际操作中频繁使用的断点设置方法及应用场景。 #### 一、Windows API函数断点 在调试过程中,经常会遇到需要跟踪特定Windows API函数调用的情况,...
总结,OllyDbg中文版在Win7系统中提供了一套强大的调试工具,无论是对于软件开发者、逆向工程师还是安全研究人员,都具有极高的价值。通过熟练掌握OllyDbg的使用,我们可以深入理解程序的运行机制,发现并修复错误,...
#### 五、调试技巧与高级用法 - **函数调用跟踪**:可以跟踪函数调用过程,分析函数调用的顺序及参数传递情况。 - **数据流分析**:OllyDbg能够帮助分析程序中的数据流动,包括内存读写操作、寄存器值变化等。 - **...
本文将深入探讨ollydbg的反汇编引擎,通过源码分析与实例应用,帮助读者掌握其核心功能和使用技巧。 一、反汇编引擎概述 反汇编引擎是调试器的核心部分,负责将机器语言指令转换为可读的汇编代码。ollydbg的反汇编...
《ollydbg的使用详解——...总结,ollydbg作为一款强大的逆向工程工具,其丰富的功能和看雪牛人的深度解析,使得它成为IT安全领域不可或缺的利器。通过熟练掌握ollydbg,我们可以更好地理解和应对各种复杂程序的挑战。
《OllyDbg 2.01:动态调试利器》 OllyDbg是一款著名的、在Windows平台上广泛使用的动态调试工具,尤其在逆向工程和恶意软件分析...对于任何对程序分析有兴趣的人来说,掌握OllyDbg的使用技巧都是不可或缺的技能之一。
本文将通过深入解析OllyDbg的基础知识,帮助读者掌握其核心概念和操作技巧。 一、OllyDbg简介 OllyDbg由OllyDbg开发者OllyDbg LP所开发,主要应用于软件调试、逆向工程和恶意软件分析。它能够让我们查看程序的内存...
### 高级使用技巧 除了基本的命令外,OllyDbg还支持一些高级用法,例如通过脚本来自动化一些调试过程。下面是一些示例: - 使用`ASM`命令可以进行即时汇编: - `ASM mov eax, 1; 0x401000`:在地址0x401000处汇编...
通过调试简单的程序,例如计算圆面积的程序,逐步了解ollydbg的使用流程。随着经验的积累,可以尝试更复杂的项目,如逆向工程恶意软件。 十、学习资源 除了本入门教程,还有许多在线资源和社区讨论可以帮助你深入...
### OllyDBG完美教程知识点详解 ...通过本文详细介绍的安装配置过程、窗口功能以及基本调试方法等内容,可以帮助用户快速掌握 OllyDBG 的使用技巧。无论是新手还是有一定经验的开发者,都能够从中获益匪浅。
本文将重点介绍如何利用OllyDBG进行消息断点设置以及如何使用RUN跟踪功能,这两个技巧在逆向分析过程中极为关键。 #### 二、消息断点的基本概念 消息断点是一种特殊的断点类型,用于在程序处理特定Windows消息时...
### 使用Ollydbg进行手动脱壳 在网络安全与软件逆向工程领域中,手动脱壳是一项重要的技能。本文将通过解UPX压缩壳的过程来演示如何利用Ollydbg这一强大的调试工具来进行手动脱壳,并解释esp定律的应用。 #### 一...
总结,ollydbg是强大的动态调试工具,通过学习和实践,我们可以掌握它来探索程序的内部运作,解决复杂问题,提升软件分析和调试技能。"ollydbg基础知识.pdf"文档将详细解释这些概念,并提供实际操作指导,是初学者的...
使用教程则涵盖了基本操作到高级技巧,帮助用户逐步掌握ollydbg的强大功能。 总结而言,ollydbg汉化版是软件分析和逆向工程领域中不可或缺的工具,它的汉化使得更多中文用户得以无障碍地接触和使用。通过反汇编和...
《Ollydbg郁金香插件加强版:深入解析与应用》 Ollydbg是一款知名的动态二进制分析...对于软件开发者、逆向工程师和安全研究人员来说,掌握郁金香插件的使用技巧,无疑能提升他们在代码分析和问题解决上的专业素养。
在《OLLYDBG完全教程》中,一共分为十六个小节,涵盖了从基础到高级的各个层面,帮助用户全面掌握OLLYDBG的使用技巧。以下是对每个小节可能涉及的关键知识点的概述: 1. **什么是OLLYDBG**:这部分会介绍OLLYDBG的...
总结起来,Ollydbg是一款不可多得的汇编软件和调试工具,它以其出色的性能、易用性和可扩展性,已经取代了SoftICE,成为了当今调试领域的主流选择。无论你是软件开发者,还是安全研究员,掌握Ollydbg的使用都将大大...
通过对上述内容的学习,我们可以更好地掌握OllyDbg的基本操作和调试技巧,为后续的软件调试和安全研究打下坚实的基础。需要注意的是,不同的OllyDbg版本可能存在差异,因此在实际应用过程中应结合具体版本进行操作。
本文将深入探讨使用OllyDBG(简称OD)进行程序跟踪调试的技巧和方法,帮助读者更好地理解软件运行机制,提高调试效率。 #### OllyDBG简介 OllyDBG是一款强大的32位处理器反汇编器和调试器,主要用于Windows平台上...