Nicht ganz. Aber wenn man den Inhalt der EXE-Datei...
00005400: 9A 03 00 36 19
00005665: 9A BB 05 A7 00
...mit dem Code im Debugger...
0190: 9A 03 00 26 47 call 4726:0003
03F4: 9A BB 05 97 2E call 2E97:05BB
...vergleicht, sieht man, dass die jeweils letzten beiden Bytes nicht übereinstimmen. Erklärung: Die werden während der Ausführung des Programms im RAM nochmal verändert. D.h. man darf das hier nicht einfach mit NOP überschreiben, sonst kommt am Ende Datenmüll raus. Genau das ist hier passiert, aber aus purem Glück läuft es trotzdem.
Lösung: Nur die jeweils 3 Bytes benutzen, die nicht mehr verändert werden. Da schreibt man dann rein
0190: JMP 0195
03F4: JMP 03F9
Das Kommando verbraucht jeweils nur 2 Bytes und die folgenden 3 Bytes werden bei der Ausführung einfach übersprungen. So kann dann nichts mehr passieren, auch ohne Glück
Also mir macht sowas Spaß