首页
社区
课程
招聘
[分享]Ollydbg 硬件断点笔记
发表于: 2010-3-3 09:33 7008

[分享]Ollydbg 硬件断点笔记

2010-3-3 09:33
7008

问题: 为什么我要使用硬件断点?

前人有写过 olly各种断点的不同及如何使用, 软断点就是在执行指令的prefix处写入CC, 
而硬件在硬件断点章节并没有给出如何实现, 只好看看了olly 的主程序, 
并记录如下 (代码就不列出了):

ollydbg 1.0 目前支持4个硬件断点, 在设置新断点前, 先判断断点类型(r/w/e--字节大小), 
然后轮询4个槽看看重复否, 如果可以设置, 将它写入一个数据结构:

004087E8  |.  893C85 708D4D00      mov ds:[eax*4+4D8D70], edi

之后, 当回到调试程序后, 立刻用 SetThreadContext 设置该断点, 
其中lpContext 就是指向上面的结构指针, 定义见winnt.h (x86节).

在Intel手册券三-15章, DR6 保存了发生一个debug条件的具体原因, 
如单步/条件/访问/任务切换. 当然DR7 能让中断在某个地址对于所有的任务应是sice使用的.

因此, 硬件断点是比较之保险的设置方法, 另外设置如下选项:

Use hardware breakpoints to step=1

通过trace功能比较, 也发现hardware断点类型执行效率比它高.


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 7
支持
分享
最新回复 (2)
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
因为反硬件断点的方法太多了,比如异常 改变程序执行的规律,又如DRX解码器
2010-4-9 16:53
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
同意2楼的观点
2010-4-11 00:45
0
游客
登录 | 注册 方可回帖
返回
//