Zitat von
stroyer:
Die kleine Veränderung bewirkt, dass statt einem konditionalen Sprung (JZ oder auch 0x74) ein unkonditionaler Sprung (JMP bzw. 0xEB) steht. Dadurch wird GetLastError umgangen und somit die Situation, in der der Debugger geblockt wird.
Das Problem ist, dass man nicht weiß, warum SetThreadContext (nur) unter Windows 7 zusammenbricht. Und da SetThreadContext für einen Debugger eine vitale Funktion ist, kann durch das ignorieren des Fehlers der Debugger aus dem Tritt kommen.