断点 相关技术与原理

Posted gavanwanggw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了断点 相关技术与原理相关的知识,希望对你有一定的参考价值。

继续对OD的断点技术做个笔记。


1、硬件断点:

Intel CPU中有8个调试寄存器(Debug Register)DR0 — DR7,当中DR0 — DR3用于设置硬件断点地址,DR6保存状态,DR7负责控制。当指令运行到DR所指地址时,CPU中断,等待OllyDbg进一步操作。
OllyDbg中,选定一行后按F4键。用于运行到指定位置,就是暂时设置了一个硬件断点。
硬件訪问/写入断点是断在触发硬件断点的下一条指令处。

方法:

在代码处右键->断点->硬件运行。在寄存器窗体右键->查看调试寄存器,能够看到设置成功。
在菜单->调试->硬件断点处。能够看到已经设置的全部硬件断点。


技术分享

长处:
          程序无法检測此类断点。
缺点:
          最多仅仅能同一时候设置四个。


2、条件断点\条件记录断点
2.1条件断点

实际上就是普通的CC断点,仅仅只是该断点的触发须要满足设置的条件。


OD的帮助文档中有具体的条件表达式规范。
技术分享

技术分享
技术分享

2.2条件记录断点
比条件断点能够有更具体的条件设定。

工具栏中【L】button打开日志窗体。

技术分享

3、消息断点
Windows是消息驱动型的系统。消息断点使得某个窗体函数接收到某个消息时产生中断。

方法:点击工具栏中的【w】,假设为空。则右键刷新。
选择一个窗体对象,右键->设置消息断点。
在消息(Message)中设置相应的消息代码,如202 WM_LBUTTONUP等。


设置消息断点通常会停在系统库函数领空,仅仅须要在工具栏【M】的内存区段的代码段(如CODE)设置断点就能够。

(如内存訪问断点)


A、对于堆栈,想要查看比如[esp+8]的地址的位置。仅仅需双击地址就可以。
技术分享

B、想要查看全部的消息,以查找实用的信息,在信息转换的函数上下消息断点就可以。


如定义(DefWindowProcA)与转换消息(TranslateMessage)的函数上设置断点。



技术分享

技术分享

參考文章:

http://bbs.pediy.com/showthread.php?p=1279874#post1279874

http://bbs.pediy.com/showthread.php?p=1280177#post1280177



















































以上是关于断点 相关技术与原理的主要内容,如果未能解决你的问题,请参考以下文章

Alibaba中间件技术系列「Nacos技术专题」服务注册与发现相关的原理分析

[深入研究4G/5G/6G专题-39]: URLLC-10-《3GPP URLLC相关协议规范技术原理深度解读》-4-如何区分URLLC业务?网络切片的架构与技术详解

Alibaba中间件技术系列「Nacos技术专题」服务注册与发现相关的原理分析

[深入研究4G/5G/6G专题-38]: URLLC-9-《3GPP URLLC相关协议规范技术原理深度解读》-3-URLLC技术的分析思路与研究方法:深度广度时间

Hadoop中的MapReduce框架原理切片源码断点在哪断并且介绍相关源码FileInputFormat切片源码解析总结,那些可以证明你看过切片的源码

[深入研究4G/5G/6G专题-37]: URLLC-8-《3GPP URLLC相关协议规范技术原理深度解读》-2-网络架构时延分析与URLLC载波部署形态