Hallo,
und zwar möchte ich für ein Spiel einen Packet Logger schreiben.
Jedenfalls hab ich nun ein Problem.
Die Werte werden vor dem Aufruf in's Register geschrieben. (ganz normal eben)
Dann greift meine Funktion per detour ein und überschreibt natürlich jetzt wieder den kompletten Register.
Jetzt springt die Funktion wieder zur Ur-Funktion, allerdings mit den falschen Werten im Register. (D.h. -> Crash).
So, jetzt hab ich versucht bevor meine Funktion aufgerufen wird per inline asm die Register Werte in eine Codecave zu schreiben und nach dem meine Funktion ausgeführt wurde (also vor dem jump zur Ur-Funktion) das ganze wieder per inline asm reinzuschreiben.
Gibt es keine einfacherere Lösung? (Die Werte haben keinen Basepointer, schon versucht... :/ )
Vorallem crasht der Scheiss und klappt noch nicht so ganz :D :( (Register Werte bringens zum crashen - habs schon im debugger angeschaut)
Totaler Käse...
und zwar möchte ich für ein Spiel einen Packet Logger schreiben.
Jedenfalls hab ich nun ein Problem.
Die Werte werden vor dem Aufruf in's Register geschrieben. (ganz normal eben)
Dann greift meine Funktion per detour ein und überschreibt natürlich jetzt wieder den kompletten Register.
Jetzt springt die Funktion wieder zur Ur-Funktion, allerdings mit den falschen Werten im Register. (D.h. -> Crash).
So, jetzt hab ich versucht bevor meine Funktion aufgerufen wird per inline asm die Register Werte in eine Codecave zu schreiben und nach dem meine Funktion ausgeführt wurde (also vor dem jump zur Ur-Funktion) das ganze wieder per inline asm reinzuschreiben.
Gibt es keine einfacherere Lösung? (Die Werte haben keinen Basepointer, schon versucht... :/ )
Vorallem crasht der Scheiss und klappt noch nicht so ganz :D :( (Register Werte bringens zum crashen - habs schon im debugger angeschaut)
Totaler Käse...