10断点异常
2015-05-02 08:52:46 6 举报
在程序运行过程中,如果遇到一个尚未处理或无法处理的情况,就会生成一个断点异常。这种异常通常是由于程序员的错误引起的,例如除以零、引用不存在的变量等。当程序执行到这个异常时,它会立即停止并显示错误信息,以便程序员可以快速定位和修复问题。断点异常是最常见的程序错误之一,但通过仔细编写代码和使用适当的调试工具,可以有效地减少这类错误的发生。
作者其他创作
大纲/内容
异常预处理
硬件断点地址获得对应的Dr寄存器下标
dwType
更新屏幕
PAGE_EXECUTE_READWRITE
判断是否正确
设置进程上下文
False
修改EIP值退回一格
VirtualProtectEx
获取线程上下文
取消软件断点0xCC数据
软件断点在OEP处下断点
True
WriteProcessMemor
线程信息放在CONTEXT结构体里
断点异常
清除硬件断点寄存器值并保存到恢复向量
根据地址找到硬件向量对应元素保存到硬件断点恢复向量
恢复用户设置的int3断点0xCC值
byInt3 = 0xCC
修改Dr0
恢复断点处的原始数据
恢复硬件断点寄存器值
ReadProcessMemory
当前异常地址是否还有int3断点
在向量中找到该断点
恢复断点处数据,并使EIP减1
0 条评论
下一页