44 ULONG LocalInt1Handler;
51 __asm__(
"mov $NewInt1Handler,%0" 52 :
"=r" (LocalInt1Handler)
67 testl $(1<<14),%eax\n\t \ 68 jz exceptionnotsinglestep\n\t \ 72 jmp NewInt31Handler\n\t \ 74 exceptionnotsinglestep:\n\t \ 77 jmp NewInt31Handler\n\t \
ULONG SetGlobalInt(ULONG dwInt, ULONG NewIntHandler)
#define REASON_HARDWARE_BP
BOOLEAN InstallTraceHook(void)
__asm__("\n\t \
NewInt1Handler:\n\t \
pushl %eax\n\t \
movl %dr6,%eax\n\t \
testl $(1<<14),%eax\n\t \
jz exceptionnotsinglestep\n\t \
\n\t \
popl %eax\n\t \
pushl $" STR(REASON_SINGLESTEP) "\n\t \
jmp NewInt31Handler\n\t \
\n\t \
exceptionnotsinglestep:\n\t \
popl %eax\n\t \
pushl $" STR(REASON_HARDWARE_BP) "\n\t \
jmp NewInt31Handler\n\t \
")
void DeInstallTraceHook(void)
volatile ULONG OldInt1Handler
#define REASON_SINGLESTEP
void NewInt31Handler(void)