Warum moderne Software-Schutzstecker (Dongles) nicht mit USB2LPT (oder gar Dongle-Emulatoren, etwa diesem) funktionieren:

Vorbeiprogrammiert

Moderne Dongle-Treiber (.SYS oder .VxD) enthalten in etwa folgende Kode-Sequenz:
	mov	eax,cr4
	btr	eax,3		;PENTIUM Debug Extension (DE) deaktivieren
	mov	cr4,eax
	in	al,dx		;oder out dx,al
Damit schalten sie vor jedem(!) Hardwarezugriff den Prozessor auf 486er-Kompatibilität zurück, und ein 486er unterstützt keine Haltepunkte auf Ein/Ausgabebefehle. Bingo! Ein einfacher und wirksamer Debugging-Schutz. Logisch, dass Dongle-Hersteller diese Kodesequenz schleunigst mit dem Aufkommen der Pentium-Prozessoren (etwa 1995) mit eingebaut haben.

Dieses Rückschalten der Debug Extension lässt sich nicht abfangen. Außer, man durchsucht in regelmäßigen Zeitabständen den Kernelspeicher nach solchen oder ähnlichen verdächtigen Kode-Sequenzen.

Nur mit einer Virtuellen Maschine (VM) kann man derartige Kodesequenzen sicher abfangen. Typische VM-Software tut dies auch, damit das Gastsystem nicht das Hostsystem herunterschalten kann. Damit liefe dann das Dongle im Gastsystem, mit dem USB2LPT-Treiber im Host- oder Gastsystem (ausprobieren!).