Windows硬件断点-实现单步异常
触犯单步异常 改变的是当前Eflags 而不是触发异常的Eflags
也就是
PUSHF
MOV EAX, DWORD PTR[ESP]
OR EAX, 0x100
MOV DWORD PTR [ESP], EAX
POPF
来实现单步异常(特别需要注意单步异常设置后下一条语句也会触发单步异常。如果不做处理。会造成死机 甚至蓝大妈)
第二注意 只有触发了GD位的异常才能改变DR6寄存器。所以单步异常时需要将DR6置0
触犯单步异常 改变的是当前Eflags 而不是触发异常的Eflags
也就是
PUSHF
MOV EAX, DWORD PTR[ESP]
OR EAX, 0x100
MOV DWORD PTR [ESP], EAX
POPF
来实现单步异常(特别需要注意单步异常设置后下一条语句也会触发单步异常。如果不做处理。会造成死机 甚至蓝大妈)
第二注意 只有触发了GD位的异常才能改变DR6寄存器。所以单步异常时需要将DR6置0