9.OD-断点、命令

来源:互联网 发布:软件源代码怎么找 编辑:程序博客网 时间:2024/05/20 22:02
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                 nop0040EE69      90                 nop0040EE6A      A0 C4FF1200        mov     al, byte ptr [12FFC4]0040EE6F      90                 nop0040EE70 >    90                 nop0040EE71      90                 nop0040EE72      90                 nop0040EE73      90                 nop0040EE74      90                 nop0040EE75      C605 C5FF1200 11   mov     byte ptr [12FFC5], 110040EE7C      90                 nop0040EE7D      90                 nop0040EE7E      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的实现
原创粉丝点击