通过一个例子来介绍OD的简单使用

article/2025/10/2 2:14:40

OllyDbg是一个32位动态调试器,在平常做逆向的题中用的比较多,下面用bugku一个简单的例子Eazy-Re来介绍一下OllyDbg的使用。

首先打开程序,看一下是干什么的,他提示你输入flag,这里我随便输入几个字母,提示我不正确。

在这里插入图片描述

我们用OD打开程序,会看到下面的这个样子,如果没接触过OD的人可能直接被劝退了,这是啥乱七八糟的,别急,一点点来看,打开程序后会出现5个面板(我更喜欢称之为窗口),分别是反汇编窗口,信息窗口,寄存器窗口,数据窗口,栈窗口。

  • 反汇编窗口

    反汇编窗口显示被调试程序的代码,总共有4列,分别是地址,十六进制的机器码,反汇编代码和注释。在最后一列注释中显示了相关API参数或运行简表,非常有用。

    在反汇编窗口的列中,默认情况下,双击可以完成如下操作:

    • 地址列:显示被双击行地址的相对地址,再次双击返回标准地址模式
    • 十六进制机器码列:设置或取消断点,对应的快捷键是F2
    • 反汇编代码列:调用汇编器,可以直接修改汇编代码,对应的快捷键是空格键
    • 注释列:允许增加或编辑注释,对应的快捷键是;
  • 信息窗口

    在进行动态跟踪时,信息窗口将显示与指令相关的各寄存器的值、API函数调用提示和跳转提示等信息。

  • 数据窗口

    数据窗口以十六进制和字符方式显示文件在内存中的数据。要查看指定位置的数据,可以使用快捷键Ctrl+G,输入地址,进行跳转。

  • 寄存器窗口

    ​ 寄存器窗口显示CPU各寄存器的值,支持浮点、MMX和3DNow!寄存器。可以单击右键或窗口标题切换显示寄存器的方式。

  • 栈窗口

    ​ 栈窗口显示栈的内容,即ESP指向地址的内容。栈窗口非常重要,各API函数和子程序都利用它传递参数和变量等。

介绍完各个窗口后开始进行分析这道题,在一开始运行这个程序的时候,他有一些提示字符,忘记的可以翻回去看看,我们在反汇编窗口的空白处右击-->中文搜索引擎-->搜索ASCII,可以查看程序中出现的字符,然后Ctrl+F搜索你之前看到的提示字符(或者部分提示字符),比如这里我搜的是’flag’,就找到了提示字符的部分,然后上下翻一翻有什么其他值得注意的字符,就看到了真正的flag,这道题到这里就结束了,但是为了介绍OD的使用,我们继续往下分析。

在这里插入图片描述

在这里插入图片描述

我们假设没看到flag,但我们看到了关于正确或者错误的提示,比如我们一开始随便输入了几个a,提示的是“flag不太对……”,我们双击跟进去,找到对应反汇编代码的位置。

在这里插入图片描述
可以看到,提示正确和错误的位置距离不远,并且可以看到一个有一个jnz判断,跳转到提示错误的地方(在十六进制列有一个红色的箭头)。我们在这个判断下个断点,快捷键F2

然后运行程序,注意刚才我们只是打开了一个程序,也就是加载了程序,并没有运行它,可以看到左上角有个黄底红字提示我们是暂停状态。我们可以通过调试->运行或者快捷键F9来运行程序,也可以用快捷图标(那个红色的三角)来运行。

在这里插入图片描述
注意看,左上角已经变成运行了,而且程序给出正常提示,如果想让光标回到当前EIP所指向的语句双击右边寄存器窗口中的EIP就可以了。

我们还是输入一下有特征的字符串,方便我们跟踪,比如还是几个a,然后回车,发现程序到达我们的断点了。

在这里插入图片描述

首先可以看到信息栏提示跳转已实现,依旧是说我们的输入错了,然后看右边寄存器发现了真正的flag,为什么,因为比较的时候会将你输入的字符串和真正的flag放在寄存器中。

我们把断点下在前面一点的位置,比如0x47105F这个地址。然后重新运行程序,快捷键Ctrl+F2,或者点快捷图标,X左边的那个双三角。重新输入aaaaaaa,回车,程序运行到断点位置。然后F8单步执行。

在这里插入图片描述
根据信息窗口我们知道他把我们输入的字符串地址放在了eax寄存器中,继续单步执行

在这里插入图片描述
可以看到寄存器窗口已经有了我们的输入,同理,下面的命令是把真正的flag地址放入ecx中,然后进行一些比较。

下面是一些常用快捷键的总结

快捷键功能
F2设置或取消无条件断点
Ctrl+G显示指定内存地址的数据
F7单步步进,遇到call指令跟进
Ctrl+F7重复按F7,指定按ESC、F12或者遇到其他断点时停止
F8单步步过,遇到call指令路过,不跟进
Ctrl+F8重复按F8,指定按ESC、F12或者遇到其他断点时停止
Ctrl+F9直到出现ret指令时中断
Alt+F9若进入系统领空,此命令可瞬间回到应用程序领空
F9运行程序
双击EIP寄存器让光标回到当前EIP所指向的语句
-(减号)回看之前单步跟踪的代码
Alt+B打开断点窗口
F4执行到当前光标所选中的指令

使用OD分析程序的一般步骤:找特殊字符串或者API,下断点,运行调试。当然如果对汇编不熟悉的话可能分析很费劲,可以与静态分析工具IDA pro一起结合使用。IDA pro的使用介绍可以参考通过一个例子来介绍IDA的简单使用
参考书籍:《加密与解密》


http://chatgpt.dhexx.cn/article/D80kk1nS.shtml

相关文章

OD基本介绍及快捷键讲解

OD简介 Ollydbg(简称OD)是Windows平台下Ring3级的程序调试利器。程序调试有静态调试和动态调试两种。静态调试是指将程序源代码编译成可执行程序之前,用手工或编译程序等方法对程序源代码进行测试,来查找和修正程序中的语法错误和…

OD修改软件

一、打开软件,查看正常运行的程序 二、打开OD,拖入要调试的程序 三、分析汇编代码 title是"Hello world",内存地址是0x00403000 四、数据窗口跳转到该地址,快捷键ctrlG 五、修改数据 点击要修改的地方,按…

简单详细的OD破解教程(转)

简单详细的OD破解教程 2007-08-04 15:46作者:CCDebuger注:昨天在网上见到了这篇文章,但缺少插图,从另外一篇文章中也看到了类似的的教程文章,里面的插图质量实在不敢恭维。在一个论坛中正好下载了文章中所介绍的破解软…

OD教程(汇编基础)

一、call有以下几种方式&#xff1a; call 404000h ;直接跳到函数或过程的地址 call eax ;函数或过程地址存放在eax call dword ptr [eax] call dword prt[eax ] call dword ptr [eax5] call dword prt[eax5] calldword ptr [<&API>] ;执行一个系统API 二、关于…

小甲鱼解密系列调试篇——OD使用教程笔记(持续更新中)

目录 一点铺垫&#xff1a;基础知识 1.汇编语言 2.NAG窗口 3.SEH 4.断点类型 一、MessageBox.exe修改程序标题内容——修改函数传入值 二、TraceMe.exe暴力破解程序登陆界面——搜索函数、寻找附近调用取值的地方 三、reverseMe.exe暴力破解/打补丁实现注册——分析文件…

第52篇:OD使用教程2-设置API函数断点去除软件对话框及过期校验

Part1 前言 大家好&#xff0c;我是ABC_123。之前分享过一篇Ollydbg逆向分析入门教程《第50篇&#xff1a;使用OD逆向破解流光Fluxay扫描器各种限制》&#xff0c;这篇文章主要讲解了在使用OD逆向分析时&#xff0c;如何按照编程人员的思维去解除软件的各种限制。方法有点麻烦…

od的简单使用--(1)

od的简单使用——&#xff08;1&#xff09; 一&#xff0c;本教程需要的工具OllyDBG 下载&#xff1a; OllyDBG 中各个窗口的功能如上图。简单解释一下各个窗口的功能&#xff0c;更详细的内容可以参考 TT 小组翻译的中文帮助&#xff1a;反汇编窗口&#xff1a;显示被调试程…

PyCharm 社区版(Community)能不能商用?

其实官方博客已经给出了答案&#xff0c;截图如下&#xff1a; PyCharm社区版是专业版的阉割版&#xff0c;PYcharm专业版增加了Web开发、Python We框架、Python分析器、远程开发、支持数据库与SQL等更多高级功能。两者区分如下&#xff1a; 所以&#xff0c;大胆放心的用PyC…

Pycharm社区版下载及安装教程

下载&#xff1a; 下载地址&#xff1a;https://www.jetbrains.com/pycharm/download/#sectionwindows 安装&#xff1a; 打开你下载的路径&#xff0c;双击.exe文件&#xff0c;点击运行 默认点击next之后&#xff0c;选择路径&#xff0c;尽量不要选择在C盘&#xff0c;然后…

Pycharm社区版安装教程(永久免费,随时升级)

首先进入JetBrain的官网(国内正常访问): https://www.jetbrains.com/ 第一眼看到的界面如下图所示: 然后找到我们的Pycharm专题页: 进入Pycharm的专题页面之后,点击下载按钮(这里有两个按钮,点任何一个都行): 然后进入到真正的下载页面你会发现有两个版本的Pycharm,一个…

pycharm安装-社区版

下载地址 Download PyCharm: Python IDE for Professional Developers by JetBrains https://www.jetbrains.com/pycharm/download/#sectionwindows 下载社区版 安装过程 双击安装包 开始安装 安装过程 首次启动 双击桌面图标 选风格 深色保护视力 新建项目 新建文件

如何用Pycharm社区版连接数据库

用Pycharm社区版连接数据库 Pycharm 社区版安装过程 Pycharm 社区版 Pycharm社区版是比专业少了一些功能&#xff0c;直接并没有连接数据库的工具&#xff0c;所以需要自行下载安装。 安装过程 1.file->settings 2.在Plugins中搜索database 3.点击搜素 4.选中要下载的…

pycharm社区版安装及使用教程(win10系统)

1.下载 下载地址&#xff1a;https://www.jetbrains.com/pycharm/download/#sectionwindows 2.双击安装程序&#xff0c;直接next 3.选择安装路径&#xff08;安装路径最好不要带中文和空格&#xff09; 4.勾选配置&#xff0c;然后next 没有框起来的那一项不用勾选&#xf…

Pycharm的安装并且连接已有的Python环境实现自由编译(附中文配置)|并通过Pycharm实现增加网站访问

&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d; &#x1f947;博主昵称&#xff1a;Jovy. &#x1f35f;博客主页…

使用Pycharm连接服务器,实现代码同步

Table of Contents 一.目标 二.本地环境 三.步骤 四.同步代码 五. 配置远程Python解释器 六. 使用远程解释器运行本地Python程序 一.目标 Pycharm软件连接服务器&#xff0c;同步本地代码到服务器 二.本地环境 Pycharm专业版&#xff08;社区版没有该功能&#xff09;…

linux下pycharm专业版和社区版的安装

一.社区版的安装 1.在官网下载pycharm的源码安装包(https://www.jetbrains.com/pycharm/&#xff09; 进入官网&#xff0c;选择toolsx下的pycharm&#xff0c;再点击右上角的download&#xff0c;进去后选择想要的版本即可。 当然安装包也可以通过别人的分享获得&#xff0…

Pycharm社区版下载安装教程+图文教程

Pycharm下载网址&#xff1a;Download PyCharm: Python IDE for Professional Developers by JetBrains 下载后双击运行安装&#xff1a; 选择安装路径&#xff1a; 然后选择install安装即可 选择同意。 打开pycharm后新建项目&#xff0c;选择项目的路径&#xff0c;选择Pytho…

手把手教学安装pycharm(社区版)

1.首先我们要进入pycharm社区版的下载地址 下载&#xff1a;https://www.jetbrains.com/pycharm/ 官网中下载windows社区版&#xff08;免费&#xff09; 2.点击右边的社区版“COMMUNTY”下面的"DOWNLOAD"进行下载 3.下载完成后双击安装包进行安装 4.下一步&#…

Pycharm-community-2020.2.3 社区版安装教程

Pycharm-community-2020.2.3 社区版安装教程 1.安装 step1 step 2 首先是更改安装地址&#xff0c;推荐安装在D盘&#xff0c;如果和我一样C盘容量大的话&#xff0c;也可以不改&#xff0c;直接点击【Next】&#x1f604; step3 勾选所有即可&#xff0c;点击【Next】 step4…

PyCharm社区版下载和安装 2022_12_11

下载 下载地址&#xff1a;https://www.jetbrains.com/pycharm/download/#sectionwindows 安装 pycharm-community-2022.3.exe