断点指令INT3

断点指令INT3

  1. 汇编语句INT3对应的指令码是0xCC
  2. 单独执行0xCC时(将0xCC单独作为一条指令执行),会陷入内核,执行int3的异常处理代码,比如给当前进程发送一个SIGTRAP信号。就这么简单。剩下的就看信号处理程序如何发挥了。
  3. 对于GDB:
    1)若用b在某行指令打上断点后,系统会将目标指令的第一个字节替换为 0xCC ,其他字节不变
    2)当进程(记为P1)执行到该指令时发现第一个字节为0xCC,则触发断点(注意此时P1的PC值为该指令的首地址+1,并不是下一条指令的首地址),发送SIGTRAP信号给GDB进程,此时P1卡住不执行,若在GBD中输入c表示继续执行,则GDB进程会向P1发送继续执行的信号
    3)当P1收到继续执行的信号时会将刚刚被替换的0xCC字节替换为原来的字节,然后将P1的PC-1(回到触发断点的指令首地址),然后继续执行
    4)若该断点依然存在,则系统又会将目标指令的第一个字节替换为 0xCC
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值