当前位置:首页 > 从零开始 > 正文

ollydbg是什么软件?

2023-12-06 01:11:16  来源:网络   热度:

ollydbg是什么软件?

最简单的方法是启动OllyDbg,点击File|Open,然后选择你想调试的程序。程序需要命令行参数输入对话框下方的文本栏。重新开始调试最后一个程序的快捷键是Ctrl+F2,并且OllyDbg使用相同的参数。

你也可以点选历史记录。把程序拖入OllyDbg也可以开始调试。当然,当启动OllyDbg时,你在命令行中也能指定被调试的程序名和参数。

比如:你可以创建桌面快捷方式指向OllyDbg,选择属性,到快捷方式,把程序名加入目标栏。

每次你双击这个快捷图标,OllyDbg自动装载被调试程序。

你可以attach OllyDbg到某个正在运行的进程。点击File|Attach,从列表中选择该进程。注意:当你关闭OllyDbg,这个进程也会终止。不要试图attach系统进程,这很可能使系统完全SI机。

OllyDbg是什么?

OllyDbg是什么?

OllyDbg是一个32位汇编级的直观的分析调试器。

它在源代码不可得或者你用编译器遇到问题的时候特别有用。

运行需要。工作在Windows 95,98,Me,NT或者2000,可能XP上(没有测试)。

运行于任何奔腾级别的电脑上,但是如果想要流畅的调试,你可能需要一个至少300MHz的处理器。

Ollydbg是很耗内存的。如果你想要使用某些扩展特性比如追踪,我推荐128或更多内存。

支持的处理器。OllyDbg支持所有80x86,奔腾,MMX,3Dnow!,包括Athlon扩展,和SSE指令以及相应数据格式。

但不支持SSE2. 可配置性。大约有100个选项控制OllyDbg的行为和外观。

数据格式。

Dump窗口显示所有常规数据格式:

hex,ASCII,UNICODE,16和32位正/负/16进制整数,32/64/80位浮点数,地址,反汇编(MASM或IDEAL),或作为注释的

PE部首或者线程数据块。

帮助。

这个文件包含理解和使用OllyDbg所需的重要信息。

如果你有Windows API帮助文件(因为考虑到版权的原因没有附带),你可以把它附加到OllyDbg一起,以便在系统调

用的时候获得立即帮助。

启动。

你可以以命令行,文件菜单,拖放的方式指定可执行文件,重启最后调试过的程序或者把它附加到正在运行的程序上

。OllyDbg支持实时调试。安装是不必要的,你可以从软盘上启动OllyDbg。

线程。

OllyDbg可以调试多线程应用程序。你可以从一个线程切换到另一个,挂起,恢复和中止线程或者改变他们的优先级。

线程窗口显示每一个线程的错误信息(通过调用GetLastError来返回)

分析。

分析器是OllyDbg重要的一部分。它识别过程,简单和级联转换器,表,嵌入代码中的常数和字符串,复杂的结构,

API函数调用,函数参数号,输入段等等。分析可以使二进制代码可读性增强,使调试变得容易以及减少错误中断和崩

溃的可能性。它不是面向编译器的,可以于任何的PE程序工作得一样好。

对象扫描器。

OllyDbg扫描对象文件或库(都是按OMF和COFF格式的),释放代码段并在被调试的程序中定位它们。

IMPLIB扫描器。

一些DLLS只按照序数输出它们的Symbols,这对于人的眼睛来说是没什么意义的。如果你有相应的输入库,OllyDBg能

把序数翻译回symbolic名称。

全UNICODE支持。

几乎所有对ASCII串可用的操作对于UNICODE串都是可用的,反之亦然。

名称。

OllyDbg显示所有输入和输出的symbols.它按照Borland格式把名称从调试信息中提取出来。对象扫描器允许识别库函

数。你可以增添你自己的名字和注释。如果某些DLL中的函数是通过序数输出的,你可以附加一个输入库到OllyDbg中

,以恢复原始名称。Ollydbg也可识别许多常数的symbolic名称,像窗口消息,错误代码或位段,然后在call中把他们

解码为已知的函数。

已知函数。

OllyDbg能通过名称识别大约2100个被C和Windows API频繁使用的函数,并能解码他们的参数。你可以添加你自己的描

述,或者分配预先定义的译码。你可以在已知函数上设置logging breakpoint(记录断点)并把参数记录到日志中。

堆栈。使用简单的试探,OllyDbg尝试识别返回地址和堆栈帧。

但注意,他们有可能是上一个call所留下的残余(译者:的时候有时反而需要!)。如果程序在已知的函数上暂

停,堆栈窗口解码实参。 搜索。大量的可能性!搜索命令(确切的或近似的),命令号,常数,二进制或者文本串(

不必是连续的),搜索参考地址的所有命令,常数或者地址范围,搜索名称,在整个分配的内存中搜索2进制序列。如

果发现多个地址,你可以在他们中间来回的切换。

资源。

如果Windows API函数参考资源串,OllyDbg可以释放并显示它(译者:w32dsam)。对其它类型的只是限制在列出附属

资源,转储和2进制编辑。 断点。OllyDbg支持所有种类的常规断点:简单断点,条件断点,中断并把信心写到日志文

件(例如,函数的参数),写或访问的内存断点,硬件断点(只能ME/NT/2000)。在hit trace(命中追踪)的极端例

子下,INT3中断可以设置在模块的每个命令下。在有500MHz处理器的Windows NT环境中,OllyDbg可以每秒钟处理

5000个以上的中断。 监视和查看工具。Watch是一个每次程序暂停时候都被计算的表达式。你可以使用寄存器,常数

,地址表达式,布尔和任何复杂的代数操作符。你可以比较ASCII和UNICODE串。Inspector是包含2个索引并能以一个

2维表格的形式表示的watch,它可以解码数组和结构。

执行。

你可以一步步的执行程序,或者进入子过程,或者立刻执行它。你可以运行程序知道返回或者运行到指定的地方,或

者连续执行。当程序运行时,你仍然对其具有完全的控制,而且你还可以查看内存,设置断点,甚至在运行时实时调

整代码。而且,在任何时候你都能暂停和重启被调试的程序。 命中追踪。Hit trace显示到目前为止,那些命令或进

程被执行了,它允许你检测你代码的所有分支。Hit trace在每个指定的命令上下断点,并在命令被执行后(被命中

Hit)移去它。

运行追踪。

Run trace一步一步执行程序,并把执行结果摘要到一个大的缓冲中。这个摘要包括所有的寄存器(除了SSE),旗标

和线程错误,消息和已知函数的解码后的参数。你可以保存原始命令,这样可以使调试自改变程序变的容易。你可以

指定条件以停止追踪。或者按地址范围,表达式或者一个命令。你可以把run trace的结果保存到一个文件中并比较两

个独立的Run。Run trace允许回朔追综,并详细分析大量命令执行的经过。

摘要。

摘要计算某条指令在run trace缓冲区中被列出了多少次。用摘要,你可以知道哪部分代码消耗了最多的处理时间。

补丁。

内建的汇编器自动选择最短可能的代码。二进制编辑器同时以ASCII,UNICODE和16进制的形式同步显示数据。固有的拷

贝粘贴功能仍然是可用的。自动备份允许撤销改变。你可以直接修改后拷贝到可执行文件中去,OllyDbg甚至还能适当

调整你做的改变。

自解压文件。

当调试自解压文件时,你常常想要跳过自解压然后停在原始程序的入口点。OllDbg完成SFX(自解压)追踪,它尝试这

定位真实的入口。SFX追踪常常对于加了保护的自解压程序是无能为力的。发现入口(或者指定)后,OllyDbg可以更

快速和可靠的跳过解压程序。 插件。通过编写你自己的插件,你可以给OllyDbg添加功能。插件存取所有重要的数据

结构,添加菜单和快捷方式到存在的OllyDbg窗口并使用超过100个插件API函数,这些插件API有详细的文档说明。

UDD。

OllyDbg存储所有程序或模块相关信息到单个文件并在模块装载的时候读入。这些信息包括标签,注释,断点,监视,

分析数据,条件等等。 定制。你可以定制字体和颜色方案。

一周热门