调试断点原理之普通断点

您所在的位置:网站首页 音序表的读音和拼音一样吗 调试断点原理之普通断点

调试断点原理之普通断点

2024-07-18 06:02:42| 来源: 网络整理| 查看: 265

以OD为调试器分析不同断点的区别:

普通断点原理:直接改写断点内存地址的第一个字节,替换为int3 (0xcc,软中断机制),并保存原始字节至OD维护的一张断点表处。程序运行到此处时会中断,抛出异常,OD通过捕获该异常,暂停程序运行至断点内存地址处(断点处指令仍未执行),当执行断点处指令时,并不是完全从内存中取指令,因为该断点内存中的第一个指令已经被改写为0xcc,因此,此时执行的指令是由断点表中保存的原始字节与后续的二进制数据自合而成。执行完断点处指令后,只要断点没有被删除,其内存中的第一个字节仍然是0xcc。当删除某个断点时,od会根据删除的断点地址在断点表中查找对应的原始字节,并恢复至对应的内存中。

如图:

 

利用od加载一个程序,将断点设置在0x40137d处。通过修改断点前后的代码,来查看断点内存数据改变情况:

 

红色的汇编为修改的指令,0x401377:从0x40137d内存地址中读取4个字节到寄存器eax,0x40137e:从0x40137d内存地址中读取4个字节到寄存器ecx,单步执行完0x401377处指令时,查看eax寄存器的值。如图:

 

Eax=0x7d0d8bcc(小端对齐)。正常情况下,应该0x7d0d8b50.即添加断点后,断点处的第一个字节0x50被覆写为0xcc。虽然od上显示的0x40137d处为:0x50,但是实际上,其内存地址数据已经改变。继续单步执行完断点处指令,push eax,然后单步执行0x40137e处指令(我们改写的测试指令),首先将eax值入栈,如图:

然后从0x40137d内存地址中读取4个字节到寄存器ecx,如图:

 

即断点执行前后,断点内存中的数据使用是被覆盖的0xcc。

此时,我们将0x40137d处断点删除,并改写即将执行的指令,从0x40137d内存地址中读取4个字节到寄存器edx,如下图,0x401385处,eip=0x401385:

 

单步执行0x401385处指令,查看寄存器edx值,如图:

 

Edx=0x7d0d8b50. 即0x40137d处的原始指令已被恢复。



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


    图片新闻

    实验室药品柜的特性有哪些
    实验室药品柜是实验室家具的重要组成部分之一,主要
    小学科学实验中有哪些教学
    计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
    实验室各种仪器原理动图讲
    1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
    高中化学常见仪器及实验装
    1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
    微生物操作主要设备和器具
    今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
    浅谈通风柜使用基本常识
     众所周知,通风柜功能中最主要的就是排气功能。在

    专题文章

      CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭