新闻资讯
看你所看,想你所想

OllyDebug

OllyDebug

OllyDebug

OD,软体名称,反彙编工具OD=OllyDebug,一个新的动态追蹤工具,将IDA与SoftICE结合起来的思想,Ring 3 级的调试器。OllyDebug的使用界面是可视化操作,但是非常的占记忆体。

基本介绍

  • 中文名:反彙编工具
  • 外文名:OllyDebug
  • 简称:OD
  • 类别:新的动态追蹤工具

软体名称

OD,已代替SoftICE成为当今最为流行的调试解密工具了.同时还支持外挂程式扩展功能,是目前最强大的调试工具。基本上,调试自己的程式因为有源码,一般用vc,破解别人的程式用OllyDebug。
OllyDebug运行界面OllyDebug运行界面

OllyDbg v1.1

OllyDbg 是一种具有可视化界面的 32 位彙编-分析调试器。它的特别之处在于可以在没有原始码时解决问题,并且可以处理其它编译器无法解决的难题。

运行环境

OllyDbg 可以以在任何採用奔腾处理器的 Windows 95、98、ME、NT 、XP作业系统中工作。OllyDbg 是极占记忆体的,因此如果您需要使用诸如追蹤调试[Trace]之类的扩展功能话,建议您最好使用128MB以上的记忆体。

支持的处理器

OllyDbg 支持所有 80x86、奔腾、MMX、3DNOW!、Athlon扩展指令集、SSE指令集以及相关的数据格式,但是不支持SSE2指令集。

OD基本功能

配置

有多达百余个选项用来设定 OllyDbg 的外观和运行。

数据格式

OllyDbg 的数据视窗能够显示的所有数据格式:HEX、ASCII、UNICODE、 16/32位有/无符号/HEX整数、32/64/80位浮点数、地址、反彙编(MASM、IDEAL或是HLA)、PE档案头或执行绪数据块。

帮助

此档案中包含了关于理解和使用 OllyDbg 的必要的信息。如果您还有 Windows API 帮助档案的话(由于着作权的问题 win32.hlp 没有包括在内),您可以将它挂在 OllyDbg 中,这样就可以快速获得系统函式的相关帮助。

启动

您可以採用命令行的形式指定执行档、也可以从选单中选择,或直接拖放到OllyDbg中,或者重新启动上一个被调试程式,或是挂接[Attach]一个正在运行的程式。OllyDbg支持即时调试。OllyDbg根本不需要安装,可直接在软碟中运行!

调试DLLs

您可以利用OllyDbg调试标準动态程式库 (DLLs)。OllyDbg 会自动运行一个可执行程式。这个程式会载入程式库,并允许您调用程式库的输出函式。

源码级调试

OllyDbg 可以识别所有 Borland 和 Microsoft 格式的调试信息。这些信息包括原始码、函式名、标籤、全局变数、静态变数。有限度的支持动态(栈)变数和结构。

代码高亮

OllyDbg 的反彙编器可以高亮不同类型的指令(如:跳转、条件跳转、入栈、出栈、调用、返回、特殊的或是无效的指令)和不同的运算元(常规[general]、
FPU/SSE、段/系统暂存器、在栈或记忆体中的运算元,常量)。您可以定製个性化高亮方案。

执行绪

OllyDbg 可以调试多执行绪程式。因此您可以在多个执行绪之间转换,挂起、恢复、终止执行绪或是改变执行绪优先权。并且执行绪视窗将会显示每个执行绪的错误(就像调用 GETLASTERROR 返回一样)。

分析

OllyDbg 的最大特点之一就是分析。它会分析函式过程、循环语句、选择语句、表[tables]、常量、代码中的字元串、欺骗性指令[tricky constructs]、API调用、函式中参数的数目,import表等等。. 这些分析增加了二进制代码的可读性,减少了出错的可能性,使得我们的调试工作更加容易。

Object扫描

OllyDbg 可以扫描Object档案/库(包括 OMF 和 COFF 格式),解压代码段[code segments]并且对其位置进行定向。

Implib扫描

由于一些DLL档案的输出函式使用的索引号,对于人来说,这些索引号没有实际含义。如果您有与DLL相应的输入库[import library],OllyDbg 就可以将序号转换成符号名称。
完全支持Unicode: 几乎所有支持 ASCII 的操作同时也支持 UNICODE,反之亦然。

名称

OllyDbg 可以根据 Borland 和 Microsoft 格式的调试信息,显示输入/输出符号及名称。Object 扫描器可以识别库函式。其中的名称和注释您可任意添加。如果DLL中的某些函式是通过索引号输出的,则您可通过挂接输入库[import library]来恢复原来的函式名称。不仅如此,OllyDbg还能识别大量的常量符号名(如:视窗讯息、错误代码、位域[bit fields]…)并能够解码为已知的函式调用。

已知函式

OllyDbg 可以识别 2300 多个 C 和 Windows API 中的常用函式及其使用的参数。您可以添加描述信息、预定义解码。您还可以在已知函式设定 Log 断点并可以对参数进行记录。

函式调用

OllyDbg 可以在没有调试信息或函式过程使用非标準的开始部分[prolog]和结尾部分[epilog]的情况下,对递归调用进行回溯。
译者注:
004010D0 push ebp \
004010D1 mov ebp,esp |
004010D3 sub esp,10h |prolog
004010D6 push ebx |
004010D7 push esi |
004010D8 push edi /
……
004010C5 pop edi \
004010C6 pop esi |
004010C7 pop ebx |epilog
004010C8 mov esp,ebp |
004010CA pop ebp |
004010CB ret /

在栈视窗中,OllyDbg 能智慧型识别返回地址和栈框架[Stack Frames]。并会留下一些先前的调用。如果程式停在已知函式上,堆叠视窗将会对其参数进行分析解码。
译者注:栈框架[Stack Frames]是指一个记忆体区域,用于存放函式参数和局部变数。

SEH 链

跟蹤栈并显示结构化异常句柄链。全部链会显示在一个单独的视窗中。

搜寻

方法真是太多了!可精确、模糊搜寻命令或命令序列,搜寻常数,搜寻二进制、文本字元串,搜寻全部命令地址,搜寻全部常量或地址域[address range],搜寻所有能跳到选定地址的跳转,搜寻所有调用和被调用的函式,搜寻所有参考字元串,在不同模组中搜寻所有调用、搜寻函式名称,在全部已分配的记忆体中搜寻二进制序列。如果搜寻到多个结果,您可以对其进行快速操作。

视窗

OllyDbg 能够列出关于调试程式中的各种视窗,并且可以在视窗、类甚至选定的讯息上设定断点。

资源

如果 Windows API 函式使用了参考资源串,OllyDbg 可以显示它。其支持显示的类型仅限于附带资源[attached resources]的列表、数据显示及二进制编辑、。

断点

OllyDbg 支持各种断点:一般断点、条件断点、记录断点(比如记录函式参数到记录视窗)、记忆体读写断点、硬体断点(只适用于ME/NT/2000)等。在Hit跟蹤情况下,可以在模组的每条命令上都设定INT3断点。在使用500-MHZ处理器的 Windows NT 中,OllyDbg 每秒可以处理高达 5000 箇中断。

监视与监察器

每个监视都是一个表达式并能实时显示表达式的值。您可以使用暂存器、常数、地址表达式、布尔值以及任何複杂代数运算,您还可以比较ASCII和UNICODE
字元串。监察器[inspectors]是一种包含了两个的索引序列的监视[Watches],它以二维表的形式呈现,可以对数组和结构进行解码分析。

Heap walk

在基于Win95的系统中,OllyDbg 可以列出所有的已分配的堆。

句柄

在基于NT的系统中,OllyDbg 可列出被调试程式的所有系统句柄。

执行

您可以单步执行、步入子程式或者步过子程式。您也可以执行程式直到函式返回时、执行到指定地址处,还可以自动执行。当程式运行时,您仍然可以操纵程式并能够查看记忆体、设定断点甚至修改代码。您也可以任意的暂停或重启被调试的程式。

Hit跟蹤

Hit跟蹤可以显示出程式当前已执行的指令或函式过程,帮助您检验代码的各个分支。Hit跟蹤会在指定指令到达之前设定断点,而在这个指令执行后,会把这个断点清除掉。
译者注:Hit在英文中是“击中”的意思,指令如果运行了就表示这个指令被“击中”了,没有执行的指令就是“未击中”,这样我们就很容易看出被调试程式哪些部分运行了,而哪些没有运行。

Run跟蹤

Run跟蹤可以单步执行程式,它会在一个很大的循环缓冲区中模拟运行程式。这个模拟器包含了除了SSE指令集以外的所以暂存器、标誌、执行绪错误、讯息、已经函式的参数。您可以保存命令,这样可以非常方便地调试自修改代码(译者注:比如加壳程式)。您可以设定条件中断,条件包括地址範围、表达式、命令。您可以将Run
跟蹤信息保存到一个档案中,这样就可以对比两次运行的差别。Run跟蹤可以回溯分析已执行过的上百万条命令的各种细节。

统计

统计[Profiler]可以在跟蹤时计算某些指令出现的次数。因此您就能了解代码的哪一部分被频繁执行。

补丁

内置彙编器能够自动找到修改过的代码段。二进制编辑器则会以ASCII、UNICODE或者十六进制的形式同步显示修改后的数据。修改后的数据同其它数据一样,能够进行複製-贴上操作。原来的数据会自动备份,以便数据恢复时使用。您可以把修改的部分直接複製到执行档案中,OllyDbg会自动修正。OllyDbg还会记录以前调试过程中使用的所有补丁。您可以通过空格键实现补丁的激活或者禁止。

自解压档案

当调试自解压档案时,您往往希望跳过解压部分,直接停在程式的原始入口点。OllyDbg的自解压跟蹤将会使您实现这一目的。如果是加保护的自解压段,自解压跟蹤往往会失败。而一旦OllyDbg找到了入口点,它将会跳过解压部分,并準确的到达入口点。

外挂程式

您可以把自己的外挂程式添加到 OllyDbg 中,以增加新的功能。OllyDbg 的外挂程式能够访问几乎所有重要的数据的结构、能够在 OllyDbg 的视窗中添加选单和快捷键,能够使用100个以上的外挂程式API函式。外挂程式API函式有详细的说明文档。默认安装已经包含了两个外挂程式:命令行外挂程式和书籤外挂程式。

UDD

OllyDbg 把所有程式或模组相关的信息保存至单独的档案中,并在模组重新载入时继续使用。这些信息包括了标籤、注释、断点、监视、分析数据、条件等等

相关推荐

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:yongganaa@126.com