一、断点

认识OD的两种断点:

OllyDBG从原理上来区分,有两种不同的断点:软件断点和硬件断点。

也许会有朋友说那不是还有内存断点吗?

内存断点严格来说是属于一种特殊的软件断点。

内存断点:

内存断点每次只能设置一个,假如你设置了另一个内存断点,则上一个会被自动删除。

设置一个内存断点,会改变整块(4KB)内存的属性,哪怕你只设置一个字节的内存断点。

另外还需要提一下的是,内存断点会明显降低OD的性能,因为OD经常会校对内存。

软件断点:

当我们按下F2设置的断点就是软件断点。

设置该断点的原理是在断点处重写代码,插入一个int3中断指令,当CPU执行到int3指令的时候,OD就可以获得控制权。

硬件断点:

这个原理跟软件断点不同,硬件断点的可行性依赖于CPU的物理支持。

传说中,有这么一些寄存器,它们只用于调试,我们称为调试寄存器:Dr0~Dr7

其中Dr0~Dr3四个寄存器用来存放中断地址,Dr4、Dr5保留不使用,Dr6、Dr7用来记录Dr0~Dr3的属性(如读,写还是执行,单位是字节,字还是双字)。

因此,这就解释了为啥硬件断点只有四个,天生不足哈。

OD教程(基础--断点)相关推荐

  1. Xamarin XAML语言教程基础语法篇大学霸

    Xamarin XAML语言教程基础语法篇大学霸 前  言 Xamarin是一个跨平台开发框架.它可以用来开发iOS.Android.Windows Phone和Mac的应用程序.使用Xamarin框 ...

  2. iOS10 UI教程基础窗口的内容与设置起始窗口

    iOS10 UI教程基础窗口的内容与设置起始窗口 iOS10 UI教程基础窗口的内容与设置起始窗口,本章我们从iOS10开发中UI的基础知识开始讲解,其中包括了窗口.视图以及UI层次结构和Views的 ...

  3. Django 3.2.5博客开发教程:基础配置

    创建项目之后,我们需要对项目进行最基础的配置.这些配置是我们做项目的时候必须要配置的,所以我们先提前配置好. 我们打开myblog目录下的settings.py文件. 一.设置域名访问权限 myblo ...

  4. sqlalchemy mysql教程_SQLAlchemy 教程 —— 基础入门篇

    SQLAlchemy 教程 -- 基础入门篇 一.课程简介 1.1 实验内容 本课程带领大家使用 SQLAlchemy 连接 MySQL 数据库,创建一个博客应用所需要的数据表,并介绍了使用 SQLA ...

  5. spacy教程--基础

    spacy教程–基础 安装 pip install spacy 训练模型 安装之后还要下载官方的训练模型, 不同的语言有不同的训练模型,这里只用对应中文的模型演示: python -m spacy d ...

  6. Midjourney|文心一格prompt教程[基础篇]:注册使用教程、风格设置、参数介绍、隐私模式等

    Midjourney|文心一格prompt教程[基础篇]:注册使用教程.风格设置.参数介绍.隐私模式等 开头讲一下为什么选择Midjourney和文心一格,首先Midjourney功能效果好不多阐述: ...

  7. 日系原画教程基础-张聪-专题视频课程

    日系原画教程基础-5072人已学习 课程介绍         通过整体课程让大家详细的了解美术风格之日系的制作手法 课程收益     让大家更加的了解美术在原画中的运用 讲师介绍     张聪 更多讲 ...

  8. 深度学习小白入门教程-基础环境篇

    深度学习小白入门教程-基础环境篇 如有图片显示失败,请回小主主页查看~ Anaconda 安装包下载方式一:官网(科学上网比较慢,不推荐) 安装包下载方式二:清华镜像(推荐) 具体安装步骤(跟着箭头来 ...

  9. 基于c++和asio的网络编程框架asio2教程基础篇:1、基本概念和使用说明

    基于c++和asio的网络编程框架asio2教程基础篇:1.基本概念和使用说明 由于asio2没有写技术文档,因此打算写几篇文章介绍一下如何使用它,主要是针对新手. 1.asio2如何使用? asio ...

  10. 基于c++和asio的网络编程框架asio2教程基础篇:2、各个回调函数的触发顺序和执行流程

    基于c++和asio的网络编程框架asio2教程基础篇:2.各个回调函数的触发顺序和执行流程 以tcp举例: tcp服务端流程: #include <asio2/asio2.hpp>int ...

最新文章

  1. 从JVM看类的加载过程与对象实例化过程
  2. 从表到里学习JVM实现
  3. Dubbo底层采用Socket进行通信详解
  4. VC连接access
  5. sql 语句按字段指定值排序及分页
  6. link标签中的integrity和crossorigin字段---web前端工作笔记015
  7. ZR提高失恋测2(9.7)
  8. DELPHI 字符转16进制、16进制转字符
  9. c语言实现鼠标驱动,鼠标驱动程序
  10. 计算机硬盘被配制成动态磁盘。在这种情况下无法进行重装?,动态磁盘转换为基本磁盘(完美解决方案)...
  11. Javascript 暂停/终止脚本
  12. anaconda python3 安装库_痛点:Anaconda3 python第三方库批量安装
  13. csharp c++
  14. 以太坊区块链浏览器的搭建
  15. C#使用随机数模拟器来模拟世界杯排名(一)
  16. 秘密潜入1-普通枪械射速修改-Python源码
  17. 【RASA】Core模块
  18. Flink系列之:基于scala语言实现flink实时消费Kafka Topic中的数据
  19. Python3爬取OpenStreetMap平台的城市道路交通网数据
  20. Linux系统调用详解(实现机制分析)

热门文章

  1. java百度地图离线LBS_百度地图之离线下载功能
  2. 共轭梯度法python实现
  3. 完美破解nbsp;iPhone“一键解锁”新手教程
  4. Java JDK 8的安装与配置
  5. 微信APP支付的sgin拼接
  6. 斐讯k3cfe刷lede_斐讯 K3 A1 刷机经历
  7. 北京天通苑二房东、黑中介
  8. 路由器测试的类型和方法
  9. 程序员用C/C++打造车牌识别系统!同学眼中只有膜拜!
  10. QImage setPixel