Windows硬件断点-实现单步异常

触犯单步异常 改变的是当前Eflags 而不是触发异常的Eflags

  也就是

   PUSHF

      MOV EAX, DWORD PTR[ESP]

      OR EAX, 0x100

      MOV DWORD PTR [ESP], EAX
   POPF

     来实现单步异常(特别需要注意单步异常设置后下一条语句也会触发单步异常。如果不做处理。会造成死机 甚至蓝大妈)

     第二注意 只有触发了GD位的异常才能改变DR6寄存器。所以单步异常时需要将DR6置0

原文地址:https://www.cnblogs.com/kuangke/p/5647744.html