mov eax,cr4 btr eax,3 ;switch off PENTIUM Debug Extension (DE) mov cr4,eax in al,dx ;or out dx,alAs you can see here, they switch back the processor back to 486 mode directly before executing any IN or OUT instruction to the parallel port. A 486 processor doesn't support I/O breakpoints. Bingo!
This switch-back code cannot be protected by another hardware breakpoint. A lucky hacker may try to scan the kernel memory for such code sequences by a timer procedure.
The one-and-only possible solution to cope with such code is using a Virtual Machine (VM). Typical VM software copes with this Debug Extension bit as it doesn't permit the guest system to put the host system back to 486 mode. In this way, the protected software can see the dongle while USB2LPT.SYS driver is running in either the guest or host system (try yourself!).