OD使用教程7(下)- 调试篇07

转载 2016年08月29日 11:35:30

文章出处:http://blog.fishc.com/749.html



认识OD的两种断点

 

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

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

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

 

内存断点:

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

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

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

 

软件断点:

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

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

 

硬件断点:

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

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

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

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

 

那么聪明的鱼油肯定会追问:小甲鱼老湿,那我要如何来区分何时使用何种断点呢?

这两种断点在使用上都有它们自身的限制,只要搞清楚它们各自的特性就知道何时该用哪个了。

例如软件断点就只能在OD的CPU界面下,在数据段它下不了,在一条指令的中间它也下不了。

在我们这个例子中,断点我们想下在windows的动态链接库里,我们需要用到硬件断点,因为用软件断点下在dll文件中是不会保存的,重启程序后将丢失断点。

IDA PRO 静态反汇编与OllyDbg动态调试实战技巧汇总

 ********************************** 案例一: 使用IDA PRO+OllyDbg+PEview 追踪windows API 动态链接库函...
  • fuyuehua22
  • fuyuehua22
  • 2015年06月18日 20:32
  • 3887

ollydbg 调试

当我再一次拿起ollydbg时,竟觉得如此陌生,这里以一个老手从新手的角度来记录一下需要快速掌握的东西。版本已经递长到1.10(help 菜单),功能肯定更强,使用更方便了 1.首先是常用的快捷键....
  • hejinjing_tom_com
  • hejinjing_tom_com
  • 2016年08月03日 22:35
  • 444

OD入门学习(调试篇)

一、OD快捷键 二、关于jicunqi
  • u012640985
  • u012640985
  • 2014年05月04日 21:19
  • 2151

Python脚本调试方法

对于刚接触Python脚本的同学来说,Python脚本调试是一个比较困惑的问题。可能并不清楚如何进入调试。下面我来讲一下我所用的两种方法。 1)在Python脚本中直接插入pdb模块: *****...
  • fglee_ldq
  • fglee_ldq
  • 2015年07月27日 21:32
  • 831

OD使用教程7(下)- 调试篇07

文章出处:http://blog.fishc.com/749.html 认识OD的两种断点   OllyDBG从原理上来区分,有两种不同的断点:软件断点和硬件断点。 也许会有朋友说那...
  • HK_5788
  • HK_5788
  • 2016年08月29日 11:35
  • 601

OD使用教程 03 调试篇

http://blog.fishc.com/698.html 让编程改变世界 Change the world by program OD使用教程3 亲爱的鱼油们:当您看到这教程的...
  • miao6664659
  • miao6664659
  • 2013年03月27日 11:13
  • 1479

OD使用教程 调试篇

认识OD的两种断点   OllyDBG从原理上来区分,有两种不同的断点:软件断点和硬件断点。 也许会有朋友说那不是还有内存断点吗? 内存断点严格来说是属于一种特殊的软件断点。   内存断点...
  • judyge
  • judyge
  • 2014年11月24日 20:29
  • 342

ida 与 olldbg 神同步插件labeless

ida 与 olldbg 神同步插件此插件来自于2016年ida插件大赛提交的作品。 官方简介: Labeless provides: Labeless is a plugin syst...
  • lacoucou
  • lacoucou
  • 2016年10月25日 20:20
  • 802

Ollydbg 编写脚本的一些语法及例子(OD脚本)

OllyScript脚本语言是一个种类汇编的语言。你使用它来控制ODbgScript和脚本运行. 在后面的文档中, “源操作数” 和 “目的操作数”表示以下含义: - 十六进制常数,既没有...
  • whatday
  • whatday
  • 2013年01月29日 16:59
  • 13366

OD使用教程 调试篇01

转自http://blog.fishc.com/645.html/2 让编程改变世界 Change the world by program   调试逆向   在软件开发的过程中,...
  • miao6664659
  • miao6664659
  • 2013年03月25日 19:05
  • 1560
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OD使用教程7(下)- 调试篇07
举报原因:
原因补充:

(最多只允许输入30个字)