posts - 7,  comments - 1,  trackbacks - 0

OllyDbg完全教程
日期: 2005-9-6   发布人:乾龙
一,什么是 OllyDbg?

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

Version 1.10 是最终的发布版本。 这个工程已经停止,我不再继续支持这个软件了。但不用担心:全新打造的 OllyDbg 2.00 不久就会面世!

运行环境: OllyDbg 可以以在任何采用奔腾处理器的 Windows 95、98、ME、NT 或是 XP(未经完全测试)操作系统中工作,但我们强烈建议您采用300-MHz以上的奔腾处理器以达到最佳效果。还有,OllyDbg 是极占内存的,因此如果您需要使用诸如追踪调试[Trace]之类的扩展功能话,建议您最好使用128MB以上的内存。

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

配置: 有多达百余个(天呀!)选项用来设置 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 把所有程序或模块相关的信息保存至单独的文件中,并在模块重新加载时继续使用。这些信息包括了标签、注释、断点、监视、分析数据、条件等等

 

更多:这里介绍的功能,仅仅是 OllyDbg 的部分功能。因为其具有如此丰富的功能,以至于 OllyDbg 能成为非常方便的调试器!

posted @ 2006-02-24 23:25 疯子俱乐部 阅读(826) | 评论 (0)编辑 收藏
通用的方法是,再搜索中找“*。SFC”直接把他拖到桌面下的启动兰中就可以拉。还可以将该文件拷贝到“系统盘:\windows\applicationdate\microsoft\internet exolorer\quick launch' (windows 98/me 系统)或"系统盘:\doucuments and   settings\您的用户名\application data\microsoft\lnternet  explorer\quick launch"(windows 2000/xp系统).如果相应路径下没有该文件夹,则需要在资源管理器的"工具\文件夹选项\查看"windows 2000\xp 或查看\文件夹选项\查看"(windows 98/me )中去掉'隐藏受保护的系统文件"前的对钩标记.并选中"显示所有文件和文件夹"就可以看到.
          如果该文件已经丢失,可以用记事本自己编辑,新建一个txt 文档,然后输入:[shell] 
command=2
lconfile=explorer.exe,3
[taskbar]
command=toggledesktop

另存时存为 "显示桌面.sfc"并将下面的保存类型为"所有类型"再参照前面的方法将起保存相应的位置即可.


posted @ 2006-02-13 19:25 疯子俱乐部 阅读(655) | 评论 (1)编辑 收藏
我妹妹的生日是2.14号不是吹的是真的
希望她能在新的一年里学习和以前一样优,人变的越来越漂亮,有大批大批的男生追她*_*|||
                                                                     乌鸦2006/2/11
                                                                                 14:54 
posted @ 2006-02-11 15:24 疯子俱乐部 阅读(158) | 评论 (0)编辑 收藏
     有些flash网站上的flash是不让下载的。这件事很让人头疼好不如容易找到的flash竟然不能下载要是再找别的能下载的网站很费时间的.
     我有过这样的经历。。
     现在就说一下怎么下这样的flash(是我一个朋友教我的~~~也许有很多人都知到。怎么说知识是共享的嘛~~~)
     先下载腾讯的浏览器然后大开你找到的flash的网页。然后把鼠标移到你要的flash上按住左键不放把鼠标移到浏览器的写地址的地方就能得到 .swf的文件地址拉~~~
     就这么简单~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
posted @ 2006-02-10 20:38 疯子俱乐部 阅读(393) | 评论 (0)编辑 收藏
  Windows XP是Windows家族中最安全的操作系统,它为我们提供了良好的密码保护机制。尽管有许多报纸和杂志介绍了丢失用户名和密码照样能进入Windows XP的方法和技巧,但这并不表明Windows XP就非常脆弱,因为微软已经在Windows XP里面为我们提供了强大的安全措施:使用Syskey命令,我们可以为Windows XP设置启动密码。这个密码的级别高于用户密码,同时还可以生成钥匙盘,等于是为Windows XP多加了一把牢固的锁。 

系统启动密码的设置
  在Windows XP中单击“开始→运行”,在输入框中输入“Syskey”,运行系统密码设置程序,进入如图1所示的对话框。在该对话框中单击“更新”按钮,进入如图2所示的密码设置对话框。选择“密码启动”单选按钮,然后在下面的窗口中依次输入同样的密码,保存设置后就完成了系统启动密码的设置。如想取消系统启动密码,只需在“启动密码”窗口中选择“在本机上保存启动密码”,“确定”后系统会让您输入设定的系统启动密码,完成后系统密码就保存到您的硬盘上了,下次启动时就不再有系统启动密码窗口出现了。

系统启动密码的应用
  重新启动系统后,首先会提示您输入系统启动密码,只有输入正确后才会出现Windows系统的用户名和密码输入界面,就好像在BIOS中设置了系统密码那样,在进入Windows前又多了一道关卡。 

制作钥匙盘 
  “Syskey”系统密码设置程序还有生成钥匙盘的功能。只有拥有钥匙盘的用户才能进入Windows XP,就像有些杀毒软件杀毒时需要钥匙盘那样,又多了一道自我保护功能。 

  在如图2所示的“启动密码”窗口中选择“系统产生的密码”,然后再选择“在软盘上保存启动密码”,程序会提示您插入软盘,“确定”后密码文件自动保存到软盘上,完成了制作钥匙盘的工作。下次启动计算机时,系统会提示您插入钥匙盘进行密码验证。
posted @ 2006-02-08 22:07 疯子俱乐部 阅读(261) | 评论 (0)编辑 收藏
 大家都知道可以用自己的“QQ号+密码”登录腾讯社区。某日,笔者突然发现用旧密码竟然也可以进入,不过当笔者使用新密码再次登录后,旧密码就失效了。
  看来腾讯社区的数据库跟QQ服务器上的数据并非同步。如果输入的密码和社区数据库中的一致,就会被允许登录;不一致,社区数据库就会下载QQ服务器上的新数据,进行对比,然后更新社区数据库的数据。
如何利用:

  1.大部分网友的QQ密码被偷是因为没设置密码保护,一旦被偷就任傻眼了。可现在两个数据库并非同步,大家可以“亡羊补牢”。一旦发现被偷,马上用旧密码登录腾讯社区,然后用旧数据去申请密码保护,这样就能够取回密码了。

  2.如果大家发现利用旧密码可以登录,但已被别人申请了密码保护,怎么办呢?其实偷QQ的人在改了密码后不会立刻使用。你只要加入一个月QQ会员,然后用手机取回密码就可以了,不过此法需要花费10元钱。
posted @ 2006-02-08 22:04 疯子俱乐部 阅读(234) | 评论 (0)编辑 收藏

本人叫乌鸦!!
想认识很多的朋友最好是会编程的!!
我常年在线OICQ:287049857
学的是计算机专业
刚学VB不会其他的语言.
想学JAVA各位老大如果会就教教我~~~
我是个好学生
邮箱是:wuyacrow@163.com   

posted @ 2006-02-08 12:16 疯子俱乐部 阅读(217) | 评论 (0)编辑 收藏
仅列出标题  
我的地盘,我做主.

<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

常用链接

留言簿(1)

随笔分类(6)

随笔档案(7)

文章分类(6)

相册

蓝色旋风接力站

搜索

  •  

最新评论

阅读排行榜

评论排行榜