品牌网站设计制作公司地址,免费建立企业网站,如何进行电商网站设计,网站建设的简介INT 3 断点 常用断点#xff0c;使用“F2”快捷键设置的就是 INT 3 断点。这类断点采用修改机器码的方式#xff0c;将设断处的代码更改为 “CC”#xff0c;当程序运行至设断处时#xff0c;会抛出一个异常#xff0c;OllyDbg会捕捉到这个异常#xff0c;使得程序暂停使用“F2”快捷键设置的就是 INT 3 断点。这类断点采用修改机器码的方式将设断处的代码更改为 “CC”当程序运行至设断处时会抛出一个异常OllyDbg会捕捉到这个异常使得程序暂停然后恢复程序机器码。INT 3 断点可以设置无限多个但是由于 INT 3 断点更改了机器码所以很容易被目标软件检测到。
硬件断点 硬件断点与 DRx 调试寄存器有关在Intel CPU 体系架构手册中可以找到对 DRx 调试寄存器的介绍。 DRx 调试寄存器有八个DR0 ~ DR7每个寄存器的特性如下
DR0 ~ DR3 调试地址寄存器用于保存需要监视的地址例如设置硬件断点。DR4 ~ DR5 保留未公开具体作用DR6 调试寄存器组状态寄存器DR7 调试寄存器组控制寄存器
简单来说硬件断点是在 DR0 ~ DR3 中设置断点地址DR7设置状态。因此最多设置4个硬件断点当程序运行至所设定断点时CPU会向 OllyDbg 发送异常信息OllyDbg处理后中断程序让我们继续操作。所以硬件断点不会更改程序的机器码具有比 INT 3 断点更高的隐蔽性。
设断方法单击右键选择 “Breakpoint” - “Hardware, on execution” 删除断点方法菜单项 “Debug” - “Hardware breakpoints” 打开硬件断点面板选择 “Delete” 删除 快捷键 F4 执行到光标所在的行这一方式是相当于执行了一次硬件断点之后删除
内存断点 原理是对断点内存地址赋予 不可访问/不可写 属性当程序试图 访问/写 该内存地址时就会发生异常OllyDbg捕捉到这个异常并比较异常发生的地址与断点地址如果相同就暂停程序让我们继续操作。可能因为要比较地址的缘故OllyDbg为了提高速度只允许设置一个内存断点。
内存断点不修改机器码与硬件断点一样不会像 INT 3 断点那样被程序校验导致下断失败在 INT 3 下断失败硬件断点失灵的情况下可以使用内存断点。
设断方法在设断的内存地址右键 “Breakpoint” - “Memory, on access/write”这样就可以设置内存访问/写入 断点。对代码或者数据都可以下内存断点对数据比较好理解对于代码来说执行代码时需要“访问”这段代码。所以可以对代码设 “内存访问” 断点。 删除断点方法右键 - “Breakpoint” - “Remove memory breakpoint”
内存访问一次性断点 该类断点设置的对象是一个内存段比如对程序的代码段设断当从其他模块回到程序时就会触发断点。更多的用在捕捉调用或者返回某个模块上。不多介绍了在OllyDbg里按 “AltM” 显示内存在对于内存段上右键- “Set break-on-access”快捷键 F2该断点时一次性的断了就删。
消息断点 由于windows系统是消息驱动的所以可以对消息下断点在OllyDbg中运行程序后点击【w】打开窗口参数表在对于窗口上右键 - “Message breakpoint on ClassProc”就会打开设置窗口在设置窗口里选择要下断的消息即可删除断点可按 “AltB” 打开断点信息窗口直接删除即可。
基本上大概的断点就是这样以后觉得有必要补充的再加上去