吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 4530|回复: 67

[汇编] 1.3 在OD中查看数据

  [复制链接]
大飞哥自习室 发表于 2022-3-21 20:48 | 显示全部楼层 |阅读模式

在逆向分析中,调试工具可以说是非常重要的。调试器能够跟踪一个进程的运行时状态,在逆向分析中称为动态分析工具。动态调试会用在很多方面,比如漏洞的挖掘、游戏FZ的分析、软件加密解密等方面。本节介绍应用层下最流行的调试工具OllyDbg。
OllyDbg简称OD,是一款具有可视化界面的运行在应用层的32位的反汇编逆向调试分析工具。OD是所有进行逆向分析人员都离不开的工具。它的流行,主要原因是操作简单、参考文档丰富、支持插件功能等。

熟悉OD
OD的操作非常简单,但是由于逆向是一门实战性和综合性非常强的技术,因此要真正熟练掌握OD的使用却并不是容易的事,单凭操作而言看似没有太多的技术含量,但是其真正的精髓在于配合逆向的思路来达到逆向者的目的。
1.OD的选型
为什么先介绍OD的选型,而不直接开始介绍OD的使用呢?OD的主流版本是1.10和待崛起的2.0。虽然它的主流版本是1.10,但是它仍然存在很多修改版。所谓修改版,就是由用户自己对OD进行修改而产生的,类似于病毒的免杀。OD虽然是动态调试工具,但是由于其强大的功能经常被很多人用在软件逆向等方面,导致很多作者的心血付诸东流。软件的作者为了防止软件被OD调试,加入了很多专门针对OD进行调试的反调试功能来保护自己的软件不被调试,从而不被逆向;而逆向者为了能够继续使用OD来逆向软件,则不得不对OD进行修改,从而达到反反调试的效果。
调试、反调试、反反调试,对于新接触调试的爱好者来说容易混淆。简单来说,反调试是阻止使用OD进行调试,而反反调试是突破反调试继续进行调试。OD的修改版本之所以很多,目的就是为了能够更好地突破软件的反调试功能。
因此,如果从学习的角度来讲,建议选择原版的OD进行使用。在使用的过程中,除了会掌握很多调试技巧外,还会学到很多反调试的技巧,从而掌握反反调试的技巧。如果在实际的应用中,则可以直接使用修改版的OD,避免OD被软件反调试,从而提高逆向调试分析的速度。
注意:修改版本的OD可以叫着千奇百怪的名字,比如OllyICE、OllySeX等。
2.熟悉OD主界面
OD的发行是一个压缩包,解压即可运行使用,运行OD解压目录总的ollydbg.exe程序,就会出现一个分布恰当、有菜单有面板和能输入命令的看着很强大的软件窗口,如图1-4所示。
在图1-4的OD调试主窗口中的工作区大致可以分为6个部分,按照从左往右、从上往下,这6部分分别是反汇编窗口、信息提示窗口、数据窗口、寄存器窗口、栈窗口和命令窗口。下面分别介绍各个窗口的用法。
反汇编窗口:该窗口用于显示反汇编代码,调试分析程序主要在这个窗口中进行,这也是进行调试分析的主要工作窗口。
信息提示窗口:该窗口用于显示与反汇编窗口中上下文环境相关的内存、寄存器或跳转来源、调用来源等信息。
数据窗口:该窗口用于以多种格式显示内存中的内容,可使用的格式有Hex、文本、短型、长型、浮点、地址和反汇编等。
寄存器窗口:该窗口用于显示各个寄存器的内容,包括前面介绍的通用寄存器、段寄存器、标志寄存器、浮点寄存器。另外,还可以在寄存器窗口中的右键菜单选择显示MMX寄存器、3DNow!寄存器和调试寄存器等。
栈窗口:该窗口用于显示栈内容、栈帧,即ESP或EBP寄存器指向的地址部分。
命令窗口:该窗口用于输入命令来简化调试分析的工作,该窗口并非基本窗口,而是由OD的插件提供的功能,由于几乎所有的OD使用者都会使用该插件,因此有必要把它也列入主窗口中。
10.png
3.在数据窗口中查看数据
前面已经介绍,OD是一款应用层下的调试工具,它除了可以进行软件的调试以外,还可以帮助我们学习前面介绍的数据宽度、进制转换等知识,而且能够帮助我们学习汇编语言。本节主要介绍通过OD的数据窗口来观察数据宽度。
为了能够直观地观察内存中的数据,我们通过RadAsm创建一个没有资源的汇编工程,然后编写一段自己的汇编代码,代码如下:

微信截图_20220321204323.png
12.png
在上面的代码中,定义了10个全局变量。首先,var1、var2和var3分别定义了dword类型的3个变量,其中var1的值是十六进制的12h,var2的值是十进制的12,var3的值是2进制的11b。b1到b4四个变量是字节类型的,w1和w2两个变量是字类型的,d变量是dword类型的。
注意:在汇编代码中定义变量,db表示字节类型,dw表示字类型,dd表示双字类型。而在表示数值的时候,以h结尾的表示十六进制数,以b结尾的表示2进制数,结尾处没有修饰符的默认为十进制数。


这10个全局变量就是我们要考察的关键。在RadAsm中进行编译连接后,直接按下Ctrl + D这个快捷键,即可在RadAsm安装时自带的OD中打开。在OD调试器中打开该程序后,观察它的数据窗口(如图1-5所示)。
15.png

在图1-5中,数据窗口一共有3列,分别是地址列、HEX数据列和ASCII列。这3个列,可以通过单击鼠标右键来改变现实方式和显示的列数。在地址00403000处开始的4个字节12 00 00 00是十六进制的12,也就是在汇编代码中定义的var1;在地址00403004处的4个字节0C 00 00 00是十六进制0C,也就是在汇编代码中定义的var2,var2变量定义的值是十进制的12,也就是十六进制的0C;在地址00403008处的4个字节03 00 00 00是十六进制的03,也就是在汇编代码中定义的var3,var3变量定义的值是2进制的11,也就是十六进制的03。
这3个变量在我们定义的时候都是以dd进行的,都是dword类型的变量,分别各占用4字节,因此在内存中,前3个变量分别是12 00 00 00、0C 00 00 00和03 00 00 00。
在地址0040300C处的值是11 22 33 44,这4个值分别是我们定义b1、b2、b3和b4 4个字节型的变量,这4变量按照内存由低到高的顺序显示分别是11、22、33、44。
在地址00403010处显示的值是66 55 88 77,这4个值分别对应我们定义的w1和w2两个字型变量,但是我们定义的变量w1的值是5566h,w2的值是7788h,在内存中为何显示的是6655和8877呢?这就是我们提到过的字节顺序的问题。我们的主机采用的是小尾方式存储的数据,也就是数据的低位存放在内存的低地址中,数据的高位存放在内存的高地址中,因此在地址00403020中存放的是5566H的低位数据66,在地址00403021中存放的是5566H的高位数据55,在内存看时,顺序是相反的。
在地址00403014处存放的是78 56 34 12,这是我们定义的最后一个变量d,它也是按照小尾方式存储在内存中的。因此,在查看内存时顺序也是反的。
OD提供了多种查看内存数据的方式,通过在数据窗口中单击鼠标右键,会弹出如图1-6所示菜单。
当在数据窗口中选择数据时,右键的菜单提供编辑、赋值、查找、断点功能,如图1-7所示。
微信截图_20220321204552.png


4.通过命令窗口改变数据窗口显示方式
在图1-4中的最下方可以看到有一个输入命令的编辑框,在此处可以输入OD的相关命令以提高调试的速度。本小节就介绍如果通过命令窗口来改变数据窗口的显示方式。
在上面代码中定义变量时,使用了db、dw和dd三种类型,在OD的命令窗口中也同样可以使用者3个命令,其格式分别如表1-7所列。
8888555.png 77777777777.png


从图中可以看出不同方式下数据窗口显示的样式,但是无论使用哪种方式显示数据,地址列总是会显示在最前面的,只要我们知道数据的地址,就可以直接在命令窗口中输入显示数据的格式来查看指定内存中的数据。


评分

参与人数 17HB +17 THX +7 收起 理由
花盗睡鼠 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
消逝的过去 + 1
后学真 + 1 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
风里去 + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
yexing + 1
我是大表哥 + 1
凌夏随缘 + 1
louhaihua + 2 + 1
agan8888 + 1
zuiyichenlun + 1 <span class="text2Link">[吾爱汇编论坛<a target="_blank">52HB.COM</a>]-吃水不忘打井人,给个评分懂感恩!</span>.
ldljlzw + 1
一蓑烟雨 + 1 + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
成丰羽 + 1 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
w5151183 + 1 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
莣孒嬡沵芣蓜 + 4 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
河图 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
zxjzzh + 2 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
EQJjHBgCr 发表于 2022-3-21 20:48 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
JbV140 发表于 2022-3-21 20:49 | 显示全部楼层

感谢楼主
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
IPGVh84539 发表于 2022-3-21 20:50 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
CYTNRFji381 发表于 2022-3-21 21:08 | 显示全部楼层

谢谢分享
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
eoCqP 发表于 2022-3-21 21:25 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
YKkUuXp10 发表于 2022-3-21 21:26 | 显示全部楼层

感谢楼主
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
KUp9281 发表于 2022-3-21 21:29 | 显示全部楼层

谢谢分享
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
fFEH0 发表于 2022-3-21 22:09 | 显示全部楼层

谢谢分享
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
aAsryTlc 发表于 2022-3-21 22:21 | 显示全部楼层

谢谢分享
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!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

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