OD的几个断点

OD从原理上来说,有两种不同的断点,软件断点,硬件断点,
内存断点是一种特殊的内存断点,
内存断点呢,每次只能设置一个,假如你设置一个断点,则上一个会自动被删除。设置一个内存断点,会改变整块(4K,1K=1024字节)内存的属性,哪怕你只设置一个字节的内存断点。
内存断点还会降低OD的性能,因为OD会校对内存。
软件断点:当我们F2的断点,
该断点是在断点出重写代码,插入int3中断指令,(学汇编的都知道),当CPU执行到int3指令的时候,OD就获得了控制权。
硬件断点:跟软件断点截然不同,硬件断点的可行性基于CPU的物理支持。
有这么一些寄存器他们只用于调试,叫做调试寄存器:Dr0~Dr7
Dr0~Dr3是来存放断点的地址,Dr4~Dr5保留不使用,Dr6~Dr7用来记录Dr0~Dr3的属性(如读,写,可执行,单位是字节还是字,双字),因此,解释了硬件断点为什么只有四个。

那么断点该如何下,下什么断点?

软件断点就只能在CPU界面下,在数据段是不能下的,在一个指令的中间他也下不了,他以指令为单位
硬件断点是下在Windows的dll库里的,在系统的领空。如果在这里下软件断点,dll文件中不会保存,重载将会丢失。

猜你喜欢

转载自blog.csdn.net/awm_kar98/article/details/81482105