OD使用教程7(下)- 调试篇07
来源:互联网 发布:网络直播平台怎么做 编辑:程序博客网 时间:2024/05/17 05:06
文章出处: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文件中是不会保存的,重启程序后将丢失断点。
0 0
- OD使用教程7(下)- 调试篇07
- OD使用教程 调试篇
- OD使用教程 调试篇01
- OD使用教程 03 调试篇
- OD使用教程2 解密系列之调试篇02
- OD使用教程5 – 调试篇05 加载恶意修改的PE头
- OD入门学习(调试篇)
- 010-OD调试使用小结
- OD在Windows 7 x64下无法调试的原因
- od反调试的对策(使用除0异常)
- OD调试多线程(转)
- OD根据API下断点调试程序
- OD教程(汇编基础)
- OD教程(基础--断点)
- 在NP下用OD调试游戏的方法(转)
- Linux下使用od查看文件
- linux下od命令的使用
- OD教程(多态和变形)
- 【Android】识时务者为俊杰,轮子造还是不造
- 用js 动态进行创建列表,点击按钮时,动态创建一个两行三列的表格
- mysql查询结果保存execl文件
- WMS在自动化生鲜物流行业中的应用
- 2016ASP.NET使用QQ邮箱发送信息最全+无错误
- OD使用教程7(下)- 调试篇07
- Struts2标签
- 【GLSL教程】(八)纹理贴图
- 简约之美Jodd-http--深入源码理解http协议
- java浅克隆与深克隆
- Theano——shared
- Ubuntu下安装Freetds,并编程连接MSSQL
- 【GLSL教程】(九)其他说明
- 网卡绑定