9.OD-断点、命令

BP 表达式 [, 条件 ] 在指定地址设置  INT3 断点 BP EAX+10BP 410010, EAX==WM_CLOSEBP Kernel32.GetProcAddress
BPX
标签 在当前模块每一个对外部标签的调用设置断点 BPX CreateFileA
BC
表达式 删除指定地址的断点 BC 410010
MR
表达式 1 [, 表达式 2] 设置指定范围的内存访问断点  
MW
表达式 1 [, 表达式 2] 设置指定范围的内存写断点 Set 
MD
移除内存断点  
HR
表达式 设置 1 字节的硬断点,当访问该地址时中断  
HW
表达式 设置 1 字节的硬断点,当写该地址时中断  
HE
表达式 设置硬断点,当执行该地址时中断  
HD [
表达式 ] 移除指定地址处的硬断点

附内存中断小结:
OD
中内存断点小结
内存,小结,断点
0040EE67      90                 nop                              //假设此处为EIP 
0040EE68      90                 nop
0040EE69      90                 nop
0040EE6A      A0 C4FF1200        mov     al, byte ptr [12FFC4]
0040EE6F      90                 nop
0040EE70 >    90                 nop
0040EE71      90                 nop
0040EE72      90                 nop
0040EE73      90                 nop
0040EE74      90                 nop
0040EE75      C605 C5FF1200 11   mov     byte ptr [12FFC5], 11
0040EE7C      90                 nop
0040EE7D      90                 nop
0040EE7E      90  

12FFC4 11 11

1. 内存访问断点 设置 12FFC4 一个字节为内存访问断点 F9 运行程序  OD 会停在 0040EE6A

原理: OD 会设置 12FFC4 地址访问权限为不可读 大小为一字节     任何试图读取该地址的操作 都会引发异常 OD 会捕获这个异常 并等待用户处理 现象就是 运行到 mov     al, byte ptr [12FFC4] 当指令试图读取该地址内容 并给 AL 赋值的时候 OD 断了下来  


2.
硬件访问断点 设置 12FFC4 一个字节为硬件访问断点 F9 运行程序 OD 会停在 0040EE6F

原理: OD 会设置调试寄存器 DR0-DR3 其中一个为 12FFC4 并设置 DR7 相关标记 这个实现依靠 CPU 特性 当设置了改地址为硬件访问断点后 任何试图访问该地址的操作 都会引发异常 OD 会捕获这个异常 并等待用户处理 现象就是 运行到 mov     al, byte ptr [12FFC4] 当指令试图读取该地址内容 并给 AL 赋值的时候 OD 断了下来  


3.
内存写入断点 设置 12FFC5 一个字节为内存写入断点 F9 运行程序 OD 会停在 0040EE75

原理: OD 会设置 12FFC5 地址访问权限为不可写 大小为一字节     任何试图写入该地址的操作 都会引发异常 OD 会捕获这个异常 并等待用户处理    现象就是 运行到 mov     byte ptr [12FFC5], 11 当指令试图写入该地址内容   OD 断了下来


4.
硬件写入断点 设置 12FFC5 一个字节为硬件写入断点 F9 运行程序 OD 会停在 0040EE7C

原理: OD 会设置调试寄存器 DR0-DR3 其中一个为 12FFC5 并设置 DR7 相关标记 这个实现依靠 CPU 特性 当设置了改地址为硬件访问写入后 任何试图写入该地址的操作 都会引发异常 OD 会捕获这个异常 并等待用户处理 现象就是 运行到 mov     byte ptr [12FFC5], 11 当指令试图写入该地址的时候 OD 断了下来  

至于内存断点断在当前指令 硬件断点断在当前指令的下一条 取决于 OD 的实现
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值