全面解析OD各类断点

1 INT 3断点

当执行一个INT3断点时,该地址处的内容被调试器用INT 3指令替换了(但是OD隐藏了这个替换,不让我们看到),因其机器码是0xCC,也称为“CC断点”。程序执行到INT 3指令时会导致一个异常,OD捕获这个异常,停在断点处,并将断点处的指令恢复为原来的指令。“F2”或bp设置的就是这种断点。

  • 特点:会断在该指令执行前。
  • 优点:可以设置无数个这样的断点。
  • 缺点:改变了原程序机器码,可能被程序校验, 导致下断后程序退出。

2 硬件断点

使用DR0-DR3调试寄存器设定断点地址,DR4和DR5 这两个保留,DR6 显示触发断点的是哪个DR寄存器和触发断点的原因,DR7的主要作用是规定DR0-DR4是否生效。最多设置4个硬件断点。
附图:终极调试寄存器DR7
硬件访问/写入断点要在数据窗口中下断。硬件执行断点要在反汇编窗口下断,它是一次性的,中断后就会自动删除。顺便说一下,CE里“F5”下的断点默认也是硬件访问/写入断点。hr设置的硬件访问断点。hw设置的硬件写入断点。下硬件断点之前最好先让进程处于暂停状态, 否则可能会失败.“F7”,"F8"默认使用的就是硬件断点。

  • 特点:会断在该指令执行后。
  • 优点:速度快,不改变原程序机器码,不易被检测到。即使重启OD,硬件断点依旧存在。
  • 缺点:只能使用4个断点&#x
  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值