工具栏

各种窗口切换

1.日志窗口(L):
2.模块窗口(E):查看每个模块的内存基址

3.内存窗口(M):查看每一个模块的段,所占用的内存区域

4.线程窗口(T):线程信息
5.窗口(W):查看程序的窗口句柄,窗口名,风格样式,回调函数等信息
6.句柄(H):
7.反汇编窗口( C):也就是我们的汇编代码显示窗口—很重要
8.补丁窗口(/):
9:堆栈窗口(K):可以查看调用堆栈,调试时堆栈回溯—很重要
10.断点窗口(B):所有的F2断点都显示在这里
11.参考( R):比如如果你显示了参考字符串,可以在这个窗口找到
12.run跟踪窗口(…):

如何开始调试

  • 直接调试:

    • 拖拽方式:直接把文件拖拽到OD打开
    • 菜单栏-文件-打开
  • 附加调试:
    • 可以调试正在运行的程序
  • 设置为默认的调试器:
    • 在程序崩溃的时候,能够接管程序,调试错误
  • 调试DLL文件:
    • Dll一般不是作为独立的程序运行,所以也不能执行
    • OD能够独立的调试DLL,OD自己运行了一个程序,程序使用LoadLibrary加载DLL,然后可以调试DLL

OD主界面:
主要分为四部分:反汇编窗口、寄存器窗口、内存窗口、堆栈窗口

数据窗口支持查看各种类型的数据:
常用的几种形式:

  • 十六进制 +ASC或者UNICODE的方式
  • 长整型中的地址的形式(识别IAT比较明确的形式)
  • 反汇编形式:

常用功能快捷键

术语

断点:程序被中断的地方
领空:程序自己程序码所处的位置
程序入口点,也叫OEP:程序在开始运行时执行的第一条指令的地址

快捷键

F2: 设置断点或双击HEX数据列
F8: 单步步过
F7: 单步步入,遇到CALL指令会进入其中,进入后会停在子程序第一条指令前
F4: 运行到选定位置,直接运行到光标所在位置暂停
F9: 运行,按下这个件如果没有设置相应断点的话,被调式的程序将直接开始运行
Ctrl+F9: 执行到返回,此命令在执行到一个ret指令时暂停,常用于从系统领空返回到我们调试的程序领空
Alt+F9: 执行到用户代码,可用于从系统领空快速返回到我们调试的程序领空

  • 跳转地址

    • 在jmp或者call指令上按回车,跟踪进入
    • +号前进一步
    • -号后退一步
  • 修改汇编指令
    • 双击反汇编窗口
    • 按下空格
  • 修改内存,编辑二进制代码
    • Ctrl+E,不同窗口编辑不同地方
  • 查找指令
    • Ctrl+F 搜索一条指令
    • Ctrl+L 搜索下一条指令
    • Ctrl+s 搜索多条指令
  • 分析代码
    • Ctrl+A 分析代码
  • 注释
    • 左键点击注释列
    • 右键点击注释,添加注释
    • 快捷方式 ---- 分号注释
  • 添加标签
    • 只能给地址添加标签,不能是[ebp+8]
    • 冒号(快捷方式)
  • 查找指定地址
    • Ctrl+G
    • 输入地址或者API函数名
    • 查找API地址==>(在内存窗口使用dp+MessageBoxA也能做到)
  • 字符串搜索
    • 使用插件 ----- 中文搜索引擎
    • 右键—查看—所有文本字符串
  • 重新启动程序
    • Ctrl+F2
  • 内存窗口命令栏
    • dd +地址 看该地址内存
    • dp +MessageBoxA 定位API函数

OD分析信息

我们分析程序下的断点,添加的标签,注释等到信息,都保存在UDD文件夹中
如果想让别人分享你的分析成果,可以把UDD文件发给对方

OllyDbg基础教程相关推荐

  1. OllyDbg完全教程

    OllyDbg完全教程 目录 第一章概述..................................................................1 第二章组件....... ...

  2. OllyDBG完美教程(超强入门级)

    OllyDBG 视频教程:https://www.bilibili.com/video/av6889190 动态调试工具之OllyDbg(OD)教程:https://www.bilibili.com/ ...

  3. Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现

    自Spring Cloud Alibaba发布第一个Release以来,就备受国内开发者的高度关注.虽然Spring Cloud Alibaba还没能纳入Spring Cloud的主版本管理中,但是凭 ...

  4. [SQL基础教程] 1-5 表的删除和更新

    [SQL基础教程] 1-5 表的删除和更新 表的删除 语法 DROP TABLE <表名>; 法则 1-12 删除的表无法恢复 表定义的更新 语法 ALTER TABLE<表名> ...

  5. python 包用法_Python 基础教程之包和类的用法

    Python 基础教程之包和类的用法 这篇文章主要介绍了 Python 基础教程之包和类的用法的相关资料, 需要的朋友可以参考下 Python 是一种面向对象.解释型计算机程序设计语言,由 Guido ...

  6. Spring Cloud Alibaba 基础教程:Nacos 生产级版本 0.8.0

    Spring Cloud Alibaba 基础教程:Nacos 生产级版本 0.8.0 昨晚Nacos社区发布了第一个生产级版本:0.8.0.由于该版本除了Bug修复之外,还提供了几个生产管理非常重要 ...

  7. Python培训基础教程都教哪些

    根据相关数据统计,目前学习Python技术的同学大多数是零基础,都是从其他行业转型来学习的,那么Python培训基础教程都教哪些呢?好不好学呢?来看看下面的详细介绍. Python培训基础教程都教哪些 ...

  8. 深度学习之Pytorch基础教程!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:李祖贤,Datawhale高校群成员,深圳大学 随着深度学习的发展 ...

  9. python平稳性检验_时间序列预测基础教程系列(14)_如何判断时间序列数据是否是平稳的(Python)...

    时间序列预测基础教程系列(14)_如何判断时间序列数据是否是平稳的(Python) 发布时间:2019-01-10 00:02, 浏览次数:620 , 标签: Python 导读: 本文介绍了数据平稳 ...

最新文章

  1. java 传入参数_java参数怎么传递参数
  2. Linux-软件包管理
  3. android本地xml文件怎么打开,android 打开本地文件
  4. **CI两种方式查询所返回的结果数量
  5. dalsa线扫相机调试文档_线阵相机调试文档
  6. python整形不可迭代_Python – TypeError:’int’对象不可迭代
  7. g​e​t​A​t​t​r​i​b​u​t​e​和​g​e​t​P​a​r​a​m​e​t​e​r​区​别...
  8. MFC 常见窗口操作
  9. I.MX6 dhcpcd 需要指定网卡
  10. hua图软件 mac_CAD迷你画图for Mac-CAD迷你画图Mac版下载 V3.3.6-PC6苹果网
  11. 2017 matlab 仿真,【2017年整理】Simulink仿真教程.ppt
  12. 2021抖音上热门技巧有哪些?
  13. MediaSession框架全解析
  14. mysql生成18位纯数字id_MySQL实现注册时随机生成数字id,类似于注册qq时随机生成qq号...
  15. 答题对战方案java_使用WebSocket实现实时多人答题对战游戏
  16. 软件测试为什么评审,为什么要做设计评审和测试用例评审
  17. 解决时间输出格式带 T 带 000+00:00 输出时间多了个T 返回时间格式带T
  18. MySQL数据库锁介绍
  19. Java后台+PDF.js 实现pdf分页加载的后端实现
  20. 风尚云网学js-关于js对象数组如何去重?

热门文章

  1. RemoteView在什么地方用
  2. c语言ecit,[转载]c# linq的一些运用 – EcitGis – 博客园
  3. 2021双11促销短信方案参考
  4. Thinkphp中form action=###/form跳转
  5. 91sp.vido.ws.php,104.27.179.100
  6. 三月刷题笔记(C++)
  7. Android常见Drawable使用
  8. bugku-md5 collision(NUPT_CTF)
  9. 如何关闭计算机Tcp5900端口,电脑135/139端口是干什么的 Windows如何关闭135/139端口方法...
  10. layui弹出最外层iframe