Hallo, ich weiß es ist vielleicht nicht ganz das richtige Forum aber ich bin der Meinung hier auf Menschen mit Ahnung von der Materie zu treffen.

Ich spiele gerade ein wenig mit Ollydbg und dem Windows Spiel Solitär zum lernen rum.

Bis jetzt habe ich es geschafft, die Zeit im Spiel anzuhalten und zwar wie folgt.
Ein neue Spiel starten, eine Sekunde vergehen lassen und dann Olly pausieren.

0100519E |. 397E 28 CMP DWORD PTR DS:[ESI+28],EDI
010051A1 |. 74 43 JE SHORT sol.010051E6
010051A3 |. 393D 6C710001 CMP DWORD PTR DS:[100716C],EDI
010051A9 |. 75 3B JNZ SHORT sol.010051E6
010051AB |. 8B46 34 MOV EAX,DWORD PTR DS:[ESI+34]
010051AE |. 68 FE7F0000 PUSH 7FFE
010051B3 40 INC EAX <----- Ersetzt durch NOP
010051B4 50 PUSH EAX
010051B5 E8 EAD1FFFF CALL sol.010023A4
010051BA |. 837E 58 FF CMP DWORD PTR DS:[ESI+58],-1
010051BE |. 8946 34 MOV DWORD PTR DS:[ESI+34],EAX
010051C1 |. 75 0B JNZ SHORT sol.010051CE
010051C3 |. 8B4E 6C MOV ECX,DWORD PTR DS:[ESI+6C]
Ich ersetzte 40 INC EAX durch NOP und schon friert die Zeit im Spiel ein.
Die Sache ist die, dass ich eine Sekunde vergehen lassen muss.
Wenn die Zeit auf 0 steht werden einem Punkte wieder abgezogen.

Nun ist die Idee das ganze von Anfang an auf MOV EAX, 1 zu setzen.
Damit die Zeit von Anfang an immer auf 1 bleibt.
Damit überschreibe ich aber leider den folgenden Befehl PUSH EAX.

Wie kann ich es also anstellen, meinen Code einzufühgen ohne den
danach folgenden Code zu überschreiben?

mfg NeoCortex