吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 16905|回复: 28

[转载技术] 第一章-OD的各个窗口介绍

  [复制链接]
Shark恒 发表于 2015-1-20 15:18 | 显示全部楼层 |阅读模式

使用OllyDbg从零开始Cracking
第一章
(翻译:BGCoder)
《使用OllyDbg从零开始Cracking》教程的目的是为那些想精通Cracking(译注1)艺术的人提供必要的基础知识。有了这些基础知识,你就可以阅读和理解更高级的教程,例如《INTRODUCCIóN AL CRACKING》(译注2),这个系列教程现在仍在不断加入新的内容。
写这个教程想法的产生,是由于意识到了《INTRODUCCIóN AL CRACKING》中的很多教程对于新手来说太过于复杂。而新手们还未能达到课程所需的能力要求。多方面的原因导致这些新人难以继续学习。因此,《使用OllyDbg从零开始Cracking》的目标并不是取代来自《INTRODUCCIóN AL CRACKING》中的教程(它里面的教程数量已逾500),而是为学完这个课程后的读者打下一个良好的基础,以便去学习阅读日益复杂的资料。它的主要目的是减少课程数量,提供必要的基础知识,从而使新的Cracker对更复杂的文章资料能够深入的理解。

为什么使用OllyDbg?
我们不会去探讨SoftICE和OllyDbg之间的对抗,我认为即使是SoftICE的狂热追随者也可以很容易的入手OllyDbg。而OllyDbg拥有更多的资料且更容易学习。我们需要从OllyDbg这扇大门进入Cracking的世界。以后可能会在必要的时候换成其它调试器,但变化的只是它们的使用方法,不变的是它们的本质。

让我们从头开始。
首先,需要装备我们以后将主要使用的工具(OllyDbg),点此下载(译注3)。
image002.jpg

下载成功后,将其解压到你容易访问的硬盘文件夹内,一个好的办法是在C盘创建一个目录,尽管它在哪里都可以运行,在这里我选择了C:\。
image004.jpg

解压后,进入你创建的文件夹内可以看到:
image006.jpg

它的可执行文件是OLLYDBG.exe,为了方便,我们可以将其快捷方式发送到桌面。
image008.jpg
好的,启动软件,点击OllyDbg图标。
image010.jpg
上图的消息框显示,PSAPI.DLL,一个库文件旧于我们系统上的同名DLL文件。如果你点击Yes,那么这个旧文件就会从你的文件夹内消失,然后使用系统自身的。尽管我看不出两个文件有什么不同,但是最好选择随软件包自带的,所以永远要点击No(译注4)。

image012.jpg

这是纯净的OllyDbg(译注:未加载插件非修改版),为了逐渐熟悉OllyDbg,我们打开的第一个程序来自著名的CrueHead'a的CrackMe,这个文件随本文附带。

要在OllyDbg中打开文件,从File->Open或者点击图标。
image014.jpg

随后打开一个窗口,找到CrackMe。
image016.jpg

image018.jpg

CrackMe打开了,此时出现的内容对我们是否清楚并不重要。在对OllyDbg不同部分的功能和少许的设置有了解之前,我们现在关心的只是是如何将它打开。之后,当学习下一节课程时,当说到Dump,至少你应该知道到哪里去找这个选项。
image020.jpg

这里,我们看一下OllyDbg四个主要窗口:

1)反汇编窗口
OllyDbg在这里显示反汇编代码,我们将要以OllyDbg的默认配置调试分析你打开的程序。
调试选项可以在Options->Debugging options里更改。
image022.jpg
image024.jpg

如果勾选了自动对主模块进行分析(译注5),OllyDbg会分析程序显示它的附加信息。

image026.jpg

这是CrackMe的分析结果的开头部分,如果我们不予分析,我们看到的会有所不同。
image028.jpg

在分析结果中,出现了大量的信息,尽管我们现在还不清楚这些信息是什么,但看起来很有趣。同时,最好要知道,如果分析的不够正确或有错误,这些消息可以在任何时候去除。

通常OllyDbg显示程序的某些部分时是不正确的,错误的将可执行代码解释为数据。然后,它会显示类似于下图中的内容。

image030.jpg

这种情况,你可以在反汇编窗口中右击选择Analysis->Remove analysis from module手动删除分析结果。
image032.jpg

之后会显示正确。
image034.jpg

额外的选项,高亮显示jumps和calls,你使用它可能会更为方便但我个人不喜欢(这会有不同的体验),右键点击,选择Appearance -> Highlighting -> Jumps’n’Calls。

image036.jpg

会看到如下图所示。
image038.jpg

这里,我们看到Call句变为绿色,跳转变为黄色。现在,反汇编窗口更加容易阅读。虽然到现在为止,我们头脑里对这些是什么意思还没有概念,但是这为将来的使用已经做了很好的准备。

2)寄存器
第二个重要的窗口——寄存器窗口
image040.jpg

看一下这个在OllyDbg最右边的窗口,它出现了很多信息。
image042.jpg

还有一些重要的信息我们没有看到。但是你可以设置显示模式的不同类型。右键点击,View FPU registers显示FPU寄存器,View 3DNow! registers显示3DNow!寄存器。View debug registers显示调试寄存器。默认是第一个。
image044.jpg

3)堆栈窗口
现在切换到堆栈窗口。这里没有过多的配置选项,它涉及到ESP和EBP寄存器指向地址的信息显示。

image046.jpg

默认情况下,它显示ESP寄存器指向的信息(也是最重要的),但是你可以改变它的显示模式来显示来自涉及EBP的信息。这需要在这个窗口上点击右键,选择GO to EBP。再次点击右键选择Go to ESP,回到先前窗口。
image048.jpg

在后续课程中,我将更加详细的解释堆栈的功能。但目前,我们还只能通过修改配置选项看看发生了什么变化。

4)数据窗口(dump)
这个窗口有很多显示模式,可以在该出口右键点击选择你需要的,默认模式为8-byte Hex / ASCII。
image050.jpg

默认的模式是最常用的,我们还可以改变它以显示反汇编代码(Disassemble),文本(Text)和其它格式(Short,Long,Float)。
image052.jpg

另外,选择Special -> PEHeader,我们将会在下节课程中看到,非常有用。
image054.jpg
现在我们了解了OllyDbg的最主要的四个窗口。还有一些窗口没有直接显示,可以通过菜单或控制面板上的图标按钮访问。
image056.jpg

现在逐个遍历。

L图标或View->Log,显示日志窗口,通过配置,可以显示OllyDbg启动时保存在日志窗口的不同类型信息,也涉及条件断点的信息。以后我们会再次用到它,现在让我们看一下当前运行进程(CrackMe)的信息和它加载的库文件。
image058.jpg

这个窗口最重要的选项就是保存到文件。如果我们想把信息保存为文本文件,点击右键选择Log to file。
image060.jpg

E按钮View->Executables显示程序运行使用的模块:exe,dll,ocx和其它。
image062.jpg

M按钮或View->Memory显示我们的程序映射到内存的信息,一个内存块可能被分为几个部分。
image064.jpg

右键点击可以搜索不同种类的字符串,可以在访问上设置中断。

T按钮或View->Threads显示程序的线程窗口,
image066.jpg

我们现在不知道它是什么,在后续课程中我们会学到和使用。

W按钮或View->Windows显示程序窗口,现在程序还未运行,窗口为空白。
image068.jpg

H按钮或View->Handles,句柄窗口,以后解释它是干什么的。
image070.jpg

C按钮或View->CPU,允许我们返回到OllyDbg的主窗口,CPU窗口。

/按钮或View->Patches,如果程序经过了修改,这里显示修改的信息,现在我们的程序还没有被修改过,所以为空白。
image072.jpg

K按钮或View->Call stack显示调用堆栈的窗口信息,可以尝试反向跟踪函数的调用顺序。

image074.jpg

B按钮或View->Breakpoints显示程序普通断点的列表窗口,这里不显示硬件断点和内存断点。

image076.jpg

R按钮或View->Reference参考窗口,显示我们在OllyDbg中搜索的结果。

image078.jpg

“...”按钮或View->Run trace显示RUN TRACE(RUN跟踪)命令的结果。这里我们也可以通过Log to file保存输出结果到文件。

image080.jpg

我们遍历了一下控制面板上最重要的图标,在后续课程的学习中,你会逐渐熟悉它们。

怎样设置实时调试JIT(JUST INTIME DEBUGGER)
当然,我们不一定会用的实时调试,除非特殊情况。因为如果我们运行的程序出现崩溃时,我们不需要使用OllyDbg(默认为Dr. Watson)。

让OllyDbg成为实时调试器,选择菜单Options->Just-in-time debugging。

image082.jpg

点击Make OllyDbg just-in-timedebugger后再点击done。

image084.jpg

取消这个特性,你需要在相同的位置点击Restoreold just-in-time debugger和Done。
image086.jpg

在OllyDbg中关联插件
OllyDbg允许你使用插件,这样会对解决问题有所帮助,通过设置CommandBar插件,来学习怎样设置。

点击这里(译注:随文附带)下载插件。
image088.jpg

解压插件压缩包,查看文件夹里的内容。
image090.jpg

首先,你需要为插件建立文件夹,我将把它建立在C:\,名为PLUGINS。
image092.jpg

当然,此文件夹可以放在任何位置,但我喜欢将它放在C盘,我们现在马上配置OllyDbg,使OllyDbg将此文件夹认可为所有插件的存放目录。

要这样做,选择Options->Appearance。
image094.jpg

然后在窗口中选择Directories标签。

image096.jpg

我们看到作为插件路径的目录已被指定,即OllyDbg.exe所在的目录,可以把插件放在那里,但是我喜欢将它们分开,点击Plugin path->Browse选择你创建的文件夹。
image098.jpg

选择PLUGINS文件夹并保存。
image100.jpg

出现上图,说明你需要重启OllyDbg,它会认可新的插件文件夹目录,但是首先你需要拷贝刚下载的插件。
image102.jpg

复制所有文档到PLUGINS文件夹内。
image104.jpg

现在CommandBar插件包里的所有文件都被复制到PLUGINS文件夹内(通常不需要复制所有文件,只需复制DLL文件即可)

现在关闭OllyDbg,如果已经关闭,重新打开,我们看到菜单Plugins出现CommandBar和它的选项。
image106.jpg

CommandBar出现在OllyDbg的底部。
image108.jpg

这是一个供输入命令的文本框,在很多情况下对我们很有用。以后,我们会看到它的用法。
学习怎样关联插件这一部很重要。

卸载插件只需要删除PLUGINS文件夹内相关的dll文件然后重启OllyDbg。然而,最好总是保持CommandBar被启用。再次从OllyDbg中打开CrackMe。

OllyDbg中最常用的快捷键:

F7执行一行代码,遇到CALL等子程序时会进入其中,进入后首先会停留在子程序的第一条指令上。
F8执行一行代码,遇到CALL等子程序不进入其代码。这两个键的功能有所不同,以后将会看到。
F2在显著行设置断点,再次按F2删除断点。例如:
image110.jpg

我们想在确定位置40101A处设置断点。
image112.jpg

用鼠标单击此行,就会像图中所示,此行被标记为灰色,然后按F2。

image114.jpg

我们看到在第一列的相应位置变为红色,这说明此处已设置断点,再次按F2则删除断点。F9运行调试程序,直到遇到断点停止运行。当程序运行时,在OllyDbg的右下角(译注6会显示单词Running。

image116.jpg

通过运行CrackMe,我们可以看到:
image118.jpg

临时暂停程序,可以按F12或Debug->Pause。
image120.jpg

我们可以看到OllyDbg显示单词Paused,继续执行程序,你可以按F9或Debug->Run。

选择DEBUG->CLOSE就可以关闭调试程序。

image122.jpg

以上就是OllyDbg总的概貌,其它深入的设置,我们将在探讨后续章节时会有所涉及。

译注1
原文крэкнинга,不知何意,根据理解,用Cracking代替。


译注2:
INTRODUCCIóN AL CRACKING,英文译名:INTRODUCTION TO CRACKING。
网址:http://ricardonarvaja.info/WEB/CURSO%20NUEVO/TEORIAS%20NUMERADAS/西班牙文,强大的Cracking教程,这个系列教程目前已有1200个以上课程内容。

译者注3
请从官方下载,网址:http://www.ollydbg.de/

译者注4
在这里,本人建议使用系统自带的文件。

译注5:
该选项在Debugging options的Analysis1中,Auto Start analysis of main module。

译注6
这个位置显示当前状态,通常我们习惯将其设置在左上角,可以在Options->Appearance,General标签下勾选Show status in toolbar。

随文附件。
1.          OllyDbg1.10,本文使用原版,请从官网下载,网址:http://www.ollydbg.de/
2.          CrackMe:ollydbg01-Crackme.zip
3.          插件:cmdbar310109c.zip

翻译说明:
该系列教程目前官方已更新到第47章。本文原文为俄语,译者不才,斗胆翻译,采用了能用的所有手段。虽经本人严加审校,但难免讹误。有些词句加入了译者的理解,所以可能部分内容与原文有所出入。翻译本文也是译者学习的过程,所以错误在所难免。如发现错误,敬请指正,以免误人子弟。

该系列教程链接:http://wasm.ru/series.php?sid=17


本系列文章汉化版转载看雪论坛


感谢原作者:RicardoNarvaja(西班牙人)


感谢热心翻译的朋友:

1~3章译者:BGCoder

4~58章译者:安于此生


全集配套程序下载地址:

链接: http://pan.baidu.com/s/1eQzTWfo 密码: vytv



评分

参与人数 28HB +29 THX +19 收起 理由
24567 + 2
Jawon + 1
一路走来不容易 + 1
虚心学习 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
Soul1999 + 1
消逝的过去 + 1
xgbnapsua + 1
我是好人 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
天天的学 + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
三月十六 + 1
DeeDarrick + 2 + 1 <span class="text2Link">[吾爱汇编论坛 <a target="_blank">52HB.COM</a>]- 软件反汇编逆向分析,软件安全必不可少!</span>.
weiran324 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
lies + 1
DavidCR + 1 + 1 [快捷评语] - 吃水不忘打井人,给个评分懂感恩!
rocklerson + 1 + 1 ★★★★★ 热心人,佛祖保佑你事事顺利 ,财源滚滚!!!
dqy13020940 + 1 + 1 ★★★★★ 热心人,佛祖保佑你事事顺利 ,财源滚滚!!!
2015 + 1 + 1 好人有好报!你的热心我永远不忘!谢谢!
小蜗牛 + 1 + 1 H大的大型作品收藏必须。!
不良人 + 1 + 1 感谢!新技能get√
xdr + 1 + 1 评分=感恩!简单却充满爱!感谢您的作品!
gd169 + 1 + 1 评分=感恩!简单却充满爱!感谢您的作品!
tyfjmll + 1 + 1 ★★★★★ 热心人,佛祖保佑你事事顺利 ,财源滚滚!!!
NOABC + 1 + 1 评分=感恩!简单却充满爱!感谢您的作品!
菜刀 + 1 + 1 好人有好报!你的热心我永远不忘!谢谢!
忧郁小生 + 1 + 1 ★★★★★ 热心人,佛祖保佑你事事顺利 ,财源滚滚!!!
haliyou001 + 2 + 1 评分=感恩!简单却充满爱!感谢您的作品!
雨季 + 2 + 1 评分=感恩!简单却充满爱!感谢您的作品!!.
zijingyao + 1 + 1 评分=感恩!简单却充满爱!感谢您的作品!

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
XYDFJYDYNB 发表于 2015-1-20 18:03 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
我叫KK 发表于 2015-1-20 18:53 | 显示全部楼层

好想  把这个系列的 每一个帖子都 回复过去 可惜不敢的说,,,,
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
haliyou001 发表于 2015-1-21 18:27 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
风清扬 发表于 2015-1-23 11:14 | 显示全部楼层

都是英文 第一章还有人  你看一章后那些
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
wpsys 发表于 2015-1-29 13:53 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
tyfjmll 发表于 2015-2-2 09:12 | 显示全部楼层

谢谢LZ感谢分享
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
gd169 发表于 2015-2-16 12:36 | 显示全部楼层

恒大的教程比较喜欢.因为他做了详细解释.这样可以哪些新手更容易学会.如果教程可以来一点创新哪就更好了.因为每个人的性格都不一样.但怎样可以让这十个不同性格的人都能适合.这才是最主要的.因为教学和教程都有很多种.例如一些人可以音乐来教学.有些可以用游戏来教程.所以要创新一整套是你自己开发出来的新思路教程.哪对学员和你都是很好的事.因为教程是心血的.也有生命的.2015年.你相信你能让它活起来的.;加油!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
小蜗牛 发表于 2015-3-5 11:47 | 显示全部楼层

H大的大型作品收藏必须! 好吧我就从来开启我的Craking
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
kisvoe520 发表于 2015-3-6 00:08 来自手机端 | 显示全部楼层

恒大给力
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层
6层
7层
8层
9层
10层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

快速回复 返回顶部 返回列表