Funktionszeiger??
-
Hallo ihr da draußen....
Ich hab folgende Frage: Wie kann ich ohne ASM sondern nur mit C (oder C++)
Eine Funktion umleiten also ich hab bisher folgendes:#include <stdlib.h> #include <stdio.h> typedef void (*FO)(); void Function_One(){ printf("Funktion Eins"); } void Function_Two(){ printf("Funktion Zwei"); } //Überschreiben! void DetourFunction(){ Function_One = (FO)Function_Two; } int main() { DetourFunction(); Function_One return 0; } return 0; } Das funktioniert aber nicht, wie weise ich also der Funktion_One die Adresse von Funktion_Two zu?? Danke im voraus!! mfg ASDASD. :D
-
Sry sind ein paar Fehler im Quellcode hier nochmal:
#include <stdlib.h> #include <stdio.h> typedef void (*FO)(); void Function_One(){ printf("Funktion Eins"); } void Function_Two(){ printf("Funktion Zwei"); } //Überschreiben! void DetourFunction(){ Function_One = (FO)Function_Two; } int main() { DetourFunction(); Function_One(); return 0; }
-
Vergesst es ich verwende lieber asm is wesentlich leichter!
-
So schwer ist es nicht!
#include <stdlib.h> #include <stdio.h> typedef void (*FO)(); void Function_One(){ printf("Funktion Eins"); } void Function_Two(){ printf("Funktion Zwei"); } int main() { FO pfun; pfun = &Function_One; pfun(); pfun = &Function_Two; pfun(); return 0; }