INT3断点
来源:互联网 发布:高维空间 知乎 编辑:程序博客网 时间:2024/05/16 05:02
INT3断点是断点的一种,在诸如Ollydbg中的快捷键是F2,是一种很常用的断点类型。INT3指令的机器码为CC,所以通常也称之为CC指令。当被调试进程执行INT3指令导致一个异常时,调试器就会捕捉这个异常从而停在断点处,然后将断点处的指令恢复成原来的指令。当然,如果自己写调试器,也可以用其他一些指令代替INT3指令来触发异常。
用INT3断点的好处是可以设置无数个断点,缺点是改变了原程序指令,容易被软件检测到。例如为了防范API被下断,一些软件会检测API的首地址是否为CCh,以此来判断是否被下了断点。
但是如果将断点下在函数的内部或者末尾,例如可以将断点下在函数入口的下一行,就可以躲过检测了。
Int3断点的处理
Int3断点处理的大致流程是:
1、 获取当前寄存器的信息,重点是Eip的值
2、 根据Int3断点的类型(0xCC或0xCD03)回溯指针地址
3、 触发Int3异常,被调试程序断下;
4、 若继续跑的话,则恢复原有的指令,让被调试程序正确执行指令;
5、 走完正确指令之后,再重新设置指令为Int3断点;
常在反汇编中看到如下代码:
004113B7 mov eax,0CCCCCCCCh //将eax全部初始化为0CCCCCCCCh,即INT 3断点
- INT3断点
- INT3断点
- INT3断点
- VC嵌入断点中断INT3
- OllyDBG分析报告系列(1)---Int3断点
- 监视函数是否被设置 INT3 断点
- 判断自身代码是否有int3断点
- ollydbg原理分析~硬件断点与int3
- INT3断点无效,都是ThreadHideFromDebugger惹的祸
- 驱动防int3
- int3中断指令机器码
- 使用INT3进行HOOK处理
- 对模拟int3的探索
- 断点
- 断点
- 断点
- 断点
- 断点
- 算法系列之十六:使用穷举法解猜结果游戏算法系列之十六:使用穷举法解猜结果游戏
- 双链表
- 修改Launcher
- SQL server中的简单触发器
- 数据库镜像实施笔记
- INT3断点
- s3c6410中断处理
- C++文件操作
- Android Root
- 售前工作职责和流程
- MFC消息结构和消息处理
- 监听浏览器关闭JS
- Android中AsyncTask的简单用法
- ftruncate函数