OllyDebug


OllyDebug

文章插图
OllyDebug【OllyDebug】OD,软体名称,反彙编工具OD=OllyDebug,一个新的动态追蹤工具,将IDA与SoftICE结合起来的思想,Ring 3 级的调试器 。OllyDebug的使用界面是可视化操作,但是非常的占记忆体 。
基本介绍中文名:反彙编工具
外文名:OllyDebug
简称:OD
类别:新的动态追蹤工具
软体名称OD,已代替SoftICE成为当今最为流行的调试解密工具了.同时还支持外挂程式扩展功能,是目前最强大的调试工具 。基本上,调试自己的程式因为有源码,一般用vc,破解别人的程式用OllyDebug 。
OllyDebug

文章插图
OllyDebug运行界面OllyDbg v1.1OllyDbg 是一种具有可视化界面的 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 |prolog004010D6 push ebx |004010D7 push esi |004010D8 push edi /……004010C5 pop edi \004010C6 pop esi |004010C7 pop ebx |epilog004010C8 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函式有详细的说明文档 。默认安装已经包含了两个外挂程式:命令行外挂程式和书籤外挂程式 。UDDOllyDbg 把所有程式或模组相关的信息保存至单独的档案中,并在模组重新载入时继续使用 。这些信息包括了标籤、注释、断点、监视、分析数据、条件等等