Ollydbg动态调试的时候需要打一些断点,断点分为INT3断点和硬件断点,本文是区分两个断点的文章。

目录

INT3断点

好处

坏处

硬件断点

原理

优点

缺点


INT3断点

OD中使用F2快捷键设置的断点就是INT3断点

打INT3断点的时候,断点处就会被CCh(INT3指令的机器码)替换

在Ollydbg中的使用

在指令处右击,按照以下方式选择

好处

可以设置无数个断点

坏处

改变了原程序的指令

为了防止API被下断点,就会判断API的首地址是不是CCh

取函数的第一个字节,进行判断,是否下了断点

硬件断点

硬件断点和DRx调试器有很大关系

从Intel CPU体系架构中可以找到DRx的介绍

原理

使用4个调试寄存器 DR0,DR1,DR2,DR3,设置地址

使用一个寄存器DR7设定状态

最多设置4个硬件断点

优点

速度比较快,在INT3断点容易被发现的地方使用硬件断点

缺点

最多只有三个断点

在Ollydbg中的使用

INT3断点和硬件断点相关推荐

  1. OD的 CC断点,内存访问断点,硬件断点 解析

    1.F2断点,API断点 1)本质CC断点 2)以API断点为例 xxxx=GetProcAddress//获得函数首 地址 VitualProtectEx()//修改函数首地址权限为 可写     ...

  2. [系统安全] 二十四.逆向分析之OllyDbg调试INT3断点、反调试、硬件断点与内存断点

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  3. 软件调试学习笔记(六)—— 硬件断点

    软件调试学习笔记(六)-- 硬件断点 硬件断点 设置硬件断点 触发硬件断点 处理硬件断点 实验:硬件断点的设置与处理 硬件断点 描述: 与软件断点与内存断点不同,硬件断点不依赖被调试程序,而是依赖于C ...

  4. 如何对抗硬件断点--- 调试寄存器

    1.前言 在我跨入ollydbg的门的时候,就对ollydbg里面的各种断点充满了疑问,以前我总是不明白普通断点,内存断点,硬件断点有什么区别,他们为什么 有些时候不能混用,他们的原理是什么,在学习了 ...

  5. 调试器工作原理--CPU软件断点/硬件断点/单步执行标识

    断点和单步执行是两个经常使用的调试功能,也是调试器的核心功能. 断点是调试器的最常用技术之一.其基本思想是在某一个位置设置一个陷阱,当CPU执行到此位置时,中断到调试器中,让调试者分析和调试,之后恢复 ...

  6. X86逆向教程10:学会使用硬件断点

    本节课我们将学习硬件断点的使用技巧,硬件断点是由硬件提供给我们的一组寄存器,我们可以对这些硬件寄存器设置相应的值,然后让硬件帮我们断在需要下断点的地址上面,这就是硬件断点,硬件断点依赖于寄存器,这些寄 ...

  7. 硬件断点和软件断点(整理)

    文章目录 1. 断点的类型 2. 为什么要分软件断点和硬件断点呢? 3. GDB中如何设置软/硬件断点 1. 断点的类型 软件断点:由非法指令异常实现,适用于运行于内存中的程序(软件实现).以x86为 ...

  8. 通过硬件断点对抗hook检测

    前言 我们知道常见的注入方式有IAT hook.SSDT hook.Inline hook等,但其实大体上可以分为两类,一类是基于修改函数地址的hook,一类则是基于修改函数代码的hook.而基于修改 ...

  9. Linux ptrace系统调用详解:利用 ptrace 设置硬件断点

    <GDB调试之ptrace实现原理> <C语言程序调用栈:backtrace+backtrace_symbols+backtrace_symbols_fd> <strac ...

最新文章

  1. 软件系统架构师成长之路(一)
  2. 语言 重量计算_大师之光:有种跨越国界的语言叫C++
  3. java常见业务对象_Java各种对象(PO,BO,VO,DTO,POJO,DAO,Entity,JavaBean,JavaBeans)的区分...
  4. 【Python】全方面解读Python的格式化输出
  5. python软件开发目录_软件开发目录规范
  6. opencv书籍调研
  7. Minor GC和Major GC和Full GC
  8. [007] 详解 .NET 程序集
  9. 程序员过关斩将--要想获取我的用户信息,就得按照规矩来
  10. 书本练习题7print函数使用
  11. Android 学习
  12. 云原生:云计算时代命题之终极解决方案
  13. 旅游管理系统(包含旅游最短路径规划算法等,包含系统分析的各种uml图和界面图)
  14. CMMI 2.0 和 1.3
  15. IE6 浏览器常见兼容问题 大汇总(23个)
  16. CF1428F Fruit Sequences
  17. iOS常见错误1-SQLite错误-SQLITE_CANTOPEN,SQLITE_MISUSE和SQLITE_BUSY
  18. winOS最新tensorflow不同版本要求与CUDA及CUDNN版本对应关系(12,2019.)
  19. 【电脑配置】三、解决ubuntu16.04系统无法连接wifi的错误
  20. 【PHPWord】PHPWord生成图表-柱形图 | 设置数值类别展示、展示多组数据

热门文章

  1. 大学生一定要理解的十五件事!
  2. 关于关闭谷歌的QUERY_ALL_PACKAGES权限问题
  3. hr_assignment_api
  4. 第三十六讲:神州无线AP胖AP模式配置与管理
  5. java面试官常问的问题
  6. 什么是内容交付网络?
  7. win8无法打开Oracle 12c的企业管理控制台解决方案
  8. 跳槽首选,平均薪资2w+!现在入门快人一步
  9. NameValuePair
  10. java namevaluepair包_Java NameValuePair.setName方法代码示例