﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-fengzi-wuya-随笔分类---==非技术区==--</title><link>http://www.cnitblog.com/fengzi-wuya/category/1916.html</link><description /><language>zh-cn</language><lastBuildDate>Sat, 01 Oct 2011 07:22:04 GMT</lastBuildDate><pubDate>Sat, 01 Oct 2011 07:22:04 GMT</pubDate><ttl>60</ttl><item><title>OllyDbg完全教程1(1)</title><link>http://www.cnitblog.com/fengzi-wuya/archive/2006/02/24/6921.html</link><dc:creator>疯子俱乐部</dc:creator><author>疯子俱乐部</author><pubDate>Fri, 24 Feb 2006 15:25:00 GMT</pubDate><guid>http://www.cnitblog.com/fengzi-wuya/archive/2006/02/24/6921.html</guid><wfw:comment>http://www.cnitblog.com/fengzi-wuya/comments/6921.html</wfw:comment><comments>http://www.cnitblog.com/fengzi-wuya/archive/2006/02/24/6921.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/fengzi-wuya/comments/commentRss/6921.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/fengzi-wuya/services/trackbacks/6921.html</trackback:ping><description><![CDATA[<P>OllyDbg完全教程<BR>日期: 2005-9-6&nbsp;&nbsp; 发布人:乾龙<BR>一，什么是 OllyDbg？</P>
<P>OllyDbg 是一种具有可视化界面的 32 位汇编-分析调试器。它的特别之处在于可以在没有源代码时解决问题，并且可以处理其它编译器无法解决的难题。</P>
<P>Version 1.10 是最终的发布版本。 这个工程已经停止，我不再继续支持这个软件了。但不用担心：全新打造的 OllyDbg 2.00 不久就会面世！</P>
<P>运行环境： OllyDbg 可以以在任何采用奔腾处理器的 Windows 95、98、ME、NT 或是 XP（未经完全测试）操作系统中工作，但我们强烈建议您采用300-MHz以上的奔腾处理器以达到最佳效果。还有，OllyDbg 是极占内存的，因此如果您需要使用诸如追踪调试［Trace］之类的扩展功能话，建议您最好使用128MB以上的内存。</P>
<P>支持的处理器： OllyDbg 支持所有 80x86、奔腾、MMX、3DNOW！、Athlon 扩展指令集、SSE指令集以及相关的数据格式，但是不支持SSE2指令集。</P>
<P>配置： 有多达百余个（天呀！）选项用来设置 OllyDbg 的外观和运行。</P>
<P>数据格式： OllyDbg 的数据窗口能够显示的所有数据格式：HEX、ASCII、UNICODE、 16/32位有/无符号/HEX整数、32/64/80位浮点数、地址、反汇编（MASM、IDEAL或是HLA）、PE文件头或线程数据块。</P>
<P>帮助： 此文件中包含了关于理解和使用 OllyDbg 的必要的信息。如果您还有 Windows API 帮助文件的话（由于版权的问题 win32.hlp 没有包括在内），您可以将它挂在 OllyDbg 中，这样就可以快速获得系统函数的相关帮助。</P>
<P>启动： 您可以采用命令行的形式指定可执行文件、也可以从菜单中选择，或直接拖放到OllyDbg中，或者重新启动上一个被调试程序，或是挂接［Attach］一个正在运行的程序。OllyDbg支持即时调试。OllyDbg根本不需要安装，可直接在软盘中运行！ </P>
<P>调试DLLs： 您可以利用OllyDbg调试标准动态链接库 (DLLs)。OllyDbg 会自动运行一个可执行程序。这个程序会加载链接库，并允许您调用链接库的输出函数。</P>
<P>源码级调试： OllyDbg 可以识别所有 Borland 和 Microsoft 格式的调试信息。这些信息包括源代码、函数名、标签、全局变量、静态变量。有限度的支持动态（栈）变量和结构。</P>
<P>代码高亮： OllyDbg 的反汇编器可以高亮不同类型的指令（如：跳转、条件跳转、入栈、出栈、调用、返回、特殊的或是无效的指令）和不同的操作数（常规［general］、<BR>FPU/SSE、段/系统寄存器、在栈或内存中的操作数，常量）。您可以定制个性化高亮方案。</P>
<P>线程： OllyDbg 可以调试多线程程序。因此您可以在多个线程之间转换，挂起、恢复、终止线程或是改变线程优先级。并且线程窗口将会显示每个线程的错误（就像调用 GETLASTERROR 返回一样）。</P>
<P>分析：OllyDbg 的最大特点之一就是分析。它会分析函数过程、循环语句、选择语句、表［tables］、常量、代码中的字符串、欺骗性指令［tricky constructs］、API调用、函数中参数的数目，import表等等。. 这些分析增加了二进制代码的可读性，减少了出错的可能性，使得我们的调试工作更加容易。</P>
<P>Object扫描。 OllyDbg 可以扫描Object文件/库（包括 OMF 和 COFF 格式），解压代码段［code segments］并且对其位置进行定向。</P>
<P>Implib扫描。 由于一些DLL文件的输出函数使用的索引号，对于人来说，这些索引号没有实际含义。如果您有与DLL相应的输入库［import library］，OllyDbg 就可以将序号转换成符号名称。</P>
<P>完全支持Unicode： 几乎所有支持 ASCII 的操作同时也支持 UNICODE，反之亦然。</P>
<P>名称： OllyDbg 可以根据 Borland 和 Microsoft 格式的调试信息，显示输入/输出符号及名称。Object 扫描器可以识别库函数。其中的名称和注释您可任意添加。如果DLL中的某些函数是通过索引号输出的，则您可通过挂接输入库［import library］来恢复原来的函数名称。不仅如此，OllyDbg还能识别大量的常量符号名（如：窗口消息、错误代码、位域［bit fields］…）并能够解码为已知的函数调用。</P>
<P>已知函数：OllyDbg 可以识别 2300 多个 C 和 Windows API 中的常用函数及其使用的参数。您可以添加描述信息、预定义解码。您还可以在已知函数设定 Log 断点并可以对参数进行记录。</P>
<P>函数调用： OllyDbg 可以在没有调试信息或函数过程使用非标准的开始部分［prolog］和结尾部分［epilog］的情况下，对递归调用进行回溯。<BR>译者注：<BR>004010D0&nbsp;&nbsp; push&nbsp; ebp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \<BR>004010D1&nbsp;&nbsp; mov&nbsp;&nbsp; ebp,esp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<BR>004010D3&nbsp;&nbsp; sub&nbsp;&nbsp; esp,10h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |prolog<BR>004010D6&nbsp;&nbsp; push&nbsp; ebx&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<BR>004010D7&nbsp;&nbsp; push&nbsp; esi&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<BR>004010D8&nbsp;&nbsp; push&nbsp; edi&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /<BR>……<BR>004010C5&nbsp;&nbsp; pop&nbsp;&nbsp; edi&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \&nbsp; <BR>004010C6&nbsp;&nbsp; pop&nbsp;&nbsp; esi&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<BR>004010C7&nbsp;&nbsp; pop&nbsp;&nbsp; ebx&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |epilog<BR>004010C8&nbsp;&nbsp; mov&nbsp;&nbsp; esp,ebp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |</P>
<P>004010CA&nbsp;&nbsp; pop&nbsp;&nbsp; ebp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<BR>004010CB&nbsp;&nbsp; ret&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /</P>
<P>栈：在栈窗口中，OllyDbg 能智能识别返回地址和栈框架［Stack Frames］。并会留下一些先前的调用。如果程序停在已知函数上，堆栈窗口将会对其参数进行分析解码。</P>
<P>译者注：栈框架［Stack Frames］是指一个内存区域，用于存放函数参数和局部变量。</P>
<P>SEH 链： 跟踪栈并显示结构化异常句柄链。全部链会显示在一个单独的窗口中。</P>
<P>搜索：方法真是太多了！可精确、模糊搜索命令或命令序列，搜索常数，搜索二进制、文本字符串，搜索全部命令地址，搜索全部常量或地址域［address range］，搜索所有能跳到选定地址的跳转，搜索所有调用和被调用的函数，搜索所有参考字符串，在不同模块中搜索所有调用、搜索函数名称，在全部已分配的内存中搜索二进制序列。如果搜索到多个结果，您可以对其进行快速操作。</P>
<P>窗口：OllyDbg 能够列出关于调试程序中的各种窗口，并且可以在窗口、类甚至选定的消息上设置断点。 </P>
<P>资源：如果 Windows API 函数使用了参考资源串，OllyDbg 可以显示它。其支持显示的类型仅限于附带资源［attached resources］的列表、数据显示及二进制编辑、。</P>
<P>断点： OllyDbg 支持各种断点：一般断点、条件断点、记录断点（比如记录函数参数到记录窗口）、内存读写断点、硬件断点（只适用于ME/NT/2000）等。在Hit跟踪情况下，可以在模块的每条命令上都设置INT3断点。在使用500-MHZ处理器的 Windows NT 中，OllyDbg 每秒可以处理高达 5000 个中断。 </P>
<P>监视与监察器：每个监视都是一个表达式并能实时显示表达式的值。您可以使用寄存器、常数、地址表达式、布尔值以及任何复杂代数运算，您还可以比较ASCII和UNICODE<BR>字符串。监察器［inspectors］是一种包含了两个的索引序列的监视［Watches］，它以二维表的形式呈现，可以对数组和结构进行解码分析。&nbsp; </P>
<P>Heap walk.：在基于Win95的系统中，OllyDbg 可以列出所有的已分配的堆。</P>
<P>句柄：在基于NT的系统中，OllyDbg 可列出被调试程序的所有系统句柄。</P>
<P>执行：.您可以单步执行、步入子程序或者步过子程序。您也可以执行程序直到函数返回时、执行到指定地址处，还可以自动执行。当程序运行时，您仍然可以操纵程序并能够查看内存、设置断点甚至修改代码。您也可以任意的暂停或重启被调试的程序。</P>
<P>Hit跟踪：.Hit跟踪可以显示出目前已执行的指令或函数过程，帮助您检验代码的各个分支。Hit跟踪会在指定指令到达之前设置断点，而在这个指令执行后，会把这个断点清除掉。 </P>
<P>译者注：Hit在英文中是“击中”的意思，指令如果运行了就表示这个指令被“击中”了，没有执行的指令就是“未击中”，这样我们就很容易看出被调试程序哪些部分运行了，而哪些没有运行。</P>
<P>Run跟踪： Run跟踪可以单步执行程序，它会在一个很大的循环缓冲区中模拟运行程序。这个模拟器包含了除了SSE指令集以外的所以寄存器、标志、线程错误、消息、已经函数的参数。您可以保存命令，这样可以非常方便地调试自修改代码（译者注：比如加壳程序）。您可以设置条件中断，条件包括地址范围、表达式、命令。您可以将Run<BR>跟踪信息保存到一个文件中，这样就可以对比两次运行的差别。Run跟踪可以回溯分析已执行过的上百万条命令的各种细节。</P>
<P>统计： 统计［Profiler］可以在跟踪时计算某些指令出现的次数。因此您就能了解代码的哪一部分被频繁执行。</P>
<P>补丁： 内置汇编器能够自动找到修改过的代码段。二进制编辑器则会以ASCII、UNICODE或者十六进制的形式同步显示修改后的数据。修改后的数据同其它数据一样，能够进行复制-粘贴操作。原来的数据会自动备份，以便数据恢复时使用。您可以把修改的部分直接复制到执行文件中，OllyDbg会自动修正。OllyDbg还会记录以前调试过程中使用的所有补丁。您可以通过空格键实现补丁的激活或者禁止。</P>
<P>自解压文件： 当调试自解压文件时，您往往希望跳过解压部分，直接停在程序的原始入口点。OllyDbg的自解压跟踪将会使您实现这一目的。如果是加保护的自解压段，自解压跟踪往往会失败。而一旦OllyDbg找到了入口点，它将会跳过解压部分，并准确的到达入口点。</P>
<P>插件：您可以把自己的插件添加到 OllyDbg 中，以增加新的功能。OllyDbg 的插件能够访问几乎所有重要的数据的结构、能够在 OllyDbg 的窗口中添加菜单和快捷键，能够使用100个以上的插件API函数。插件API函数有详细的说明文档。默认安装已经包含了两个插件：命令行插件和书签插件。 </P>
<P>UDD：OllyDbg 把所有程序或模块相关的信息保存至单独的文件中，并在模块重新加载时继续使用。这些信息包括了标签、注释、断点、监视、分析数据、条件等等</P>
<P>&nbsp;</P>
<P>更多：这里介绍的功能，仅仅是 OllyDbg 的部分功能。因为其具有如此丰富的功能，以至于 OllyDbg 能成为非常方便的调试器！</P><img src ="http://www.cnitblog.com/fengzi-wuya/aggbug/6921.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/fengzi-wuya/" target="_blank">疯子俱乐部</a> 2006-02-24 23:25 <a href="http://www.cnitblog.com/fengzi-wuya/archive/2006/02/24/6921.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>生日快乐</title><link>http://www.cnitblog.com/fengzi-wuya/archive/2006/02/11/6582.html</link><dc:creator>疯子俱乐部</dc:creator><author>疯子俱乐部</author><pubDate>Sat, 11 Feb 2006 07:24:00 GMT</pubDate><guid>http://www.cnitblog.com/fengzi-wuya/archive/2006/02/11/6582.html</guid><wfw:comment>http://www.cnitblog.com/fengzi-wuya/comments/6582.html</wfw:comment><comments>http://www.cnitblog.com/fengzi-wuya/archive/2006/02/11/6582.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/fengzi-wuya/comments/commentRss/6582.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/fengzi-wuya/services/trackbacks/6582.html</trackback:ping><description><![CDATA[我妹妹的生日是2.14号不是吹的是真的<BR>希望她能在新的一年里学习和以前一样优,人变的越来越漂亮,有大批大批的男生追她*_*|||<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;乌鸦2006/2/11<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;14:54&nbsp;<BR><img src ="http://www.cnitblog.com/fengzi-wuya/aggbug/6582.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/fengzi-wuya/" target="_blank">疯子俱乐部</a> 2006-02-11 15:24 <a href="http://www.cnitblog.com/fengzi-wuya/archive/2006/02/11/6582.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>