目录

【飞郁2022新课程】31 - OD更多技巧

目录

上一节课,给大家介绍OD的一些基本的使用方法,当然OD不仅仅只有这些功能和指令,这节课咱们就来更深入的了解一下OD

对命令行插件进行操作

首先我们来了解一下数据窗口的命令行插件都支持哪些命令

之前说了DD是在数据窗口中查看一个地址,其实这只是将数据用堆栈格式转存,是不是和堆栈窗口的结构很像?其实还有一个命令是dump,他和dd的效果是类似的

还有几种转存方式我们来看下

DA,转存为反汇编代码

https://cdn.jsdelivr.net/gh/xinqinew/pic@main/img/82435280ef0d6432ad81ed1fa8094a22c2237090.jpg@942w_524h_progressive-20211223184642229.jpg

DB,转存为十六进制字节格式

https://cdn.jsdelivr.net/gh/xinqinew/pic@main/img/a00b7057fe0ad06e55dbb98de2e92160b8d70f7b.jpg@942w_444h_progressive-20211223184637302.jpg

DC,用ASCII转存

https://cdn.jsdelivr.net/gh/xinqinew/pic@main/img/a57308c65d67a723151cc0b74568fd1ef79d06e6.jpg@942w_455h_progressive-20211223184633974.jpg

还有很多很多,下面我们就不截图了,简单来说下

DU,用UNICODE型转存

DW,用十六进制字词格式转存,也就是WORD型

BP,进行条件中断

BC,清除断点

MR,内存访问断点

MW,内存写入断点

MD,清除内存断点

HR,硬件访问断点

HW,硬件写入断点

HE,硬件执行断点

HD,清除硬件断点

我们前期学习常用的命令就只有这些,更多的命令大家可以到网上搜索一下,还有很多很多

对数据窗口进行操作

我们在数据窗口中随便找一个数据,点右键

https://cdn.jsdelivr.net/gh/xinqinew/pic@main/img/b82854eccd2a54d3809c036ba2bed2e5c559406e.jpg@425w_959h_progressive.jpg

在这里,可以对数据进行二进制编辑,复制等操作,

https://cdn.jsdelivr.net/gh/xinqinew/pic@main/img/5e079a2f47182b588615a355241b89ef8ec5e208.png@797w_303h_progressive-20211223184624958.png

这个功能主要是用于一次性复制和写入一些较长的内存数据

还可以对某个地址以某个数据类型下断点

https://cdn.jsdelivr.net/gh/xinqinew/pic@main/img/0bed414a7196ef1166f917dc59ec70090511641e.jpg@942w_318h_progressive-20211223184621693.jpg

我们可以看到,这里可以下5种断点,而硬件访问和写入可以下3种数据类型的断点,

如果我们用xllydbg调试64位的程序,还会多出一个QWORD的访问类型,这个我们放到后面去说

还有一些其他常用功能,比如修改,数据窗口中跟随等等,这些就是数据窗口的主要操作方式

反汇编窗口

反汇编窗口主要体现的是内存的代码段,我们先点击alt+E,或者点击上面的"E"按钮

https://cdn.jsdelivr.net/gh/xinqinew/pic@main/img/299b992caf99199d8ddf112d58dc2a416dd0062d.png@650w_38h_progressive-20211223184617428.png

可以来到模块窗口,我们直接选择代码所在的模块双击,可以调到模块所在代码段

https://cdn.jsdelivr.net/gh/xinqinew/pic@main/img/8d425b94c04799117bb13e745bb836db058ec8ed.jpg@942w_119h_progressive-20211223184613429.jpg

https://cdn.jsdelivr.net/gh/xinqinew/pic@main/img/463e0d3bb6f43ba1785000981d7ab18fdb05bd1a.jpg@942w_243h_progressive.jpg

来到这个界面以后点击ctrl+A可以分析整个模块的代码,这个过程根据模块大小需要不同的时间.

在反汇编窗口中点右键,可以看到很多选项,对代码段大部分的操作都可以在这里实现,比如

右键-查找可以用来查找注释,常量,命令,二进制字串等信息

https://cdn.jsdelivr.net/gh/xinqinew/pic@main/img/a31146d581bdad1e7e9fcd0fe3f688bbd6380e5d.jpg@942w_1125h_progressive.jpg

在断点中也可以设置F2断点,条件断点,硬件执行断点等等

根据OD加载的插件不同,我们能够使用的功能也会有一些变化.

调用堆栈窗口

当我们对一个地址下F2断点后,可以点击菜单下面的

https://cdn.jsdelivr.net/gh/xinqinew/pic@main/img/0b6575b6ce32777c95c695df01d94ceec013b4de.png@53w_45h_progressive.png

来查看函数的调用关系

https://cdn.jsdelivr.net/gh/xinqinew/pic@main/img/b0a1cbed600fd08e48166b9f23a174f91b0a8f1e.jpg@942w_278h_progressive-20211223184601897.jpg

如何取看这个窗口我们会在后面课程中讲解

以上就是初学者需要了解的一些OD的使用技巧,更加深入的内容我们会在后面的课程中一一介绍