Mir geht es wirklich nur um die Theorie und um diese eine/zwei Frage(n), ich brauche keine Code-Beispiele oder Api-Funktionen.
Wenn ich eine Funktion (z.b. in einem Spiel) hooke, was passiert dann?
Was soweit logisch ist:
1. Jmp in einen Address-Bereich, der von uns erstellt wurde
2. Jmp zurück
Aber wo genau findet dieser Jmp statt?
Wird er in die Funktion geschrieben (also in etwa so):
Pseudo-Assembler:
Code:
Push Arguments call MEINEFUNKTION ... MEINEFUNKTION: Jmp HIER_WIRD_ZU_UNSEREM_SPEICHER_GESPRUNGEN normale Funktion ...
Pseudo-Assembler:
Code:
Push Arguments Jmp HIER_WIRD_ZU_UNSEREM_SPEICHER_GESPRUNGEN ... MEINEFUNKTION: normale Funktion ... Speicher: ; irgendeine Code den wir ausführen wollen call MEINEFUNKTION Jmp zurück
Das wars eigentlich schon einmal an Fragen, danke euch.